SQL Server 2008 Enterpriseバージョンを使用しています。私たちは大きなテーブルFooTable(数十億行)を持っています。SQL Serverの日付列を変更するためのクラスタードインデックスのパフォーマンスの問題
FooTable列:site:varchar(7), device:varchar(7), time(datetime), value(float)
毎日、私たちは新しい数百万行を挿入します。
site
,device
およびtime
(順番に)のクラスタ化インデックスを作成しました。
私たちが見る通り、site
とdevice
は比較的一定ですが、time
は時間が経つにつれて変化し続けます。このテーブルに対して実行
クエリは次のようになります。
INSERT INTO FooTable SELECT * FROM #BULK_INSERTED_TEMP_TABLE
SELECT value FROM FooTable WHERE site = 'fooSite' AND device = 'fooDevice' AND time = 'fooTime'
SELECT SUM(value) FROM FooTable WHERE site = 'fooSite' AND device = 'fooDevice' AND time > 'startTime' AND time <= 'endTime'
最高のクラスタ化インデックスのデザインとは何ですか?
テーブルにアクセスするクエリについて何も知らなくても、確実に言うことはできません。 'site、device、time'は断片化につながります。 –
**テーブル構造**を表示できますか?(データ型は重要です!!列名だけでなく.....)また、どのような**クエリ**のようにそのテーブルに期待していますか?どのような他のインデックス(ノンクラスターのもの)がありますか? –
+1。また、どのようなsoftwaerですか?エンタープライズ版?サイトごとにパーティション化されたテーブルを使用したいかもしれません...インデックスから外してください;)partitioendテーブルを使用するには、エンタープライズエディションが必要です。 – TomTom