统计分析模式(analyze_mode)
📄字数 950
👁️阅读量 加载中...
引入版本
v11.0.0
功能描述
统计分析的默认分析模式。
参数属性
属性 | 属性值 |
---|---|
参数类型 | INTEGER |
默认值 | 1 |
取值范围 | {1,2} |
影响范围 | 系统级 |
修改方式 | 在线修改,立即生效 |
使用场景说明
- analyze_mode 控制系统在自动分析场景下的默认分析模式。
analyze_mode | 作用及影响 |
---|---|
1 | 只对索引字段和启用了分析的字段进行分析( 可调用系统包 DBMS_STAT.SET_ANALYZE_COLUMNS 指定待分析字段, 可访问系统表 SYSDBA.SYS_COLUMNS 的 ANA_FLAG 字段查看字段是否需要被分析 )。 |
2 | 在模式 1 的基础上,额外对所有数字及日期类型字段进行分析。 |
- 可调用系统包 DBMS_STAT.SET_ANALYZE_PARAM 手动设置分析模式。
- 可访问系统表 SYSDBA.SYS_TABLES 的 ANA_POLICY 字段查看分析策略,分析策略由两种分析策略粒度组合而成的魔数表示。
策略粒度 | 魔数及代表的分析策略 |
---|---|
执行级粒度 | 1(定时分析策略) 2(立即分析策略) 4(优化分析策略) |
分析级粒度 | 8(对应 analyze_mode = 1) 16(对应 analyze_mode = 2) 32(索引分析粒度1,只分析根级块) 64(索引分析粒度2,只分析非叶级块) 128(索引分析粒度3,只分析叶级块) |
通过拆解分析策略的魔数值,再根据两种分析策略粒度的组合关系得出不同分析场景下的分析模式。
- | 1(定时分析) | 2(立即分析) | 4(优化分析) |
---|---|---|---|
8(对应 analyze_mode = 1) | 1 | 1 | 2 |
16(对应 analyze_mode = 2) | 2 | 2 | 2 |
32(只分析索引根级块) | analyze_mode | analyze_mode | 1 |
64(只分析索引非叶级块) | analyze_mode | analyze_mode | 2 |
128(只分析索引叶级块) | analyze_mode | analyze_mode | 3 |
其它场景(默认) | analyze_mode | analyze_mode | 2 |
示例
- 在线修改 analyze_mode
sql
SQL> set analyze_mode to 1;
Execute successful.
Use time:4 ms.
- 在线查看 analyze_mode
sql
SQL> show analyze_mode;
+--------------+
| ANALYZE_MODE |
+--------------+
| 1 |
+--------------+
(1 row)
Use time:0 ms.