如何优化Oracle在where条件中用了自定义函数的SQL语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何优化Oracle在where条件中用了自定义函数的SQL语句相关的知识,希望对你有一定的参考价值。

参考技术A where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描。
因为SQL只有在运行时才会解析局部变量,但优化程序不能将访问计划的选择推迟到运行时;它必须在编译时进行选择。然而,如果在编译时建立访问计划,变量的值还是未知的,因而无法作为索引选择的输入项。

oracle where 条件中用case

select  
 substr(xoq.item,2,5) model
from xwp_out_quantity xoq
where xoq.vendor=&s_vendorand (casewhen xoq.vendor=220010then substr(xoq.item,2,1) elsenullend)=9or  (casewhen xoq.vendor=220020then substr(xoq.item,2,1) elsenullend)=8or  (casewhen xoq.vendor=220030then substr(xoq.item,2,1) elsenullend)=7

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow


以上是关于如何优化Oracle在where条件中用了自定义函数的SQL语句的主要内容,如果未能解决你的问题,请参考以下文章

sql优化

oracle where 条件中用case

oracle 中where条件的拼接,拼接好别的表使用作为查询条件,该怎么写

oracle 性能优化建议

Oracle查询性能优化

Oracle 查询性能优化(转)