首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DBA_HIST_SQLSTAT与GV$SQL的关系

DBA_HIST_SQLSTAT与GV$SQL的关系
EN

Stack Overflow用户
提问于 2018-06-20 12:32:37
回答 1查看 761关注 0票数 1

我试图创建一个仪表板,比较历史执行和当前多个SQL语句的执行情况。我注意到GV$SQL和DBA_HIST_SQLSTAT中的统计数据有一些不同。请你帮我们理解以下几点好吗?

对于一个SQL_ID,我在DBA_HIST_SQLSTAT和DBA_HIST_SNAPSHOT中有37行(对于所有人都有相同的PHV和相同的子编号)。executions_delta列之和给我91。但是,根据GV$SQL,执行只有40次。

从DBA_HIST_SNAPSHOT开始间隔时间为23/5/2018,最大结束间隔时间为5/6/2018。First_load_time和last_load_time v$sql分别为2018年1月31日和2018年6月18日。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-20 16:14:23

SQLSTAT状态的文献

DBA_HIST_SQLSTAT显示有关SQL统计信息的历史信息。该视图基于一组标准捕获顶级SQL语句,并从V$SQL捕获统计信息。增量值是从BEGIN_INTERVAL_TIME到DBA_HIST_SNAPSHOT视图中的END_INTERVAL_TIME的统计信息的值。

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

第二点涉及与统计相关的时间间隔。在DBA_HIST_SQLSTAT中,delta统计数据与视图DBA_HIST_SNAPSHOT中定义的两个快照之间的间隔明显相关。在V$SQL中没有可比较的时间间隔,尤其是您无法将first_loadbegin_interval_time进行比较。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50948379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档