Tipi di query e indici
Quando si valuta l'opportunità di creare un indice su una colonna, considerare il modo in cui la colonna viene utilizzata nelle query. Nella tabella seguente vengono descritti i tipi di query per i quali sono utili gli indici.
[!NOTA]
Gli esempi nella tabella si basano sul database di esempio AdventureWorks. Quando si eseguono gli esempi in SQL Server Management Studio è possibile visualizzare gli indici che vengono selezionati da Query Optimizer visualizzando il piano di esecuzione effettivo. Per ulteriori informazioni, vedere Procedura: Visualizzazione di un piano di esecuzione effettivo.
Query in cui il predicato della colonna è uno dei seguenti |
Descrizione della query ed esempio |
Indice consigliato |
---|---|---|
Corrispondenza esatta a un valore specifico |
Ricerca una corrispondenze esatta in cui la query utilizza la clausola WHERE per specificare una voce di colonna con un valore specifico. Ad esempio:
|
Indice cluster o non cluster sulla colonna EmployeeID. |
Corrispondenze esatta a un valore contenuto in un elenco IN (x,y,z) |
Ricerca una corrispondenze esatta a un valore presente in un elenco di valori specificati. Ad esempio:
|
Indice cluster o non cluster sulla colonna EmployeeID. |
Intervallo di valori |
Ricerca un intervallo di valori nel quale la query specifica qualsiasi voce il cui valore è compreso tra due valori. Ad esempio:
oppure
|
Indice cluster o non cluster sulla colonna ProductModelID. |
Join tra tabelle |
Ricerca righe in una tabella che corrispondono, in base a un predicato di join, a una riga in un'altra tabella. Ad esempio:
|
Indice cluster o non cluster sulle colonne ProductID e ProductAssemblyID. |
Confronto LIKE |
Ricerca righe corrispondenti che iniziano con una stringa di caratteri specifica, ad esempio "abc%". Ad esempio:
|
Indice cluster o non cluster sulla colonna Name. |
Ordinata o aggregata |
Richiede un ordinamento implicito o esplicito oppure un'aggregazione (GROUP BY). Ad esempio:
|
Indice cluster o non cluster sulla colonna ordinata o aggregata. Per le colonne da ordinare, prendere in considerazione l'opportunità di specificare il tipo di ordinamento della colonna (ASC o DESC). |
Vincolo PRIMARY KEY o UNIQUE |
Ricerca duplicati di nuovi valori di chiave di indice in operazioni di inserimento e aggiornamento per imporre i vincoli PRIMARY KEY e UNIQUE. Ad esempio:
|
Indice cluster o non cluster sulle colonne definite nel vincolo. |
Operazione UPDATE o DELETE in una relazione tra chiave primaria e chiave esterna |
Ricerca le righe in un'operazione di eliminazione o di aggiornamento nelle quali la colonna partecipa a una relazione tra chiave primaria e chiave esterna, con o senza l'opzione CASCADE. |
Indice cluster o non cluster sulla colonna chiave esterna. |
La colonna è inclusa nell'elenco di selezione, ma non nel predicato. |
Contiene una o più colonne dell'elenco di selezione non utilizzate per le ricerche. Ad esempio:
|
Indice non cluster con FileName specificato nella clausola INCLUDE. |
Vedere anche