【发布时间】:2015-10-18 18:19:33
【问题描述】:
我有一个包含这么多 SET 语句的存储过程。这需要很长时间才能执行。我可以做些什么来提高性能。我在此处包含了一项声明。
SET @VisitedOutlets=(select count (distinct CustomerId) from dbo.VisitDetail
where RouteId = @intRouteID
and CONVERT(VARCHAR(10),VisitDate,111) between CONVERT(VARCHAR(10),@FromDate,111)
and CONVERT(VARCHAR(10),@ToDate,111));
【问题讨论】:
-
VisitDate,@FromDate,@ToDate的数据类型是什么 -
所有 3 列数据类型均为 DATETIME
-
VisitDetail 表中有多少条记录?
-
@Tom 然后从 where 子句中删除
convert函数。同时在Routeid和visitdate上创建索引 -
您有关于 CustomerID 的任何索引吗?在包含 customerId 的 RouteID 上添加 NC 索引将提高此查询的性能。
标签: sql sql-server stored-procedures sql-server-2005