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