查询v $ sql / v $ sqlarea表中的PL / SQL源(行号)

时间:2016-07-28 08:05:47

标签: sql oracle

我使用Oracle Enterprise Manager来监控数据库上的当前负载。如果存在高负载SQL,我可以看到其详细信息,还有“统计信息”选项卡。在“一般”部分,我可以看到:

Module: JDBC Thin Client
Action: (empty)
Parsing schema: SCHEMA1
PL/SQL Source (Line Number): SCHEMA1.PACKAGE_ABC (1457)
SQL Profile: n/a
SQL Plan Baseline n/a

此外,我有一个简单的查询,我可以在我的数据库上运行,以查看正在发生的事情:

SELECT 
  q.sql_id,
  q.PARSING_SCHEMA_NAME,
  q.ADDRESS,
  q.SQL_TEXT,
  q.last_active_time
FROM v$sqlarea q
WHERE q.last_active_time > sysdate - 1
ORDER BY last_active_time DESC

问题是:是否有任何方法可以添加到我的查询列PL / SQL源(行号)的结果中,该列将显示与Oracle企业管理器相同的信息?

1 个答案:

答案 0 :(得分:0)

您可以从v $ session获取大量信息。我首选的方法是使用以下调用来检测pl / sql代码:

DBMS_APPLICATION_INFO.set_action('Doing XXX in YYY);

当你想知道自己的位置时。然后可以在v $ session.action

中找到它

另请参阅以下可能感兴趣的专栏:

PLSQL_ENTRY_OBJECT_ID
PLSQL_ENTRY_SUBPROGRAM_ID
PLSQL_OBJECT_ID
PLSQL_SUBPROGRAM_ID

您可以在这里阅读更多内容:

https://docs.oracle.com/cd/B28359_01/server.111/b28320/dynviews_3016.htm