直方图有2中类型,等频与等高。等频就是在收集统计信息的时候,指定的桶数大于唯一值的数量,但是不能超过254个。如果在收集统计信息的时候指定的桶的数量少于唯一值的数量,或唯一值的数量大于254那么就成了等高直方图。下面实验
SQL> select id,count(*) from test group by id;
ID COUNT(*)
---------- ----------
1 10
5 365
99 10000
10 100
使用5个桶收集下信息
SQL> exec dbms_stats.gather_table_stats(ownname=>'baixyu',tabname=>'test',method_opt=>'for columns id size 5');
SQL> select table_name,column_name,num_distinct,num_buckets,histogram from user_tab_col_statistics where table_name='TEST';
TABLE_NAME COLUMN_NAME NUM_DISTINCT NUM_BUCKETS HISTOGRAM
-------------------- -------------------- ------------ ----------- --------------------
TEST ID 4