暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 19C 高度平衡直方图(旧版)

原创 Asher.HU 2021-02-04
640


在传统的高度平衡直方图中,列值被划分为多个存储区,以便每个存储区包含大约相同数量的行。

例如,如果您有99个硬币要分配到4个存储桶中,则每个存储桶包含大约25个硬币。直方图显示了端点在值范围内的位置。


11.7.1高度平衡直方图的标准

Oracle Database 12c之前当NDV大于n,数据库会创建一个高度平衡(每个桶的行数基本相同)的直方图这种直方图对于范围谓词和在至少两个存储桶中作为端点的值的相等谓词很有用。


 Oracle数据库如何选择直方图类型 中的逻辑图所示,当满足以下条件时,数据库将创建一个高度平衡的直方图:

  • NDV大于n,其中n是直方图存储桶数(默认值254)。
  • 统计信息收集过程中estimate_percent参数设置为DBMS_STATSAUTO_SAMPLE_SIZE

因此,如果Oracle Database 12c创建新的直方图,并且采样百分比为AUTO_SAMPLE_SIZE,则直方图要么是最高频率,要么是混合频率,但不是高度平衡的。

如果将Oracle Database 11g升级到Oracle Database 12c,则升级之前创建的任何基于高度的直方图都将保持使用状态。

但是,如果刷新创建直方图的表上的统计信息,则数据库将替换该表上现有的高度平衡直方图。替换直方图的类型取决于NDV和以下条件:

  • 如果采样百分比为AUTO_SAMPLE_SIZE,则数据库将创建混合或频率直方图。
  • 如果采样百分比不是AUTO_SAMPLE_SIZE,则数据库将创建高度平衡或频率直方图。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论