dire che ho ottenuto un tavolo:SQL Server utilizzerà un indice composto quando solo una singola colonna si trova nella clausola WHERE?
CREATE TABLE Users (
Id INT IDENTITY (1, 1),
FirstName VARCHAR(40),
LastName VARCHAR(40)
)
Le query sono di solito su FirstName o Cognome, ma anche su FirstNameeCognome.
Se creo un indice non cluster in FirstName e un altro sulla Cognome, poi i miei primi due query sono soddisfatti. Apparentemente, SQL Server utilizzerà index intersection per l'altra query.
In alternativa, se ho indexees su (FirstName) e su (Cognome, Nome), può/non SQL Server utilizzare il secondo indice per le query su un solo Cognome così come query su entrambi?
SQL Server memorizza le parti dell'indice composto da sinistra a destra o da destra a sinistra? In altre parole: costruirà la chiave come LastNameFirstName o FirstNameLastName? O è libero di sceglierne uno arbitrariamente?
Intendo: quando si costruisce la chiave per inserire l'albero B, è la chiave per un indice composto (A, B, C) memorizzato come (A, B, C) o (C, B, A), o dipende da SQL Server sceglierne uno arbitrariamente? –
Penso che quello che intende sia come viene costruita la chiave. L'anversa è da sinistra a destra, esattamente come si definisce la chiave. Ed è per questo che non può essere utilizzato per cercare il cognome. –