Delen via


Parallelle indexbewerkingen configureren

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

In dit onderwerp 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.

Notitie

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

In Dit Onderwerp

Voordat u begint

Beperkingen en 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.

    Waarde Beschrijving
    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 optie MAXDOP-index 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 indexenvoor meer informatie.

machtigingen

Hiervoor is ALTER machtiging voor de tabel of weergave vereist.

SQL Server Management Studio gebruiken

Maximale mate van parallelle uitvoering voor een index instellen

  1. Klik in Objectverkenner op 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. Klik op 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. Klik op OK-.

Transact-SQL gebruiken

Maximale mate van parallellisme instellen voor een bestaande index

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

  2. Klik op de standaardbalk op Nieuwe query.

  3. Kopieer en plak het volgende voorbeeld in het queryvenster en klik op uitvoeren.

    USE AdventureWorks2022;   
    GO  
    /*Alters the IX_ProductVendor_VendorID index on the Purchasing.ProductVendor table so that, if the server has eight or more processors, the Database Engine will limit the execution of the index operation to eight or fewer processors.  
    */  
    ALTER INDEX IX_ProductVendor_VendorID ON Purchasing.ProductVendor  
    REBUILD WITH (MAXDOP=8);   
    GO  
    

Zie ALTER INDEX (Transact-SQL)voor 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. Klik in de standaardbalk op Nieuwe query.

  3. Kopieer en plak het volgende voorbeeld in het queryvenster en klik op uitvoeren.

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

Zie ook

Architectuurhandleiding voor queryverwerking
CREATE INDEX (Transact-SQL)
ALTER INDEX (Transact-SQL)
DROP INDEX (Transact-SQL)
ALTER TABLE (Transact-SQL)
ALTER TABLE table_constraint (Transact-SQL)
ALTER TABLE index_option (Transact-SQL)