主キー (従来の ID 列) として IDENTITY 列を持つテーブルがあります。
SQL Server は、その主キーのクラスター化インデックスを自動的に作成します。
私の質問は:
- より多くの列を持つ CLUSTERED INDEX コンポジットを 1 つだけ持つことはできますか?
はいの場合、デフォルトのクラスター化インデックスを削除して、この属性で新しいクラスター化インデックスを再作成するにはどうすればよいですか。
ご協力ありがとうございました
主キー (従来の ID 列) として IDENTITY 列を持つテーブルがあります。
SQL Server は、その主キーのクラスター化インデックスを自動的に作成します。
私の質問は:
はいの場合、デフォルトのクラスター化インデックスを削除して、この属性で新しいクラスター化インデックスを再作成するにはどうすればよいですか。
ご協力ありがとうございました
はい、テーブルごとにクラスター化インデックスを 1 つだけ持つことができます。データはそのインデックスによって物理的に配置されるため、複数持つことはできません。
ただし、複合クラスター化インデックスを使用することはお勧めしません。なんで?クラスター化インデックスは常に次のようにする必要があるためです。
INT IDENTITY はクラスター化されたインデックスとして最適です。そのままにしておくことをお勧めします。
クラスター化インデックス列 (または列のセット) は、同じテーブルのすべての非クラスター化インデックスのすべてのエントリにも追加されます。そのため、クラスター化インデックスを 20、50 バイト、またはそれ以上に大きくすると、無駄になり始めます。多くのスペース - ディスク上およびサーバーのメモリ内に、一般にシステム パフォーマンスが低下します。
クラスター化されたインデックスと、クラスター化されたインデックスが適切であるために必要なものについては、こちらをご覧ください。