我正在運行一個查詢,該查詢返回某個日期範圍內的月份的日期對象集合。查詢工作正常,但速度很慢(我的本地計算機約2秒,在我們的公司開發環境約30分鐘)。這是它:Oracle中日期函數的不尋常運行時間
SELECT ADD_MONTHS(TO_DATE('200804', 'YYYYMM'), -1+rownum) AS MONTH
FROM all_objects
WHERE ADD_MONTHS(TO_DATE('200804', 'YYYYMM'), -1+rownum) <= TO_DATE('200805', 'YYYYMM')
目前,它只會返回一個月,但如果您擴展第二個日期字符串,它會返回更多。
我有兩個問題。首先,爲什麼這麼慢?我知道Oracle的功能確實減慢了查詢速度,但在我的工作中,這在開發機器上需要大約30秒。
第二個也是更令人費解的問題:當你將範圍擴展到'201805'時,爲什麼運行時縮短到幾分之一秒?我認爲更大的範圍需要更長的時間。這似乎是相反的效果。
非常好。這也很簡單。 – 2010-07-21 13:37:08