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.

Fattore di riempimento

FILLFACTOR

Imposta la percentuale di spazio libero nel livello foglia di ogni pagina dell'indice durante la creazione dell'indice.

Fattore di riempimento

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.

ms188677.note(it-it,SQL.90).gifNota:

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.

CREATE INDEX

STATISTICS_NORECOMPUTE

Specifica se le statistiche dell'indice non aggiornate devono essere ricalcolate automaticamente.

Statistiche dell'indice

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.

ms188677.note(it-it,SQL.90).gifNota:

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.

CREATE INDEX

ALLOW_PAGE_LOCKS

Determina se per l'accesso ai dati dell'indice vengono utilizzati i blocchi di pagina.

CREATE INDEX

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.

ms188677.note(it-it,SQL.90).gifNota:

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

ALTER INDEX (Transact-SQL)

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

Modifica degli indici

Altre risorse

sys.indexes (Transact-SQL)
sys.stats (Transact-SQL)

Guida in linea e informazioni

Assistenza su SQL Server 2005