我提前道歉,因为我是这个领域的新手,我可能没有预先提供所有必需的信息,但这里是。
- 我在一个两节点 Oracle RAC 上。
- 最近收集了优化器统计数据并且非常准确。
- 我有一个查询,其中引用了 3 个表。(表 A 左外连接 X 上的表 B 左外连接 Z 上的表 C。)
- 表 B 和 C 已分区。
- 这三个表的度数均为 1。
- select index_name from dba_indexes where degree != 1 and index_name not like 'SYS%' 不返回任何行。(因此索引的度数为 1)。
- 我设置了以下参数:
.
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
optimizer_dynamic_sampling integer 2
optimizer_features_enable string 11.2.0.3
optimizer_index_caching integer 0
optimizer_index_cost_adj integer 100
optimizer_mode string ALL_ROWS
optimizer_secure_view_merging boolean TRUE
optimizer_use_invisible_indexes boolean FALSE
optimizer_use_pending_statistics boolean FALSE
optimizer_use_sql_plan_baselines boolean TRUE
os_authent_prefix string
os_roles boolean FALSE
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
parallel_adaptive_multi_user boolean FALSE
parallel_automatic_tuning boolean FALSE
parallel_degree_limit string CPU
parallel_degree_policy string MANUAL
parallel_execution_message_size integer 16384
parallel_force_local boolean FALSE
parallel_instance_group string
parallel_io_cap_enabled boolean FALSE
parallel_max_servers integer 960
parallel_min_percent integer 0
parallel_min_servers integer 0
和
- 表和索引的所有度数设置为 1
- parallel_degree_policy 设置为 MANUAL
- 查询中未提供任何提示
在运行解释计划时,我的自动 DOP:计算并行度计算为 3 的可能原因是什么?