您的位置:首页 > 其它

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

2013-06-03 08:49 381 查看
        我们一直都在强调用绑定变量,它可以减少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. 对于倾斜性的列,从查询性能考虑,不要使用绑定变量(如果列上有可用索引)。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐