oracle中直方图对执行计划影响的详细分析
我们都知道,在Oracle数据库中,CBO将均匀分布的最小和最大之间low_value high_value目标列的数据,按照均匀分布的原则计算目标列表。
查询条件和基数的选择率。结果集
如果直方图是对收集到的目标,这意味着国会预算局认为不在目标列的数据是均匀distributed.cbo将使用直方图的统计信息的列返回的基数。结果集
验证直方图影响执行计划的步骤:
1。创建一个表t1
2。将高倾斜数据插入表中
3,在B字段上创建一个索引
4。删除表中的直方图信息
5。查看直方图信息
直方图:没有表示没有直方图信息。
6。查询b = 2的执行计划
从执行计划中可以看出,查询采用全表扫描,因为表T1中的数据被认为是均匀分布的,CBO认为
该表将比走索引更快
7。收集直方图信息
8。直方图的信息查询
直方图:频率-频率直方图
可以看出,这个表中已经有直方图信息了。
9。再看看B = 2的执行计划。
这时,可以看出执行计划已经编入索引,结果是正确的。
总结
以上就是本文的全部内容。希望本文的内容对大家的学习或工作有一定的参考价值。如果有任何疑问,可以留言交流,谢谢您的支持。