我可以使用什么工具来识别查询使用的数据库资源? (甲骨文)

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

观看次数。