非聚集列上的Where子句是大插入的一部分

时间:2012-04-12 19:33:19

标签: sql clustered-index

我有以下表格架构:

CREATE TABLE [Foo](
[id]    [int]       NOT NULL, 
[name]  [varchar(250] NULL,
[datetime_stamp] [datetime]     NULL,
CONSTRAINT [pk_Positions] PRIMARY KEY CLUSTERED 
(   [id] ASC))

假设有插件每天发生n次。每个插入包含26000行。对于每个插入,id是唯一值。 E.G:插入1,id 1,插入2所有行的id为2。 该表有几百万行。 如果我想根据时间检索给定插入的行,那么在where子句中使用datetime_stamp是否有意义?虽然它不是聚集的,但它仍然会一起位于表中。或者是否有更有效的方法来检索给定日期的所有插入?

1 个答案:

答案 0 :(得分:1)

datetime_stamp列上创建索引。

CREATE INDEX IX_Foo_DatetimeStamp ON Foo(datetime_stamp)