SQL Serverの一意の識別子列のクラスター化/非クラスター化インデックス
-
03-07-2019 - |
質問
ここでは、uniqueidentifier列にクラスター化インデックスを作成することはパフォーマンス上の理由から適切ではないことを基本的に示すさまざまな質問/回答をここで読みました。とにかく、一意の識別子を主キーとして使用する必要があります。また、生成された値が互いにあまりにも似ているため、newsequentialid()は使用しません(ユーザーが[推測]別のID)。
では、このPKにインデックスを付ける最良の方法は何ですか?この列のクラスター化インデックスは理想的ではありませんが、「一意の非クラスター化」よりも優れていますか?インデックス?
SQL Server 2005を使用しています。
解決
まず、 NEWID()
を使用してランダム(ランダムに見えるだけでなく)を達成しようとすると、問題が発生します。
他のインデックスはクラスター化インデックスキーを参照し、長いクラスター化インデックスキーはすべてのインデックスのパフォーマンスを低下させるため、通常は理想的な選択とは言えません。 IDENTITY
整数列を作成してクラスター化インデックスを作成し、 uniqueidentifier
列に非クラスター化ユニークインデックスを作成することができます。
所属していません StackOverflow