「単純な選択クエリの応答時間を短縮するにはどうすればよいですか?」という質問へのコメント 教えて:
「LaunchDate のデータ型は何ですか? DATETIME または DATETIME2 の場合、時間部分が含まれているため、インデックスはあまり機能しない可能性があります – OMG Ponies」
「@OMG - DateTime 列のクラスター化インデックスがパフォーマンスを向上させないのはなぜですか?クエリは範囲スキャンであり、すべてのデータが順次ブロックにあるため、高速範囲インデックス検索が可能になりますか?準関連... msdn. microsoft.com/en-us/library/ms177416.aspx – カルガリー コーダー"
「カルガリー コーダー: DATETIME/2 には時間が含まれます。クラスター化または非クラスター化されたインデックスは、時間は重複するが範囲ではない日付に適しています。 – OMG Ponies」
DATETIME
タイプ列にクラスター化インデックスを使用してテスト テーブルを作成しLaunchDate
、上記の質問で引用したようなクエリのインデックス シークを観察しました。
SELECT COUNT(primaryKeyColumn)
FROM MarketPlan
WHERE LaunchDate > @date
テーブルまたはインデックスのスキャンの代わりに。
列のクラスター化インデックスがDateTime
パフォーマンスを向上させないのはなぜですか? 時間部分が含まれている場合、または時間が含まれているため、
インデックスがあまり機能しないのはなぜですか?DATETIME
DATETIME2
DATETIME
列のインデックスを作成してもパフォーマンスが向上しないこと を示すスクリプトをいただければ幸いです。
更新: また、OMG はDATE
type 列のインデックスが役立つことを暗示していましたが、そうではDATETIME
ありませんでしたDATETIME2
か?