SQL逻辑运算符效率

时间:2016-12-14 22:11:18

标签: sql oracle logical-operators

我知道对下面的2个查询做一个解释计划会产生相同的成本,但是数据库会评估OR条件的两个部分,还是会在评估为{的第一个部分之后停止{1}}吗

true

交换存在的2个条件:

select 1 from dual where
exists (select 1 from small_table where col1 = 10)
or
exists (select 1 from big_table where col1 = 10);

这个问题的一个例子:

假设其中一个子查询使用包含数百万条记录(select 1 from dual where exists (select 1 from big_table where col1 = 10) or exists (select 1 from small_table where col1 = 10); )的表,另一部分使用的表只有几百条记录(big_table)。我知道我正在搜索的记录更可能位于small_table,但有时可能会在small_table中。在这种情况下,我希望首先使用big_table订购OR条件。如果这是java ...

small_table

0 个答案:

没有答案