2012-04-12 36 views
0

的部分條款,我有以下表模式:凡在非羣集列,這是一個大的插入

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

datetime_stamp列上創建一個索引。

CREATE INDEX IX_Foo_DatetimeStamp ON Foo(datetime_stamp) 
+0

爲什麼不在時間戳列創建一個聚集的非唯一索引? – Asdfg 2012-04-12 19:39:35

+0

@Asdfg再看看DDL。 'id'列已經是一個集羣主鍵。 – 2012-04-12 19:40:31

+0

好的。我現在看到了。 :) – Asdfg 2012-04-12 19:41:19

相關問題