質問: sql server 2005にクラスター化インデックスを持たない理由 sql server 2005にクラスター化インデックスを持たない理由 sql server 2005データベースのデータベース作成スクリプトをいくつか継承しました。 私が気づいたことの1つは、すべての主キーがクラスター化ではなく「非クラスター化」インデックスとして作成されることです。 テーブルごとにクラスター化インデックスを1つだけ持つことができ、検索などのクエリパフォーマンスのために非プライマリキー列にクラスター化インデックスを設定することをお勧めします。 ただし、問題のテーブルには他の「clustered」インデックスはありません。 私の質問は、上記以外に主キー列にクラスタ化インデックスを作成しない技術的な理由があるかどうかです。
回答: 「通常の」データまたはルックアップテーブルについて:いいえ、理由はまったくありません。 一括インポートテーブルや一時テーブルのようなもの-それは依存します。 一部の人々にとっては、驚くべきことに、*良い*クラスター化インデックスを作成すると、実際にはinsertやupdateなどの操作を高速化できるようです。 kimberly trippsの優れたhttp://sqlskills.com/blogs/kimberly/post/the-clustered-index-debate-continues.aspx[the clustered index debate continue ...これが事実です。 この観点から、sql serverテーブルに適切なクラスター化インデックス(最も明確な選択肢として、狭い、安定した、一意の、常に増加する=「int identity」)が存在する*有効*な理由はありません。 クラスタリングキーを選択する方法と理由に関する深い洞察を得るには、このトピックに関するkimberly trippの優れたブログ投稿をすべて読んでください。 http://www.sqlskills.com/blogs/kimberly/category/clustering-key.aspx http://www.sqlskills.com/blogs/kimberly/category/clustered-index.aspx 「インデックス作成の女王」からの素晴らしいもの! :-)