oracle user

编程入门 行业动态 更新时间:2024-10-07 09:28:18

<a href=https://www.elefans.com/category/jswz/34/1770041.html style=oracle user"/>

oracle user

与所有与优化程序相关的统计数据一样,这些值是从表中收集统计数据时的不同精度的估计值.因此,完全可以预期它们会接近但不完全准确,完全有可能它们会非常不正确.

收集统计信息时,指定应采样的行(或块)的百分比.可以指定100%的样本大小,在这种情况下,Oracle会检查每一行,但是要求样本大小接近那么大是相对罕见的.要求更小的样本量(明确地或通过让Oracle自动确定样本大小)要高效得多.如果您的行样本不包含值为1000的一行,则HIGH_VALUE将不为1000,HIGH_VALUE将为5,假设该值是样本看到的最大值.

统计数据也是一个快照.默认情况下,11g将每晚收集自上次在该对象上收集统计信息以来经历了足够更改的对象的统计信息,以保证刷新统计信息,尽管您可以禁用该作业或更改参数.因此,如果您今天收集100%样本大小的统计信息以获得1000的HIGH_VALUE,然后插入值为3000的一行并且永远不再修改该表,那么Oracle可能永远不会再收集该表的统计信息(除非你明确要求它,并且HIGH_VALUE将永远保持1000.

假设列上没有直方图(这是另一个完整的讨论),Oracle使用LOW_VALUE和HIGH_VALUE来估计特定谓词的选择性.如果LOW_VALUE为1,HIGH_VALUE为1000,表中有1,000,000行,列上没有直方图,并且您运行查询,如

SELECT *

FROM some_table

WHERE column_name BETWEEN 100 and 101

Oracle将猜测数据均匀分布在1到1000之间,以便此查询将返回1,000行(将表中的行数(1百万)乘以查询覆盖的范围的一小部分(1/1000)).反过来,这种选择性估计将推动优化器确定使用索引或执行表扫描是否更有效,使用哪种连接方法,评估各种谓词的顺序等等.如果您有然而,数据的非均匀分布可能最终会在列上显示直方图,从而为Oracle提供有关列中数据分布的详细信息,而不是LOW_VALUE和HIGH_VALUE提供的信息.

更多推荐

oracle user

本文发布于:2024-02-28 10:28:36,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1769200.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:oracle   user

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!