我需要为我的长SQL脚本收集统计数据。由Java应用程序生成并由第三方fast DB-driver执行的脚本文件。
这样我就不能使用AUTOTRACE,因为它不是SQLPlus。但是出于性能方面的原因,我需要知道脚本中每条语句的统计信息。
你能建议一些方法或最佳实践吗?
我看了看STATSPACK的方向,其次是tkproof。1. STATSPACK看起来就像在轮子上折断一只蝴蝶的机器。不是吗? 2. the证明需要某种特权,我担心Java应用程序用户没有这样的特权。
还有别的事吗?
发布于 2010-10-11 21:25:51
您可以从v$sql获取一些统计信息:
SELECT q.*
FROM v$session s
, v$sql q
WHERE s.sql_address = q.address
AND s.sql_hash_value = q.hash_value
AND s.sid = :SID
;还有v$session_longops,它显示运行超过6秒的所有操作。
发布于 2010-10-11 23:46:11
Oracle用户生成跟踪文件唯一需要提升权限是ALTER SESSION。如果您的用户已经在SYS.DBMS_MONITOR上执行,那么您甚至可能不需要它,因为SESSION_TRACE_ENABLE和SESSION_TRACE_DISABLE允许实例化跟踪。
另一方面,检索跟踪文件需要DBA或DBA的帮助来执行配置,以允许跟踪文件公开(在生产环境中这不是一个好主意)。Dion Cho有一个很好的例子,说明了如何对Oracle跟踪文件进行here.查询
https://stackoverflow.com/questions/3906434
复制相似问题