クラスタ化インデックスと非クラスタ化インデックスの主な違いを知っており、それらが実際にどのように機能するかを理解しています。クラスタ化インデックスと非クラスタ化インデックスが読み取りパフォーマンスを向上させる方法を理解しています。しかし、私が確信していないことの1つは、私がどちらを選ぶかという理由が何であるかということです。
例:テーブルにクラスター化インデックスがない場合、非クラスター化インデックスを作成する必要があり、実行するメリットは何ですか
クラスタ化インデックスと非クラスタ化インデックスの主な違いを知っており、それらが実際にどのように機能するかを理解しています。クラスタ化インデックスと非クラスタ化インデックスが読み取りパフォーマンスを向上させる方法を理解しています。しかし、私が確信していないことの1つは、私がどちらを選ぶかという理由が何であるかということです。
例:テーブルにクラスター化インデックスがない場合、非クラスター化インデックスを作成する必要があり、実行するメリットは何ですか
回答:
ただ一言注意したいのですが、クラスタ化インデックスを慎重に選んでください!はい、 -すべての「通常の」データテーブルは、クラスタ化インデックスを持つことは確かオペレーションの多くをスピードアップないので、クラスタ化インデックスを持っているべきスピードアップ、でも挿入および削除!ただし、適切なクラスター化インデックスを選択した場合のみです。
これは、SQL Serverデータベースで最も複製されたデータ構造です。クラスタリングキーも、テーブルのすべての非クラスター化インデックスの一部になります。
クラスタリングキーを選択するときは、細心の注意を払う必要があります。
狭い(4バイトが理想的)
一意(結局のところ、これは「行ポインタ」です。一意にしない場合、SQL Serverがバックグラウンドで実行します。各エントリの数バイトに、行数と非クラスタ化インデックスの数を掛けたものになります。あなたが持っている-これは非常に高価になる可能性があります!)
静的(変更しない-可能であれば)
理想的には常に増加するので、恐ろしいインデックスの断片化に陥ることはありません(GUIDは、適切なクラスタリングキーとは正反対です-特定の理由による)
null可能ではなく、理想的には固定幅である必要があります-a varchar(250)
は非常に貧弱なクラスタリングキーを作成します
それ以外のものは、これらのポイントの背後にある重要な2番目と3番目のレベルでなければなりません。
トピックに関するキンバリートリップ(The Queen of Indexing)のいくつかのブログ投稿をご覧ください-彼女がブログに書いたものはすべて、非常に貴重です-読んで、ダイジェスト-ライブで!
non clustered
インデックスは私たちにとって何をしますか。その重要性は何ですか。