我有一个查询,它在下面的代码中isn时date条款“和datediff(day,con2.DT_DateIncluded),'2017-01-01')< = 0”在查询中未使用,但在包含它时运行缓慢。虽然运行速度很快,但只运行“select top 2 ID_Contact ...”部分,甚至包括date子句。我有一个经典的ASP应用程序的查询,它不能转换为存储过程(项目范围的原因)。你能通过改变查询代码来帮助我找到一种方法来提高完整查询的性能吗?带有datediff功能的慢T-SQL查询
select distinct top 10
ID_Contact, NO_CodCompany
from
tblContacts con1
where
ID_Contact in (select top 2 ID_Contact
from tblContacts con2
inner join tblCompanies cp on con2.NO_CodCompany = cp.ID_Company
where con2.NO_CodCompany = con1.NO_CodCompany
and datediff(day, con2.DT_DateIncluded), '2017-01-01') <= 0)
嗨Gordon Linoff,谢谢你的SUPER快速回复。尽管我不得不说,在这些修改建议后,它会一直运行缓慢,但我会将它们保留在代码中,因为它们可能会增加一些性能......干杯! –
'DATEDIFF('2017-01-01 11:59:50','2017-01-01')'仍然有'0'的值。等价代码将是'DT_DateIncluded''20170102',而不是'DT_DateIncluded''20170101'' –
@JoelCoehoorn。 。 。目前尚不清楚名为DateIncluded的字段是否会有时间分量 - 尽管如果“dt”前缀意味着暗示“datetime”,这是非常合理的。我更新了答案。 –