暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 第一次尝试中查询执行时间

ASKTOM 2020-08-18
602

问题描述

嗨,汤姆,
我在项目中使用SQL Developer和特定的用户/模式进行Oracle开发工作。
在优化查询时-它在第一次尝试中完成约60秒的执行,因为在随后的运行中需要约10秒。让我们说,我添加了一些过滤条件并再次触发它,它仍然会使用旧的共享池,库缓存,因此完成n少于60秒。我的问题是-如何检查查询在第一次尝试中需要多少时间?

我可以通过-alter系统刷新buffer_cache;?但是,我没有特权。
还有其他方法可以在第一次尝试中检查查询的执行时间。

非常感谢,
Asit

专家解答

它不太可能是共享池,但更有可能是缓冲区缓存。

通常情况下,我不会过于关心差异,因为在实际生产使用中,您会期望响应时间介于 “无” 缓冲区缓存和 “全” 缓冲区缓存之间 (即10和60秒)。

您可以监视自动跟踪中的 “一致获取” 统计信息,以确定对查询的 * 更改 * 是否产生和改进或回归。

如果您仍然需要查看该查询运行了多长时间,则可以始终签出v $ active_session_history。它将在您的查询处于活动状态的每一秒钟获得一行,因此

select sql_exec_id, count(*)
from v$active_session_history
where session_id = ...
and session_serial# = ...
and sql_id = ...
group by sql_exec_id


应该给你一个大概的细目

文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论