私のデータベースに最適なインデックスを作成しようとすると、私が取り組んでいるいくつかの特定の動作に気づいたことがあります。ノンクラスタード・インデックスで使用できる主キーはありますか?
次の表と対応するインデックス(SQL Server 2005を)守ってください。この場合
CREATE TABLE demo
(
id INT PRIMARY KEY IDENTITY,
name NVARCHAR(50) NOT NULL,
password BINARY(20) NOT NULL
);
CREATE NONCLUSTERED INDEX idx_demo_foo ON demo (name, password);
、私は次のクエリを実行した場合...
SELECT id FROM demo
WHERE name = @0
AND password = @1;
を...唯一の非クラスタ化インデックスシークが発生します。ノンクラスタード・インデックスにidを明示的に追加していないため、これは奇妙なものです。
私が言及する必要があります...優秀な質問を。私はもっと多くの人々がこのようなクエリプランを調査してほしいと思っています。 –
厳密にするには、クラスタ化されたキーが含まれ、プライマリキーは含まれません。彼らは99.99%の時間に一致しますが、実際には区別できます。 PKは論理構造であり、クラスタ化されたキーは物理的なものです。 –
物理的なもの(ユニークなインデックス)によって強制される '論理構造'は、PKも... –