Oracle DBA_HIST_SQLSTAT和GV$SQL之间的关系

Oracle DBA_HIST_SQLSTAT和GV$SQL之间的关系,oracle,oracle11g,Oracle,Oracle11g,我试图创建一个仪表板,比较多个SQL语句的历史执行和当前执行。我注意到GV$SQL和DBA_HIST_SQLSTAT中的统计数据之间存在一些差异。你能帮助我们理解下面这一点吗 例如:对于一个SQL\u ID,我在DBA\u HIST\u SQLSTAT和DBA\u HIST\u SNAPSHOT中有37行(具有相同的PHV和相同的子编号)。“执行次数之和”u delta列给了我91。然而,根据GV$SQL,执行只有40次 DBA_HIST_快照的最小开始间隔时间为2018年5月23日,最大结束间

我试图创建一个仪表板,比较多个SQL语句的历史执行和当前执行。我注意到GV$SQL和DBA_HIST_SQLSTAT中的统计数据之间存在一些差异。你能帮助我们理解下面这一点吗

例如:对于一个SQL\u ID,我在DBA\u HIST\u SQLSTAT和DBA\u HIST\u SNAPSHOT中有37行(具有相同的PHV和相同的子编号)。“执行次数之和”u delta列给了我91。然而,根据GV$SQL,执行只有40次

DBA_HIST_快照的最小开始间隔时间为2018年5月23日,最大结束间隔时间为2018年6月5日。v$sql中的首次加载时间和最后一次加载时间分别为2018年1月31日和2018年6月18日

请帮助我理解为什么与gv$sql值相比,DBA_HIST_SNAPSHOT可以在更短的时间内执行更多的快照

国家文献

DBA_HIST_SQLSTAT显示有关SQL统计信息的历史信息。此视图根据一组条件捕获顶级SQL语句,并从V$SQL捕获统计信息

增量值是DBA_HIST_快照视图中从开始_INTERVAL_时间到结束_INTERVAL_时间的统计值

这就是为什么视图DBA_HIST_SQLSTAT有更多执行的原因。这是保存所有捕获执行的历史视图。相反,如果从共享池刷新游标,则其统计信息将从
V$SQL
(或
GV$SQL
)中消失

第二点是与统计数据相关的时间间隔。在DBA_HIST_SQLSTAT中,与两个快照之间的间隔明确相关的
delta
统计信息在视图
DBA_HIST_SNAPSHOT
中定义。 在
V$SQL
中没有可比较的时间间隔,特别是不能将
first\u load
begin\u interval\u time
进行比较

因此,对于比较游标的历史和当前统计信息的报告,您只能使用视图DBA_HIST_SQLSTAT,将最后一个快照增量统计信息解释为当前,将其余部分解释为历史部分