我使用的是Toad的SQL优化器,它为join语句添加了以下内容。
而不是说
emp.emplid = dept.emplid
它建议
emp.emplid = dept.emplid + 0
“+ 0”有什么作用?我已经在网上搜索了过去一个小时,但找不到任何内容。我知道(+)的含义,但是我从未见过这样的东西。
最佳答案
+ 0
看起来像它。它将0添加到dept.emplid
。但是从性能的角度来看,这确实有所不同。通过将其转换为表达式,Oracle无法使用dept.emplid
的任何索引。
因此,如果Oracle选择dept.emplid
上的索引,但您宁愿使用不同的索引/计划,则添加+ 0
是影响优化程序的一种方法,因为该特定列上不再有匹配项。任何表达式都可以解决问题。
解决此问题的另一种方法是进入优化提示。尽管这对于大查询可能会有些痛苦。
关于sql - Oracle SQL '+ 0'语法是否可以联接?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7072393/