インデックスが使用されていない場合は、通常、次の 2 つの問題のいずれかを示しています。
<オール> <リ>
WHERE DATEPART(YY, Column) = <something>
などの検索引数不可の述語条件 .列を関数でラップすると、オプティマイザーがインデックスを効果的に使用する能力が損なわれるか、なくなります。
SELECT *
を書く習慣がある場合、出力リストにカバーされていない列が含まれる可能性が非常に高くなります。 SELECT specific_columns
の代わりに .インデックスがクエリをカバーしていない場合、SQL Server はすべての行に対して RID/キー ルックアップを 1 つずつ実行する必要があります。これにより、クエリの速度が大幅に低下し、オプティマイザーが代わりにテーブル スキャンを実行することを決定する可能性があります。
これらのいずれかがあなたの状況に当てはまるかどうかを確認してください。それでも混乱する場合は、質問を更新して、スキーマ、データ、および遅いクエリに関する詳細情報を追加することをお勧めします。 500 MB は SQL データベースにとって非常に小さいため、遅くはありません。実行計画の内容も投稿してください。