构造柱状图最主要的原因就是帮助优化器在表中数据严重偏斜时做出更好的规划,柱状图可以让基于代价的优化器知道何时使用索引才最合适,或何时应该根据WHERE子句中的值返回表中80%的记录。
要创建柱状图,首先要确定好它的大小。该大小与柱状图所需的存储桶(bucket)数相关。每个桶包含了关于列值和行数等信息。
SQL> execute dbms_stats.gather_table_stats('scott','empt',method_opt=>'FOR COLUMNS SIZE 4 sal');
PL/SQL 过程已成功完成。
Oracle的柱状图是高度均衡的,而不是宽度均衡。也就是说,柱状图里的所有桶都有相同的行数。桶的起点和终点取决于被平均存放在每个桶内的行之间的均衡性。
技巧:如果表中的数据分布得较不均匀,柱状图会为基于代价的优化器提供一个数据分布的均衡图。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15203236/viewspace-536322/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15203236/viewspace-536322/