CLOSED_STATUS
中的是一个Varchar2列,它是NULL
或' +',除了这两个之外没有其他可能的值。
我想检索CLOSED_STATUS =' +'。
的所有行以下哪种SQL查询更有效和/或更快?
SELECT ID FROM DB_ADM.ISSUE WHERE (CLOSED_STATUS = '+')
SELECT ID FROM DB_ADM.ISSUE WHERE (CLOSED_STATUS IS NOT NULL)
答案 0 :(得分:0)
取决于。
我的猜测是计划之间没有区别。您需要为两个语句生成查询计划,以查看它们是否实际上不同。如果它们不同,那么我们可以看看为什么它们不同,哪个计划更有效。
答案 1 :(得分:0)
这取决于CLOSE_STATUS是否被索引(以及该表包含的数据)。
如果没有编入索引,普通测试表上的执行计划表明成本是相同的。
但如果列已编入索引,则使用CLOSED_STATUS = '+'
,如果效率高于CLOSED_STATUS IS NOT NULL