次のスクリプトを実行しました
CREATE TABLE Test
(
ID INT IDENTITY PRIMARY KEY,
Info nvarchar(50)
)
驚いたことに、SSMS は ID 列のクラスター化インデックスを作成しました。では、私の質問は、なぜ非クラスター化インデックスではないのですか?
私の理解では、この場合はクラスター化されていないインデックスを使用する方がよいでしょう。これは、バイナリ ツリーにより、値がクラスター化されたインデックスを使用する代わりに、X の値で ID を検索する方がはるかに高速であるためです。何とかグループ化。また、データを受信することを考えると、ID に何らかの方法ですばやくアクセスする必要があります。書かれた多くの記事のように、バイナリ ツリーは特定の ID または複数の ID を受け取るための高速な方法です。それに加えて、ほとんどの場合、テーブルの主キーは自動インクリメント値を持つ ID です。そのため、自動インクリメントの原則のこのアプローチを使用することはかなり一般的です。
では、クラスター化されていないキーを使用する利点は何ですか?また、SSMS でこの既定値が使用されるのはなぜでしょうか?