GUID列のクラスター化インデックスを削除する必要がありますか?質問する

GUID列のクラスター化インデックスを削除する必要がありますか?質問する

私は通常、GUID を主キーとして使用するデータベースで作業しています。

デフォルトでは、SQL Server は主キー列にクラスター化インデックスを配置します。これは GUID 列には無意味なアイデアであり、非クラスター化インデックスの方が優れていることは理解しています。

どう思われますか。クラスター化インデックスをすべて削除して、非クラスター化インデックスに置き換えるべきでしょうか。

SQL のパフォーマンス チューナーがこれを推奨事項として提供しないのはなぜでしょうか?

ベストアンサー1

クラスター化インデックスを使用する主な理由は、特定の列の値の範囲の行を頻繁に取得する必要がある場合です。データは物理的にその順序で配置されているため、行を非常に効率的に抽出できます。

GUID のようなものは主キーには最適ですが、挿入に追加のコストがかかり、選択には目立った利点がないため、パフォーマンスに悪影響を与える可能性があります。

したがって、GUID でインデックスをクラスター化しないでください。

なぜこれが推奨として提供されないのかについてですが、チューナーはこの事実を認識しているのではないかと思います。

おすすめ記事