我们正在使用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