12C 的 Adaptive 查询的新 FULL_PLAN_HASH_VALUE 列 (文档 ID 2179473.1)

适用于:

Oracle Database - Enterprise Edition - 版本 12.1.0.1 和更高版本
本文档所含信息适用于所有平台

用途

本文档旨在对 12C 引入的列 FULL_PLAN_HASH_VALUE 进行解释说明。

适用范围

解释在相关的 gv$ 视图和 v$ 视图中引入 FULL_PLAN_HASH_VALUE 列的目的。

详细信息

从 12C 开始,新列 FULL_PLAN_HASH_VALUE 被加入一系列 gv$ 和 v$ 视图中(参照以下列表)。该列的数值是由 SQL 对应的执行计划中的所有分支节点执行计划计算得出。该值代表当前 SQL 的整体执行计划。通过比较两个 SQL 的 FULL_PLAN_HASH_VALUE 能很容易区分两个执行计划是否完全相同(不需要一行一行的比较两个执行计划)。注意,不能跨版本比较FULL_PLAN_HASH_VALUE,因为该值不向后兼容。FULL_PLAN_HASH_VALUE 的目的在于,为在执行时可能发生执行计划改变的自适应查询,提供一个静态/固定的 HASH 值。

如下列表中的视图包含该列:

 GV$SQL
 GV$SQLAREA
 GV$SQL_PLAN
 GV$SQL_PLAN_STATISTICS
 GV$SQL_PLAN_STATISTICS_ALL

 V$SQL
 V$SQLAREA
 V$SQL_PLAN
 V$SQL_PLAN_STATISTICS
 V$SQL_PLAN_STATISTICS_ALL

各个视图的详细信息请参照官方文档,例如V$SQL信息,请参照这里

参考

NOTE:2059877.1 - OEM 12c SQL Monitor Displays Wrong Plan Hash Value
请使用浏览器的分享功能分享到微信等