-1
下面的查詢在沒有dateVon2和dateBis2的情況下完美運行,但是如果我在WHERE子句中添加這兩列,則需要很長時間才能執行。SQL日期時間性能
如何加快此查詢?
SELECT *
FROM table
WHERE dateVon1>= CAST('01.01.2014 00:00.000' AS DATETIME)
AND dateBis1< (CAST('10.11.2015 00:00.000' AS DATETIME)+1)
AND dateVon2>= CAST('01.01.2014 00:00.000' AS DATETIME)
AND dateBis2 < (CAST('10.11.2019 00:00.000' AS DATETIME)+1)
將日期存儲爲日期,並將它們編入索引。並且不要使用'SELECT *'。但是你究竟想要做什麼? – Strawberry
我可以彌補的一些事情:\t 首先:確保您在該列上有相關索引。其次:不要在WHERE表達式的日期時間列上使用任何函數(如CAST)。 – FallAndLearn
我不明白'CAST('01 .01.2014 00:00.000'AS DATETIME)'表達式可以返回除NULL之外的任何內容。我很疑惑這個查詢是如何返回多於零的行的,這個查詢在'dateVon2'和'dateBis2'列上有或沒有謂詞。我很難協調問題中提供的查詢文本與報告的行爲:它「完美運行」。 – spencer7593