绑定变量的用法,真的得好好讲讲。Oracle 里,绑不绑变量差别还挺大的。尤其是性能这块,搞不好就让数据库天天硬解析,CPU 飙上天。嗯,之前我翻到一篇文章,整理得挺全面,细节也够实在,适合想搞懂绑定变量的你看看。

Oracle 的cursor_sharing参数设置,多人第一反应是改成force就能强制绑定变量,其实坑挺多。你以为省事,Oracle 反而在背后做了一堆额外的,不省反而慢。这篇文章就专门提醒了:别轻易动数据库级参数,不如在写 SQL 时自己控制变量绑定。

还有像WHERE salary > :minSalary这种条件,其实在绑定变量优化里也有讲究。有些范围查询、LIKE 模糊匹配啥的,用错方式了反而影响执行计划。这篇就一条条写清楚了。

除了原文,作者还贴了不少相关的扩展文章,我觉得也蛮值得点进去看看的,比如:

,如果你在做 SQL 调优,尤其是 Oracle 这块,对绑定变量没搞明白,那优化效率就永远差点意思。如果你最近在排查执行计划飘忽不定的问题,可以从这里入手,效果还不错。