考虑以下两个查询一个表,其中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