动态统计信息是一种优化技术,其中数据库使用递归SQL扫描表中块的随机小样本。
样本扫描估计谓词选择性。使用这些估计,数据库可以为未分析的细分确定更好的默认统计信息,并验证其估计。默认情况下,当优化器统计信息丢失,过时或不足时,动态统计信息将在解析期间自动运行递归SQL,以扫描表块的少量随机样本。
动态统计级别控制都在数据库云集动态统计和样本,优化程序使用,收集统计数据的大小。
使用OPTIMIZER_DYNAMIC_SAMPLING 初始化参数或语句提示来设置动态统计信息级别。
注意:
在Oracle Database 12c第1版(12.1)之前的版本中,动态统计信息称为动态采样。
下表描述了动态统计信息的级别。请注意以下几点:
- 如果
OPTIMIZER_DYNAMIC_STATISTICS为TRUE,并且没有禁用动态统计信息,则当SQL语句使用并行执行时,数据库可以选择使用动态统计信息。 - 如果
OPTIMIZER_ADAPTIVE_STATISTICS为TRUE,则当存在相关的SQL计划指令时,优化器将使用动态统计信息。数据库将结果统计信息保存在SQL计划指令存储中,以使其可用于其他查询。
表12-5动态统计级别
| 水平 | 当优化器使用动态统计信息时 | 样本量(块) |
|---|---|---|
0 | 不要使用动态统计信息。 | 不适用 |
1个 | 对所有没有统计信息的表使用动态统计信息,但前提是必须满足以下条件:
| 32 |
2 | 如果语句中至少有一个表没有统计信息,请使用动态统计信息。这是默认值。 | 64 |
3 | 如果满足以下任一条件,请使用动态统计信息:
| 64 |
4 | 如果满足以下任一条件,请使用动态统计信息:
| 64 |
5 | 标准与第4级相同,但是数据库使用不同的样本量。 | 128 |
6 | 标准与第4级相同,但是数据库使用不同的样本量。 | 256 |
7 | 标准与第4级相同,但是数据库使用不同的样本量。 | 512 |
8 | 标准与第4级相同,但是数据库使用不同的样本量。 | 1024 |
9 | 标准与第4级相同,但是数据库使用不同的样本量。 | 4086 |
10 | 标准与第4级相同,但是数据库使用不同的样本量。 | 所有块 |
11 | 当优化器认为必要时,数据库会自动使用自适应动态采样。 | 自动确定 |
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




