2017-01-15 14 views
0

表内に非コンポジット・キーを持つ場合、クラスタ化または非クラスタ化のいずれかに設定するのは意味がありますか?たとえば、以下の表と仮定:Customer_Idはシーケンシャル一意の識別子を使用していますので非コンポジット・キーのクラスタ化/非クラスタ化

CREATE TABLE [dbo].[Logins] 
(
    [Customer_Id] UNIQUEIDENTIFIER ROWGUIDCOL PRIMARY KEY REFERENCES Customers(Customer_Id) ON DELETE CASCADE, 
    [Email] NVARCHAR(50) NOT NULL UNIQUE NONCLUSTERED, 
    [Password] NVARCHAR(64) NOT NULL 
) 

を、その後、クラスタ化されたとして、他のキーを作成する理由はありません。しかし、私の見解からすれば、他のキーがCONSTRAINT [Table_UK] UNIQUE NONCLUSTERED (Email, OrderId)のような複合キーであれば有益です。

私は(シーケンシャルキーは、本質的にソートされているように、などをソートする手間を省く)、非クラスタ化されたデータベースのパフォーマンスを保存することから利益を得ることができ表されるようにしかし、私は非複合キー場合はわからないよ

+2

'Customer_Id'の定義ではシーケンシャルGUIDは生成されません。デフォルトのnewsequentialid()を追加する必要がありますが、Windowsを再起動したときにguidシーケンスがリセットされても保証されません(https://msdn.microsoft .com/ja-us/library/ms189786(v = sql.110).aspx)。索引が断片化しすぎると、いつでも索引を再編成できます。 – Moho

答えて

0

1つの表には1つのクラスタード・インデックスしか存在しないため、他のすべてのインデックスはほとんど常に非クラスターですが、クラスター化されません。詳細については、https://msdn.microsoft.com/en-us/library/ms190457.aspxを参照してください。

関連する問題