我需要查询类似这样的内容
SELECT * WHERE (ORDER_ID='AAA' or ORDER_ID='BBB');
我注意到它比运行
慢得多SELECT * WHERE ORDER_ID='AAA';
SELECT * WHERE ORDER_ID='BBB';
Seperately。有原因吗?这是最快的方式吗?
我在想,字符串比较应该是微不足道的。我没有必要将查询发送到服务器两次。第一个查询应该更快。
我正在使用Oracle SQL。
答案 0 :(得分:0)
他的意思是当你使用WHERE(cond1或cond2)时,它会被Oracle DB自动扩展到另一个查询中。根据执行计划,Oracle可能会决定将其作为UNION或UNION ALL处理。您可以使用explain
查看您的查询是如何展开的。 Docs