sql >> データベース >  >> RDS >> Sqlserver

SQL Server-クラスター化インデックスと非クラスター化インデックスをいつ使用するか?

    警告の言葉を入れたいだけです:非常に注意深くお願いします クラスタ化されたインデックスを選択してください!クラスター化されたインデックスを使用すると、実際に多くの操作が高速化されるため、すべての「通常の」データテーブルにはクラスター化されたインデックスが必要です。はい、高速化 、挿入と削除も!ただし、良いを選択した場合に限ります クラスター化されたインデックス。

    最も複製された SQLServerデータベースのデータ構造。クラスタリングキーは、テーブル上のすべての非クラスタリングインデックスの一部にもなります。

    クラスタリングキーを選択するときは、細心の注意を払う必要があります。次のようにする必要があります。

    • 狭い (理想的な4バイト)

    • ユニーク (結局のところ、これは「行ポインター」です。一意にしないと、SQL Serverがバックグラウンドでそれを実行し、エントリごとに数バイトに行数と非クラスター化インデックスの数を掛けたものになります。持っている-これは非常にコストがかかる可能性があります!)

    • 静的 (変更しないでください-可能であれば)

    • 理想的には増え続ける そのため、インデックスの断片化がひどくなることはありません(GUIDは、その特定の理由により、優れたクラスタリングキーとは正反対です)

    • null許容型ではなく、理想的には固定幅である必要があります-varchar(250) クラスタリングキーが非常に貧弱になります

    他のものは、これらのポイントの背後にある重要性の2番目と3番目のレベルである必要があります....

    キンバリートリップのいくつかをご覧ください(インデックス作成の女王 )トピックに関するブログ投稿-彼女がブログに書いたものはすべて絶対に貴重です-それを読んで、それを消化してください-それによって生きてください!




    1. SQLOPSを使用してSQLServerデータベースを作成する

    2. MyISAMとInnoDB

    3. チェック制約が機能しないmysql

    4. ORA-01756:コードを実行しようとすると、引用符列が正しく終了しません