quali regole non utilizzare SQL Server per determinare quale colonna / colonne saranno l'indice cluster fantasma essere creati su? [chiuso]

StackOverflow https://stackoverflow.com/questions/6800864

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.

  1. Quali regole fa uso di SQL Server per determinare quale colonna / colonne saranno l'indice cluster fantasma essere creati su?

  2. 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)

È stato utile?

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

http://www.mssqltips.com/tip.asp?tip=1254

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top