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

Gli indici SQL Server includono la chiave primaria?

Il tuo collaboratore sta confondendo "Chiave primaria" con "Chiave indice cluster" (probabilmente perché per impostazione predefinita un PK creato su un heap senza specificare il nonclustered la parola chiave diventerà l'indice cluster della tabella).

Lo è vero che in una tabella con un indice cluster il valore della chiave dell'indice cluster verrà aggiunto come colonne incluse a tutti gli indici non cluster per fungere da locatore di riga. (sebbene le colonne non vengano aggiunte due volte se fanno già parte della definizione dell'indice non cluster).

La chiave di indice cluster ideale è

  • univoco (per fungere da localizzatore di riga deve essere univoco - SQL Server aggiungerà un unificatore in caso contrario)
  • narrow (poiché è riprodotto in tutti gli indici non cluster)
  • statico (evita di dover aggiornare il valore in più posizioni diverse)
  • in continuo aumento