我可以使用什么工具来识别查询使用的数据库资源? (甲骨文)
what tool can I use to identify db resources used by a query? (Oracle)
从开发人员的角度来看,我需要检查我的查询是否有效。我只是想看看服务器使用了多少内存、处理能力、秒数和记录数来满足我的查询。
Toad 中已经可以看到秒数和记录数。只是使用的内存和处理器。
我目前正在探索 hammer db,但我认为我可以使用更轻量级的工具来获取所使用的资源。有什么建议吗?
最好的工具是 SQL 跟踪。
有几种方法可以启用 SQL trace
https://oracle-base.com/articles/misc/sql-trace-10046-trcsess-and-tkprof ,
但无论如何,您需要访问服务器上的转储文件夹才能获取跟踪文件。
(并确保在获取跟踪文件之前关闭会话,因为统计信息仅在游标关闭后才会转储到跟踪文件)。
如果您没有这样的访问权限,您可以尝试
select dbms_sqltune.report_sql_monitor(sql_id=>'[your_sql_id_here]', type=>'HTML', report_level=>'ALL') from dual
这将 return CLOB 与漂亮格式化 html 文件。
但此工具不太精确(粒度为 1 秒),因此它仅对 long-运行 查询有效。并且查询需要被 Oracle 监控。
(你可以使用 /*+ monitor */ 提示,但有时它没有帮助)
可以从
获得相同的统计数据
GV$SQL_MONITOR
GV$SQL_PLAN_MONITOR
GV$SQL_PLAN
GV$ACTIVE_SESSION_HISTORY
GV$SESSION_LONGOPS
GV$SQL
观看次数。
从开发人员的角度来看,我需要检查我的查询是否有效。我只是想看看服务器使用了多少内存、处理能力、秒数和记录数来满足我的查询。
Toad 中已经可以看到秒数和记录数。只是使用的内存和处理器。
我目前正在探索 hammer db,但我认为我可以使用更轻量级的工具来获取所使用的资源。有什么建议吗?
最好的工具是 SQL 跟踪。
有几种方法可以启用 SQL trace
https://oracle-base.com/articles/misc/sql-trace-10046-trcsess-and-tkprof ,
但无论如何,您需要访问服务器上的转储文件夹才能获取跟踪文件。
(并确保在获取跟踪文件之前关闭会话,因为统计信息仅在游标关闭后才会转储到跟踪文件)。
如果您没有这样的访问权限,您可以尝试
select dbms_sqltune.report_sql_monitor(sql_id=>'[your_sql_id_here]', type=>'HTML', report_level=>'ALL') from dual
这将 return CLOB 与漂亮格式化 html 文件。
但此工具不太精确(粒度为 1 秒),因此它仅对 long-运行 查询有效。并且查询需要被 Oracle 监控。
(你可以使用 /*+ monitor */ 提示,但有时它没有帮助)
可以从
GV$SQL_MONITOR
GV$SQL_PLAN_MONITOR
GV$SQL_PLAN
GV$ACTIVE_SESSION_HISTORY
GV$SESSION_LONGOPS
GV$SQL
观看次数。