您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

使用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来代替=。优化器有时很容易被愚弄。

Oracle 2022/1/1 18:38:02 有310人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶