我使用的是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/

10-11 03:26