如何解决绑定变量造成执行计划不准的问题?

        我们一直都在强调用绑定变量,它可以减少SQL分析,节约共享池的空间。在我的上一篇blog中,讨论了绑定变量会使执行计划不准http://blog.csdn.net/guogang83/article/details/8175633        

        正如上一篇的所说的,如果第一次执行是走的索引,那以后一直都走索引;如果第一次不走索引,那以后一直都不走索引。使用了绑定变量后,优化器不是每次都能够准确的判断执行计划。如何才能使执行计划准呢?

     1. 对于倾斜性的列,可以通过使用直方图来优化索引;

         a.   all predicates on the column use bind variables (每个列上的谓词都使用了绑定变量)。

         b.   the column data is uniformly distributed (数据均匀的分布)。

         c.   the column is not used in WHERE clauses of queries (条件没有加到where后面)。 

         d.   the column is unique and is used only with equality predicates (列是独特的,使用时用了等号)。 

 

     2. 对于倾斜性的列,从查询性能考虑,不要使用绑定变量(如果列上有可用索引)。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值