ITPub博客

首页 > 数据库 > Oracle > Oracle 12c新特性 - Hybrid histogram 2

Oracle 12c新特性 - Hybrid histogram 2

原创 Oracle 作者:tolywang 时间:2014-03-24 12:01:12 0 删除 编辑

3.      生成 hybrid histogram 

从上面的表达式,我们可适当在后面增加distinct value来达到生成 hybrid histogram的要求。 我们增加 13~36 这几个整数到 table的code列中,每个值1行记录。 总数变成 192+24=216 。现在的 distinct 值有 12+24=36 ,桶的个数n可以取大一些的值以便满足条件。比如

n=16 < NDV=36 ,且此时计算value个数排在top 16 行的总数为 196 :
select sum(CNT) from (
    select code , count(1) as CNT from   hw.test_tmp3  group by code  order by count(1) desc
   ) where  rownum<=16   ;


1 - 1/16 =0.9375 > 196/216 = 0.9074,满足生成混合直方图的第二个条件, 我们再来看看是否会生成混合直方图。


exec  dbms_stats.gather_table_stats('hw','test_tmp3',method_opt=>'for all columns size 16');


Column Name ID Pk Null? Data Type Default Histogram Encryption Alg Salt

CODE 1  Y NUMBER   Hybrid  
NAME 2  Y VARCHAR2 (80 Byte)  Frequency  
TYPE 3  Y VARCHAR2 (6 Byte)  Frequency  
UPDATE_DATE 4  Y DATE  Hybrid  

可以看到CODE列上已经生成了hybrid直方图  . 

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

请登录后发表评论 登录
全部评论
Oracle , MySQL, SAP IQ, SAP HANA, PostgreSQL, Tableau 技术讨论,希望在这里一起分享知识,讨论技术,畅谈人生 。

注册时间:2007-12-10

  • 博文量
    5595
  • 访问量
    13514348