统计分析触发阈值(analyze_threshold)
📄字数 901
👁️阅读量 加载中...
引入版本
v11.0.0
功能描述
系统进行自动分析的触发阈值。
参数属性
属性 | 属性值 |
---|---|
参数类型 | INTEGER |
默认值 | 10 |
取值范围 | [1,100] |
影响范围 | 系统级 |
修改方式 | 在线修改,立即生效 |
使用场景说明
- analyze_threshold 作为自动分析的触发条件,不同的自动分析策略下其触发条件不同。
自动分析策略 | 自动分析触发条件 |
---|---|
定时分析 | 由 analyze_time 决定。 |
立即分析 | 连续的两次分析动作间隔内表上发生更改的行数占总行数的百分比达到 analyze_threshold 时触发自动分析任务。 |
优化分析 | 连续的两次分析动作间隔时间大于优化分析周期时触发自动分析任务( 支持调用系统包方法 DBMS_STAT.SET_ANALYZE_OPTIMIZE 设置优 化分析周期;支持访问系统表 SYSDBA.SYS_TABLES 的 ANA_PERIOD 字段查 看表对象的自动分析优化周期;优化分析周期为 0 则不进行自动优化分析 )。 |
- 支持通过系统包 DBMS_STAT.SET_ANALYZE_PARAM 为指定表设置统计分析阈值。
- 支持访问系统表 SYSDBA.SYS_TABLES 的 ANA_THRESHOLD 字段查看表的统计分析阈值。
- 表对象上若未设置统计分析阈值,则使用系统默认统计分析阈值 analyze_threshold。
- 定时分析和立即分析策略会产生统计信息更新的自动分析场景。
- | 连续的两次分析动作间隔内表上 发生更改的行数占总行数的百分 比达到 analyze_threshold | 连续的两次分析动作间隔内表上 发生更改的行数占总行数的百分 比未达到 analyze_threshold |
---|---|---|
表上没有统计信息 | 更新统计信息 | 更新统计信息 |
表上已有统计信息 | 更新统计信息 | 不更新统计信息 |
示例
- 在线修改 analyze_threshold
sql
SQL> set analyze_threshold to 10;
Execute successful.
Use time:2 ms.
- 在线查看 analyze_threshold
sql
SQL> show analyze_threshold;
+-------------------+
| ANALYZE_THRESHOLD |
+-------------------+
| 10 |
+-------------------+
(1 row)
Use time:0 ms.