10,000,000 レコードを超えるテーブル (SQL 2000) があります。レコードは、1 週間あたり約 80,000 ~ 100,000 の割合で追加されます。週に一度、データからいくつかのレポートが生成されます。インデックスがほとんどないため (おそらく INSERT を高速化するため)、通常、レポートの実行はかなり遅くなります。1 つの新しいレポートでは、特定の「char(3)」列にインデックスを追加することで、実際にメリットが得られる可能性があります。
Enterprise Manager (インデックスの管理 -> 新規 -> 列の選択、OK) を使用してインデックスを追加し、テーブルのインデックスを再構築しましたが、SELECT クエリはまったく高速化されていません。何か案は?
更新:
テーブル定義:
ID, int, PK
Source, char(3) <--- column I want indexed
...
About 20 different varchar fields
...
CreatedDate, datetime
Status, tinyint
ExternalID, uniqueidentifier
私のテストクエリは次のとおりです。
select top 10000 [field list] where Source = 'abc'