我們正在使用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'將導致碎片化。 – 2012-02-24 11:50:20
你能告訴我們**表結構**(數據類型很重要!!不只是列名.....)另外:什麼樣的**查詢**所以你期望在這張表上?你有什麼樣的其他指數(非集羣指數) - 以及有多少? – 2012-02-24 13:11:24
+1。還有什麼軟件? Enterpise版本?你可能希望使用一個按照site ...羚牛的索引分區表;)但是,需要企業版才能使用partitioend表。 – TomTom 2012-02-24 13:12:35