quali regole non utilizzare SQL Server per determinare quale colonna / colonne saranno l'indice cluster fantasma essere creati su? [chiuso]
-
22-10-2019 - |
Domanda
The Definitive Guide to Scaling out SQL Server 2005 :
Se si crea un indice non cluster e non si dispone già di un raggruppati indice, SQL Server crea un “fantasma” cluster indice perché indici non cluster puntano sempre di chiavi di indice cluster.
-
Quali regole fa uso di SQL Server per determinare quale colonna / colonne saranno l'indice cluster fantasma essere creati su?
-
Se è sulla chiave primaria della tabella (rapida indovinare), quali regole non utilizzare SQL Server per determinare quale colonna / colonne sarà l'indice cluster phantom essere creato su un tavolo senza chiavi primarie?
(domanda rivolge a qualsiasi versione di SQL Server 2005 e oltre)
Soluzione
When you define a primary key, SSMS will by default make that the clustered index. But if you specifically create a table without a clustered index, you are creating a heap table. SQL Server uses an internal value for referencing rows, but it is not any of your columns. The following may help:
On a Heap Table, what does a non-clustered index use as a pointer to a row?
http://msdn.microsoft.com/en-us/library/aa964133%28v=sql.90%29.aspx
Altri suggerimenti
The quote you are providing is wrong. You might want to read a high quality book, such as a book by Kalen Delaney: http://www.sqlserverinternals.com/books.html