Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Piani di SQL Server:differenza tra Index Scan / Index Seek

Una scansione dell'indice è dove il server SQL legge l'intero indice alla ricerca di corrispondenze:il tempo necessario è proporzionale alla dimensione dell'indice.

Una ricerca dell'indice è dove il server SQL utilizza la struttura b-tree dell'indice per cercare direttamente i record corrispondenti (vedi http://mattfleming.com/node/192 per un'idea di come funziona) - il tempo impiegato è solo proporzionale al numero di record corrispondenti.

  • In generale una ricerca dell'indice è preferibile a una scansione dell'indice (quando il numero di record corrispondenti è in proporzione molto inferiore al numero totale di record), poiché il tempo impiegato per eseguire una ricerca dell'indice è costante indipendentemente dal numero totale di record nella tua tabella.
  • Si noti tuttavia che in determinate situazioni una scansione dell'indice può essere più veloce di una ricerca dell'indice (a volte significativamente più veloce) - di solito quando la tabella è molto piccola o quando una grande percentuale dei record corrisponde al predicato.