2016-07-28 48 views
0

我使用Oracle企业管理器来监视我的数据库上的当前负载。如果有高负载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企业管理器相同的信息?

回答

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