Eventi
31 mar, 23 - 2 apr, 23
Il più grande evento di apprendimento di SQL, Infrastruttura e Power BI. 31 marzo - 2 aprile. Usare il codice FABINSIDER per salvare $400.
Iscriviti oggi stessoQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
Si applica a:SQL Server
Database SQL di Azure
Istanza gestita di SQL di Azure
Database SQL in Microsoft Fabric
In questo argomento viene definito il massimo grado di parallelismo e viene spiegato come modificare questa impostazione in SQL Server tramite SQL Server Management Studio o Transact-SQL.
Nei sistemi multiprocessore che eseguono SQL Server Enterprise o versioni successive, le istruzioni per gli indici, proprio come le altre query, possono usare più processori (CPU) per eseguire le operazioni di analisi, ordinamento e indicizzazione associate all'istruzione. Il numero di CPU usate per eseguire una singola istruzione per gli indici è determinato dall'opzione di configurazione relativa al massimo grado di parallelismo, dal carico di lavoro corrente e dalle statistiche dell'indice. L'opzione max degree of parallelism determina il numero massimo di processori da utilizzare nell'esecuzione di piani paralleli. Se il motore di database di SQL Server rileva che il sistema è occupato, il grado di parallelismo dell'operazione dell'indice viene ridotto automaticamente prima dell'avvio dell'esecuzione dell'istruzione. Il motore di database consente inoltre di ridurre il grado di parallelismo se la colonna chiave iniziale di un indice non partizionato ha un numero limitato di valori distinti o se la frequenza di ciascun valore distinto varia in modo significativo. Per altre informazioni, vedere Guida sull'architettura di elaborazione delle query.
Nota
Le operazioni parallele sugli indici non sono disponibili in tutte le edizioni di SQL Server. Per altre informazioni, vedere Edizioni e funzionalità supportate di SQL Server 2022.
Contenuto dell'articolo
Prima di iniziare:
Per configurare l'opzione grado massimo di parallelismo utilizzando:
Il numero di processori utilizzati da Query Optimizer implica normalmente le prestazioni ottimali. Tuttavia, operazioni come la creazione, la ricompilazione o l'eliminazione di indici di grandi dimensioni utilizzano molte risorse e possono determinare una mancanza di risorse per le altre applicazioni e operazioni di database per la durata dell'operazione di indice. Quando si verifica questo problema, è possibile configurare manualmente il numero massimo di processori utilizzati per eseguire l'istruzione per l'indice limitando il numero di processori da utilizzare per l'operazione di indice.
L'opzione di indice MAXDOP è prioritaria rispetto all'opzione di configurazione max degree of parallelism solo per la query che specifica tale opzione. La tabella seguente elenca i valori integer validi che è possibile specificare con l'opzione di configurazione max degree of parallelism e l'opzione di indice MAXDOP.
valore | Descrizione |
---|---|
0 | Specifica che il server determina il numero di CPU utilizzate, a seconda del carico di lavoro del sistema corrente. Si tratta del valore predefinito e dell'impostazione consigliata. |
1 | Disattiva la generazione di piani paralleli. L'operazione verrà eseguita in modo serializzato. |
2-64 | Limita il numero di processori al valore specificato. È possibile che il numero possa essere ridotto in base al carico di lavoro corrente. Se viene specificato un valore maggiore di quello delle CPU disponibili, viene utilizzato l'effettivo numero di CPU disponibili. |
L'esecuzione dell'indice in parallelo e l'opzione di indice MAXDOP si applicano alle istruzioni Transact-SQL seguenti:
DROP INDEX (applicabile solo agli indici cluster).
L'opzione di indice MAXDOP non può essere specificata nell'istruzione ALTER INDEX (...) REORGANIZE
.
I requisiti di memoria per le operazioni di indice partizionato che richiedono l'ordinamento possono essere maggiori se Query Optimizer applica i gradi di parallelismo all'operazione di compilazione. Maggiori i gradi di parallelismo, maggiori i requisiti di memoria. Per ulteriori informazioni, vedere Partitioned Tables and Indexes.
È richiesta l'autorizzazione ALTER
per la tabella o la vista.
In Esplora oggetti, fare clic sul segno più per espandere il database che contiene la tabella su cui si desidera impostare il massimo grado di parallelismo per l'indice.
Espandere la cartella Tabelle .
Fare clic sul segno più per espandere la tabella in cui si desidera impostare il massimo grado di parallelismo per un indice.
Espandi la cartella Indici.
Fare clic con il pulsante destro del mouse sull'indice per cui si vuole impostare il massimo grado di parallelismo e scegliere Proprietà.
In Selezione paginaselezionare Opzioni.
Selezionare Maximum degree of parallelisme immettere un valore compreso tra 1 e 64.
Fare clic su OK.
In Esplora oggetti, connettersi a un'istanza del motore di database.
Sulla barra Standard fare clic su Nuova query.
Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.
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
Per altre informazioni, vedere ALTER INDEX (Transact-SQL).
In Esplora oggetti, connettersi a un'istanza del motore di database.
Sulla barra Standard fare clic su Nuova query.
Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.
USE AdventureWorks2022;
GO
CREATE INDEX IX_ProductVendor_NewVendorID
ON Purchasing.ProductVendor (BusinessEntityID)
WITH (MAXDOP=8);
GO
Guida sull'architettura di elaborazione delle query
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)
Eventi
31 mar, 23 - 2 apr, 23
Il più grande evento di apprendimento di SQL, Infrastruttura e Power BI. 31 marzo - 2 aprile. Usare il codice FABINSIDER per salvare $400.
Iscriviti oggi stessoFormazione
Modulo
Configurare i database per ottimizzare le prestazioni - Training
Configurare i database per ottimizzare le prestazioni
Certificazione
Microsoft Certified: Azure Database Administrator Associate - Certifications
Amministrare un'infrastruttura di database SQL Server per database relazionali, ibridi, locali e cloud con le offerte di database relazionali Microsoft PaaS.
Documentazione
Eseguire operazioni online sugli indici - SQL Server
Creare, ricompilare o eliminare indici online nel motore di database di SQL Server.
Opzione SORT_IN_TEMPDB per gli indici - SQL Server
Opzione SORT_IN_TEMPDB per gli indici
Configurazione del server: massimo grado di parallelismo - SQL Server
Informazioni sull'opzione max degree of parallelism (MAXDOP). Scoprire come usarla per limitare il numero di processori usati da SQL Server per l'esecuzione di piani paralleli.