我了解 statspack(来自 Oracle)可以显示具有 6 级快照的查询计划信息。我了解,如果计划统计信息存在差异,那么同一查询计划将在 statspack 报告中针对同一查询计划有多个条目(相同的哈希值) , 在快照之间的给定时间段内。
如果有两个相同但在 where 子句中存在差异的查询计划,它们是否在 statspack 中被认为是不同的,或者被认为是一个计划的“规范化”?如果它们被标准化,那么计划节点的每个值(估计和实际成本)是否在标准化计划中平均?
谢谢萨米尔
我在 Oracle 论坛上问了同样的问题,得到了这个答案“Statspack(和 AWR)通过 sql_id(hash_value)和 plan_hash_value 累积 SQL 统计信息。如果查询的两个子游标具有相同的 plan_hash_value,它们的结果将被聚合。事实上,如果您使用的是 statspack,它会聚合所有子游标统计信息 - 即使有多个不同的计划。(不过,我还没有检查过最新版本的 Oracle)“
参考:https ://forums.oracle.com/thread/2551269
问候萨米尔