Io sono la creazione di un database in SQL Server 2008,database: chiave primaria, cluster o non cluster
CREATE TABLE Users
(
U_Id INT NOT NULL
FirstName VARCHAR(50) NOT NULL,
LastName VARCHAR(50) NOT NULL,
Email VARCHAR(200)
Password VARCHAR(50)
)
Voglio fare U_Id la chiave primaria. Vorrei chiedere quale è la differenza tra
CONSTRAINT pk_UserID PRIMARY KEY (U_Id)
questo
CONSTRAINT pk_UserID PRIMARY KEY CLUSTERED (U_Id)
e questo
CONSTRAINT pk_UserID PRIMARY KEY NONCLUSTERED (U_Id)
Quando utilizzare ciascuna?
Ho letto qualche articolo ma non mi è ancora chiaro. Qualcuno può darmi una spiegazione veloce?
Ricorda che tutti gli indici non in cluster creati includeranno sempre i dati nell'indice cluster (perché è così che viene trovata la riga di dati effettiva nella tabella). [Microsoft docs] (http://msdn.microsoft.com/en-us/library/ms177484.aspx) Quindi non pensare di risparmiare spazio facendo un indice grande/ampio dell'indice cluster a meno che tu non avere altri indici sul tavolo – Granger
Chiave primaria è l'identificativo di una riga. Deve essere unico e non nullo. Indice raggruppato indica a SQL come memorizzare i dati sul disco. Le righe di dati effettive vengono memorizzate nell'ordine specificato da questo indice. Poiché contiene anche dati su dove i dati sono archiviati su disco, la chiave indice cluster è memorizzata in ogni indice. In quasi tutti i casi è meglio renderli uguali. Ed è quasi sempre meglio avere la chiave primaria come identificativo in modo che i dati vengano memorizzati sul disco in modo sequenziale. – brianfeucht