ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Understanding METHOD_OPT=> 'for all columns size'

Understanding METHOD_OPT=> 'for all columns size'

Linux操作系统 作者:startforever 时间:2014-07-04 14:55:48 0 删除 编辑

version 1:

method_opt:决定histograms信息是怎样被统计的
method_opt参数尤其适合在表和索引数据发生变化时刷新统计数据。method_opt参数也适合用于判断哪些列需要直方图。
   某些情况下,索引内的各个值的分布会影响CBO是使用一个索引还是执行一次全表扫描的决策。例如,假如在where子句中指定
的值的数量不对称,全表扫描就显得比索引访问更高效。
  如果你有一个高度倾斜的索引(某些值的行数不对称),就可创建Oracle直方图统计。使用CBO时,最常见的错误之一就是在CBO统计中不必要地引入直方图。根据经验,只有在列值要求必须修改执行计划时
,才应使用直方图。通过设置 method_opt参数可以智能地生成直方图。
method_opt的取值如下:
for all columns:统计所有列的histograms.
for all indexed columns:统计所有indexed列的histograms.
for all hidden columns:统计你看不到列的histograms
for columns SIZE | REPEAT | AUTO | SKEWONLY:统计指定列的histograms.N的取值范围[1,254];
REPEAT上次统计过的histograms;
AUTO由oracle决定N的大小;
SKEWONLY选项会耗费大量处理时间,因为它要检查每个索引中的每个列的值的分布情况。
     假如dbms_stat发现一个索引的各个列分布得不均匀,就会为那个索引创建直方图,帮助基于代价的SQL优化器决定是进行索
引访问,还是进行全表扫描访问。

block_sapmple:是否用块采样代替行采样.
degree:决定并行度.默认值为null.
granularity:Granularity of statistics to collect ,only pertinent if the table is partitioned.
cascace:是收集索引的信息.默认为falase.
stattab:指定要存储统计信息的表,statid如果多个表的统计信息存储在同一个stattab中用于进行区分.statown存储统计信息表的
拥有者.以上三个参数若不指定,统计信息会直接更新到数据字典.
no_invalidate: Does not invalidate the dependent cursors if set to TRUE. The procedure invalidates the dependent
cursors immediately if set to FALSE.
force:即使表锁住了也收集统计信息.

-------------------

for columns SIZE | REPEAT | AUTO | SKEWONLY:统计指定列的histograms.N的取值范围[1,254];
----------------

oracle 10g dbms_stats method_opt中的参数指明对哪些列生成直方图,及其最大桶数

http://www.itpub.net/thread-1344276-1-1.html

version2:

Understanding METHOD_OPT

The METHOD_OPT parameter of DBMS_STATS controls two things:

  1. on which columns statistics will be collected
  2. on which columns histograms will be collected (and how many buckets)

http://structureddata.org/2008/10/14/dbms_stats-method_opt-and-for-all-indexed-columns/

version3:

begin
dbms_stats.gather_table_stats(
user,
't1',
cascade => true,
estimate_percent => null,
method_opt => 'for all columns size 120'
);
end;
/

I asked Oracle to generate a histogram with 120 buckets.----from CBO Jonathan lewis。

 

----------end-------------


 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28743704/viewspace-1209442/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-03-22

  • 博文量
    106
  • 访问量
    65532