SQL Query运行缓慢

时间:2016-09-22 05:29:44

标签: sql sql-server sql-server-2008

我在sql server 2005中有一个带有6588395记录的客户表,我需要根据创建日期从客户表中检索记录。 我在创建日期创建了聚簇索引。通过链接服务器,我正在从该表中检索记录。 我使用的查询是

@StartDate=N'01 Jan 2016',@EndDate=N'31 Mar 2016'

select 
   firstname, 
   lastname,
   Address,
   Addrss1,
   city    
from  
   [ABC\SQCENTRE].[Reports].[dbo].[tbl_Customer]  
where      
   creation_date   BETWEEN  @startdate AND  @EndDate

此查询需要30分钟才能检索记录。您能否建议如何优化查询。

我也试过openquery,这也没有任何区别。 Creation_date是一个日期时间字段

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:1)

因此,如果createdate是datetime,则将vars设置为datetime值而不是varchar ...

<button ng-click="addParameter()"></button>

SQLServer会将表中的值与比较值进行比较。因此我不知道他是否会将您的搜索值投射到日期时间或将700万个日期时间投射到varchar进行比较。所以这就是为什么我肯定会将我的搜索表达式放到datetime以确保,服务器不会向varchar投射700万个日期值。

RAM或tempdb中的700万个演员可以解释为什么openquery(肯定是where子句的本地评估)需要30分钟。 如果我们有执行计划,这将更容易说明。