[解決済み] SQL Server - クラスタ化インデックスと非クラスタ化インデックスをいつ使うか?
質問
クラスタ化インデックスと非クラスタ化インデックスの主な違いを知っており、それらが実際にどのように機能するかを理解している。クラスタ化インデックスと非クラスタ化インデックスがどのように読み取りパフォーマンスを向上させるかについて理解しています。しかし、1 つのことは、私が他よりも 1 つを選択する理由は何であるかということで、よくわかりません。
たとえば、次のようになります。テーブルがクラスタ化インデックスを持たない場合、非クラスタ化インデックスを作成する必要がありますか。
どのように解決するのですか?
一言お願いします。 非常に慎重に クラスタ化インデックスを選んでください! クラスタ化インデックスを持つことは多くの処理を高速化するので、すべてのデータテーブルはクラスタ化インデックスを持つべきです。 高速化 挿入や削除でさえもです。しかし、もしあなたが 良い クラスタ化されたインデックスを選んだ場合のみです。
それは 最も複製された データ構造です。クラスタリングキーは、テーブル上のすべての非クラスタリングインデックスの一部でもあります。
クラスタリング キーを選択する際には細心の注意を払う必要があります。
-
狭い (4バイトが理想)
-
ユニーク (結局のところ、それは行ポインタです。これを一意にしない場合、SQL Server はバックグラウンドでこれを行い、各エントリに行数と非クラスタ化インデックスの数をかけた数バイトのコストがかかります。)
-
静的 (可能であれば、決して変更しない)
-
理想的には 増え続ける であれば、インデックスの断片化を防ぐことができます(GUID は良いクラスタリングキーの正反対です - この特別な理由から)。
-
は非ヌルであるべきで、理想的には固定幅であるべきです。
varchar(250)
は非常に貧弱なクラスタリングキーになります。
それ以外のことは、本当にこれらのポイントの後ろにある2番目と3番目のレベルの重要性であるべきです.
Kimberly Trippの一部をご覧ください( インデックスの女王 ) のブログ投稿をご覧ください。彼女がブログで書いたものはすべて、絶対に貴重です。
関連
-
[解決済み] データベース 'tempdb' で CREATE TABLE 権限が拒否されました。
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] SQL Server で複数行のテキストを 1 つのテキスト文字列に連結する方法
-
[解決済み] SQL Server テーブルにカラムが存在するかどうかを確認する方法は?
-
[解決済み] SQL ServerにおけるLEFT JOINとLEFT OUTER JOINの比較
-
[解決済み] クラスター化インデックスと非クラスター化インデックスの実際の意味は何ですか?
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
-
[解決済み】楽観的なロックと悲観的なロック
-
[解決済み】マルチインデックスとマルチカラムインデックスの比較
-
[解決済み】クラスタ化インデックスと非クラスタ化インデックスの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] SQL Server xp_delete_file パラメータ
-
[解決済み] SQL Server: sys.master_files vs. sys.database_files
-
[解決済み] 結果を分割するためのSQLの小数点以下の値
-
[解決済み] SQL Agent を使用して SSIS パッケージを実行する際の問題 - "DTSER_FAILURE(1)" で失敗します。
-
[解決済み] 一括読み込みができません。オペレーティングシステムのエラーコード5(アクセスが拒否されました。)
-
[解決済み] SQL Serverで文字列からすべてのスペースを削除する
-
[解決済み] 文字列から特定の文字を削除する
-
[解決済み] SQL Serverでforeachを記述する方法とは?
-
[解決済み] データベース内の全テーブルのサイズを取得する
-
[解決済み] クラスタ化インデックスと非クラスタ化インデックスの違い[重複]について