Impostazione delle opzioni di un indice
Per la progettazione, la creazione o la modifica di un indice sono disponibili numerose opzioni, che possono essere specificate al momento della creazione o della ricostruzione dell'indice. Alcune opzioni dell'indice possono inoltre essere impostate in qualsiasi momento tramite la clausola SET dell'istruzione ALTER INDEX.
Opzione dell'indice
Descrizione
Impostazione archiviata nei metadati
Argomento correlato
PAD_INDEX
Imposta la percentuale di spazio libero nelle pagine di livello intermedio durante la creazione dell'indice.
Sì
FILLFACTOR
Imposta la percentuale di spazio libero nel livello foglia di ogni pagina dell'indice durante la creazione dell'indice.
Sì
SORT_IN_TEMPDB
Determina la posizione in cui verranno archiviati i risultati intermedi dell'ordinamento generati durante la creazione dell'indice.
Se l'opzione è impostata su ON, i risultati vengono archiviati in tempdb. Se è impostata su OFF, i risultati vengono archiviati nel filegroup o nello schema di partizione in cui è archiviato l'indice risultante.
Nota:
Se un'operazione di ordinamento non è necessaria o può essere eseguita in memoria, l'opzione SORT_IN_TEMPDB viene ignorata.
No
tempdb e creazione dell'indice
IGNORE_DUP_KEY
Specifica l'errore restituito per valori di chiave duplicati in una transazione INSERT con più righe in un indice cluster o non cluster univoco.
Sì
STATISTICS_NORECOMPUTE
Specifica se le statistiche dell'indice non aggiornate devono essere ricalcolate automaticamente.
Sì
DROP_EXISTING
Indica che l'indice esistente deve essere eliminato e ricreato.
No
Riorganizzazione e ricostruzione degli indici
ONLINE
Determina se durante le operazioni sull'indice è consentito a più utenti di accedere simultaneamente ai dati delle tabelle o degli indici cluster sottostanti e agli indici non cluster associati.
Nota:
Le operazioni sugli indici in linea sono disponibili solo in Microsoft SQL Server 2005 Enterprise Edition.
No
Esecuzione di operazioni in linea su indici.
ALLOW_ROW_LOCKS
Determina se per l'accesso ai dati dell'indice vengono utilizzati i blocchi di riga.
Sì
ALLOW_PAGE_LOCKS
Determina se per l'accesso ai dati dell'indice vengono utilizzati i blocchi di pagina.
Sì
MAXDOP
Imposta il numero massimo di processori utilizzabili da Query Processor per eseguire una singola istruzione sull'indice. È possibile utilizzare un numero inferiore di processori in base al carico di lavoro corrente del sistema.
Nota:
Le operazioni parallele sugli indici sono supportate solo in SQL Server 2005 Enterprise Edition.
No
Configurazione di operazioni a indici paralleli
Per impostare le opzioni in un indice
Impostazione di opzioni senza ricostruzione dell'indice
Tramite la clausola SET dell'istruzione ALTER INDEX è possibile impostare le opzioni dell'indice seguenti senza ricostruire l'indice:
- ALLOW_PAGE_LOCKS
- ALLOW_ROW_LOCKS
- IGNORE_DUP_KEY
- STATISTICS_NORECOMPUTE
Queste opzioni vengono applicate immediatamente all'indice. Altre opzioni, ad esempio FILLFACTOR e ONLINE, possono essere specificate unicamente durante la creazione o la ricostruzione di un indice.
Visualizzazione delle impostazioni relative alle opzioni dell'indice
Non tutti i valori delle opzioni dell'indice vengono archiviati nei metadati. I valori archiviati nei metadati possono essere visualizzati nelle viste del catalogo appropriate. Per esaminare i valori correnti delle opzioni dell'indice, utilizzare la vista del catalogo sys.indexes. Per esaminare il valore corrente di STATISTICS_NORECOMPUTE, utilizzare la vista del catalogo sys.stats. Per ulteriori informazioni, vedere Visualizzazione delle informazioni relative agli indici.
Esempi
Nell'esempio seguente vengono impostate le opzioni ALLOW_ROW_LOCKS
e IGNORE_DUP_KEY
dell'indice AK_Product_ProductNumber
nella tabella Production.Product
.
USE AdventureWorks;
GO
--Verify the current values for these options.
SELECT allow_row_locks, ignore_dup_key
FROM sys.indexes
WHERE name = N'AK_Product_ProductNumber';
GO
--Set the ALLOW_ROW_LOCKS option OFF and the IGNORE_DUP_KEY option ON.
ALTER INDEX AK_Product_ProductNumber
ON Production.Product
SET (ALLOW_ROW_LOCKS = OFF, IGNORE_DUP_KEY = ON);
GO
--Verify the new values for these options.
SELECT allow_row_locks, ignore_dup_key
FROM sys.indexes
WHERE name = N'AK_Product_ProductNumber';
GO
Vedere anche
Concetti
Altre risorse
sys.indexes (Transact-SQL)
sys.stats (Transact-SQL)