Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo argomento definisce il grado massimo di parallelismo e spiega come modificare questa impostazione in SQL Server 2014 usando SQL Server Management Studio o Transact-SQL. Nei computer multiprocessore che eseguono SQL Server Enterprise o versione successiva, le istruzioni di indice possono usare più processori per eseguire le operazioni di analisi, ordinamento e indice associate all'istruzione index esattamente come le altre query. Il numero di processori usati per eseguire una singola istruzione di indice è determinato dall'opzione di configurazione max degree of parallelism , 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.
Annotazioni
Le operazioni parallele sugli indici non sono disponibili in tutte le edizioni di SQL Server. Per ulteriori informazioni, vedere Features Supported by the Editions of SQL Server 2014.
Contenuto dell'articolo
Prima di iniziare:
Per configurare l'opzione grado massimo di parallelismo utilizzando:
Prima di iniziare
Limitazioni e restrizioni
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:
CREATE INDEX
ALTER INDEX REBUILD (ricostruisci l'indice)
DROP INDEX (Questo vale solo per gli indici clusterizzati).
ALTER TABLE AGGIUNGI (indice) VINCOLO
ALTER TABLE DROP (indice clusterizzato) CONSTRAINT
L'opzione di indice MAXDOP non può essere specificata nell'istruzione ALTER INDEX REORGANIZE.
I requisiti di memoria per le operazioni sugli indici partizionati che richiedono l'ordinamento possono essere maggiori se Query Optimizer applica 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.
Sicurezza
Autorizzazioni
È richiesta l'autorizzazione ALTER per una tabella o una vista.
Uso di SQL Server Management Studio
Per impostare il massimo grado di parallelismo su un indice
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.
Uso di Transact-SQL
Per impostare il grado massimo di parallelismo su un indice esistente
In Esplora oggetti, collegarsi a un'istanza di Database Engine.
Sulla barra Standard fare clic su Nuova query.
Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.
USE AdventureWorks2012; 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).
Impostare il grado massimo di parallelismo in un nuovo indice
In Esplora oggetti, collegarsi a un'istanza di Database Engine.
Sulla barra Standard fare clic su Nuova query.
Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.
USE AdventureWorks2012; GO CREATE INDEX IX_ProductVendor_NewVendorID ON Purchasing.ProductVendor (BusinessEntityID) WITH (MAXDOP=8); GO
Per altre informazioni, vedere CREATE INDEX (Transact-SQL).