私はSQL Server 2008を使用しています。私のテーブルの1つでは、識別子に(クラスタ化された)主キーを実装しました。ここではテーブルの記述があります:私の主キーがクエリを遅くするのはなぜですか?
識別子: - IdentifierId INT NOT NULL PK - 別名データ型はnvarchar(200) - NOT NULLのデータ型はint
は、私は2つのインデックス製:エイリアス用とデータ型の別のものを。 しかし、私は奇妙な何かに気づいた。次のクエリ実行している場合 :SELECT * FROM IDENTIFIER WHERE DataType = 1
をクエリでは、実際にそれらなしでよりインデックスおよび主キーで実行速度が遅いです。それは約10秒かかる!インデックスは断片化されていません - 私はチェックしました - 私はこれも使用しています。これはクエリ自体の前にこの
GO
CHECKPOINT;
GO
DBCC DROPCLEANBUFFERS;
GO
DBCC FREEPROCCACHE;
GO
です。
この表はかなり大きく、数百万のエントリがあります。インデックスとPKはほとんどのクエリで重要な役割を果たしますが、この場合クエリが実行されている理由を理解できません遅い何か案は?事前に
おかげ
EDIT:実行計画が唯一のクラスタ化インデックスが使用されていることを示しており、データ型の変数は、現在150
作成された実行計画を見ましたか? –
データタイプの列はどのように選択されますか? (つまり、列の値はいくつありますか?) –
ちょうど答え:クラスタ化されたインデックスとデータ型だけが1から150になる –