使用LIKE'string'vs ='string'对Oracle的性能有何影响?

使用LIKE'string'vs ='string'对Oracle的性能有何影响?,第1张

使用LIKE'string'vs ='string'对Oracle的性能有何影响?

使用绑定变量时,有一个明显的区别,绑定变量应该在Oracle中用于数据仓库或其他批量数据 *** 作以外的其他任何 *** 作。

以下列情况为例:

SELECt * FROM SOME_TABLE WHERe SOME_FIELD LIKE :b1

Oracle在执行之前不知道:b1的值为’%some_value%’或’some_value’等,因此它将根据启发式方法估计结果的基数,并提出一个合适的计划,可能适合或可能不适合:b的各种值,例如’%A’,’%’,’A’等。

对于相等谓词,类似的问题也可能适用,但是,例如,基于列统计信息或唯一约束的存在,可能导致的基数范围更容易估计。

因此,就我个人而言,我不会开始使用LIKE来代替=。优化器有时很容易被愚弄。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5640834.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存