把索引放在日期时间!

时间:2011-07-26 18:23:13

标签: sql-server

我有一张名为livesessionhistory的表,我根据日期时间搜索它的记录。表的大小约为400,000条记录。它花了太多时间来获取记录。所以我在日期时间添加了一个索引。但不幸的是,该指数没有帮助。

此外,所有记录都是根据此日期时间进行搜索的,那么我可以将其作为聚集索引吗?

有些列在搜索时添加了一些时间以及datetime,其中一列是可以为空的,我可以将它添加到新的非聚集复合索引吗?

感谢 贾马尔。

1 个答案:

答案 0 :(得分:0)

聚集索引有可能提供帮助,尽管它也有可能因碎片而受阻,取决于您的数据是按顺序添加还是后续编辑数据。

在日期时间添加NC索引只会有助于非常狭窄的搜索,由于缺少聚簇索引,NC索引只有日期时间和行地址,因此不太可能覆盖查询 - 因此您的查询通常会忽略索引并只扫描。有关如何/为何/何时/何时的详细解释,Kimberley Tripp的Tipping Point文章是一本很好的读物。

如果您使用的是2005+企业版,则可以考虑对表进行分区,每月或每周1个分区,具体取决于您的日期范围 - 鉴于您的查询总是使用该列,这是理想的分区键,并为您提供好处管理数据时(存档,备份等)