Delen via


Parallelle indexbewerkingen configureren

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric Preview

In dit artikel wordt de maximale mate van parallelle uitvoering gedefinieerd en wordt uitgelegd hoe u deze instelling wijzigt in SQL Server met behulp van SQL Server Management Studio of Transact-SQL.

Op systemen met meerdere processors waarop SQL Server Enterprise of hoger wordt uitgevoerd, kunnen indexinstructies meerdere processors (CPU's) gebruiken om de scan-, sorteer- en indexbewerkingen uit te voeren die zijn gekoppeld aan de indexinstructie, net zoals bij andere query's. Het aantal CPU's dat wordt gebruikt om één indexinstructie uit te voeren, wordt bepaald door de maximale mate van parallelle uitvoering serverconfiguratieoptie, de huidige workload en de indexstatistieken.

De maximale mate van parallelle uitvoering bepaalt het maximum aantal processors dat moet worden gebruikt in parallelle uitvoering van plannen. Als de SQL Server Database Engine detecteert dat het systeem bezet is, wordt de mate van parallelle uitvoering van de indexbewerking automatisch verminderd voordat de instructie wordt uitgevoerd. De database-engine kan ook de mate van parallelle uitvoering verminderen als de belangrijkste sleutelkolom van een niet-gepartitioneerde index een beperkt aantal afzonderlijke waarden heeft of de frequentie van elke afzonderlijke waarde aanzienlijk varieert. Zie architectuurhandleiding voor queryverwerkingvoor meer informatie.

Note

Parallelle indexbewerkingen zijn niet beschikbaar in elke SQL Server-editie. Zie Edities en ondersteunde functies van SQL Server 2022voor meer informatie.

Beperkingen

  • Het aantal processors dat door de queryoptimalisatie wordt gebruikt, biedt doorgaans optimale prestaties. Bewerkingen zoals het maken, herbouwen of verwijderen van zeer grote indexen zijn echter resource-intensief en kunnen onvoldoende resources veroorzaken voor andere toepassingen en databasebewerkingen voor de duur van de indexbewerking.

    Wanneer dit probleem optreedt, kunt u handmatig het maximum aantal processors configureren dat wordt gebruikt om de indexinstructie uit te voeren door het aantal processors te beperken dat moet worden gebruikt voor de indexbewerking.

  • De MAXDOP indexoptie overschrijft de maximale mate van parallelle configuratie alleen voor de query die deze optie opgeeft. De volgende tabel bevat de geldige gehele getallen die kunnen worden opgegeven met de maximale mate van parallelle configuratie en de MAXDOP indexoptie.

    Value Description
    0 Hiermee geeft u op dat de server het aantal CPU's bepaalt dat wordt gebruikt, afhankelijk van de huidige systeemworkload. Dit is de standaardwaarde en aanbevolen instelling.
    1 Onderdrukt het genereren van parallelle plannen. De bewerking wordt serieel uitgevoerd.
    2-64 Beperkt het aantal processors tot de opgegeven waarde. Er kunnen minder processors worden gebruikt, afhankelijk van de huidige workload. Als een waarde groter is dan het aantal beschikbare CPU's is opgegeven, wordt het werkelijke aantal beschikbare CPU's gebruikt.
  • Parallelle indexuitvoering en de MAXDOP indexoptie zijn van toepassing op de volgende Transact-SQL instructies:

  • De MAXDOP indexoptie kan niet worden opgegeven in de ALTER INDEX (...) REORGANIZE instructie.

  • Geheugenvereisten voor gepartitioneerde indexbewerkingen waarvoor sortering nodig is, kunnen groter zijn als de Query Optimizer mate van parallelle uitvoering toepast op de buildbewerking. Hoe hoger de mate van parallelle uitvoering, hoe groter de geheugenvereiste is. Zie Gepartitioneerde tabellen en indexen voor meer informatie.

Permissions

Hiervoor is ALTER machtiging voor de tabel of weergave vereist.

SQL Server Management Studio gebruiken

Maximale mate van parallelle uitvoering instellen op een index

  1. Selecteer in Objectverkenner het plusteken om de database uit te vouwen die de tabel bevat waarvoor u de maximale mate van parallelle uitvoering voor een index wilt instellen.

  2. Vouw de map Tabellen uit.

  3. Selecteer het plusteken om de tabel uit te vouwen waarop u de maximale mate van parallelle uitvoering voor een index wilt instellen.

  4. Vouw de map Indexen uit.

  5. Klik met de rechtermuisknop op de index waarvoor u de maximale mate van parallelle uitvoering wilt instellen en selecteer Eigenschappen.

  6. Selecteer onder Eenpagina selecteren, Opties.

  7. Selecteer Maximale mate van parallelle uitvoeringen voer een waarde in tussen 1 en 64.

  8. Kies OK.

Gebruik Transact-SQL

Maximale mate van parallelle uitvoering instellen voor een bestaande index

  1. Maak in Objectverkennerverbinding met een exemplaar van Database Engine.

  2. Selecteer op de standaardbalk de optie Nieuwe query.

  3. Kopieer en plak het volgende voorbeeld in het queryvenster en selecteer uitvoeren. Deze code wijzigt de IX_ProductVendor_VendorID index in de Purchasing.ProductVendor tabel zodat, als de server acht of meer processors heeft, de database-engine de uitvoering van de indexbewerking beperkt tot acht of minder processors.

    USE AdventureWorks2022;
    GO
    
    ALTER INDEX IX_ProductVendor_VendorID
        ON Purchasing.ProductVendor REBUILD WITH(MAXDOP = 8);
    GO
    

Zie ALTER INDEXvoor meer informatie.

Maximale mate van parallelle uitvoering opgeven bij het maken van een nieuwe index

  1. Maak in Objectverkennerverbinding met een exemplaar van Database Engine.

  2. Selecteer op de standaardbalk de optie Nieuwe query.

  3. Kopieer en plak het volgende voorbeeld in het queryvenster en selecteer uitvoeren.

    USE AdventureWorks2022;
    GO
    
    CREATE INDEX IX_ProductVendor_NewVendorID
        ON Purchasing.ProductVendor(BusinessEntityID) WITH (MAXDOP = 8);
    GO