我有一個查詢,它在下面的代碼中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」,這是非常合理的。我更新了答案。 –