【发布时间】:2010-11-19 04:30:18
【问题描述】:
MarketPlane 表包含超过 6000 万行。
当我需要特定日期的飞机总数时,我执行这个查询需要 7 分钟以上。我怎样才能减少这个时间?
SELECT COUNT(primaryKeyColumn)
FROM MarketPlan
WHERE LaunchDate > @date
我已经实现了您链接中提到的所有内容,即使现在我已经实现了With(nolock),它将响应时间缩短到 5 分钟。
【问题讨论】:
-
Sql Server 2008 和 LaunchDate 上的集群索引
-
如果您在 LaunchDate 已经有一个聚集索引,您不应该看到 7 分钟以上的查询时间吗?您一次检索多少条记录?
-
@OMG - 为什么 DateTime 列上的聚集索引不能提高性能?该查询是一个范围扫描,允许快速范围索引查找,因为所有数据都在顺序块中?半相关...msdn.microsoft.com/en-us/library/ms177416.aspx
-
6000 万条记录也进入了数据所在磁盘的设置可以产生相当大差异的地步。随着数据库的增长,它的优化会涉及更多。
-
launchDate 的数据类型是 Sql Server 2008 中的日期。
标签: sql sql-server tsql sql-server-2008