直方图中值的受欢迎程度会影响基数估计算法。
具体来说,基数估计受到以下影响:
- 受欢迎的价值观
流行值发生是由于多个桶的端点值。优化器通过首先检查值是否为存储桶的端点值来确定该值是否流行。
如果是这样,则对于频率直方图,优化器将从当前存储桶的端点号中减去前一个存储桶的端点号。
混合直方图已经分别为每个端点存储了此信息。如果该值大于1,则该值很受欢迎。优化器使用以下公式计算其流行度基数估计值:
cardinality of popular value = (num of rows in table) * (num of endpoints spanned by this value / total num of endpoints) - 非大众价值观
任何不受欢迎的价值都是不受欢迎的价值。优化器使用以下公式计算非大众值的基数估计:
cardinality of nonpopular value = (num of rows in table) * density(密度)
优化器使用内部算法基于存储桶数和NDV等因素来计算密度。密度表示为0和1 之间的十进制数字 。接近的值1表示优化程序期望引用谓词列表中此列的查询返回许多行。接近的值0表示优化器期望返回几行。
也可以看看:
Oracle Database Reference了解该DBA_TAB_COL_STATISTICS.DENSITY专栏
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




