考慮以下兩個查詢一個表,其中datecolumn被索引 -是否有oracle提示以特定順序執行where子句?
Q1: select * from table where datecolumn > sysdate - 5;
Q2: select * from table where datecolumn > sysdate - 5 and datecolumn < sysdate - 1;
Q1使用索引。但是,Q2以某種方式進行全表掃描。是否因爲oracle以某種方式首先選擇執行「datecolumn < sysdate - 1」?在那種情況下,是否有辦法執行涉及一列的where子句的執行順序?
遇到這種事情時要做的第一件事就是爲兩個查詢獲得解釋計劃。這將有助於確定計劃更改的實際原因。 *然後*,您可以使用下面答案中給出的一種或多種技術 - 但出於更好的理由而不是「似乎有效」。 – 2013-02-22 07:49:57