DBMS_APPLICATION_INFO.SET_MODULE を使えば、v$sessionのmodule,actionに対して自由に値を設定する事ができるのでパフォーマンスチューニングの際何かと重宝します。v$sessionだけでなくv$sqlにも保持しているのでSQL抽出という面でもありがたいです。ストアドプロシージャを作成する場合処理の頭でこれを設定しておけば、ストアドプロシージャから発行されているSQLを簡単に抽出する事ができるので、開発ルールに含めておくとよいと思います。AWRレポートが利用できる環境であればさらにそのありがたみを感じるとおもいます。(高負荷SDQL_IDとともにmodule名が表示されます)
設定例
exec DBMS_APPLICATION_INFO.SET_MODULE ('sooni_module','logging') ;
確認例 sys_context ()での確認
select sys_context('userenv','MODULE') MODULE, sys_context('userenv','ACTION') ACTION from dual ;
v$sessionからの抽出例
select s.SID,s.SERIAL#,s.SQL_ID from v$session s where s.MODULE='sooni_module' ;
v$sqlからの抽出例
select q.SQL_ID,q.MODULE,q.ACTION, substr(q.SQL_TEXT,1,40) sql_text from v$sql q where q.MODULE='sooni_module' ;
SQL> set sqlformat ansiconsole on
SQL> exec DBMS_APPLICATION_INFO.SET_MODULE ('sooni_module','logging')
PL/SQLプロシージャが正常に完了しました。
SQL> select sys_context('userenv','MODULE') MODULE, sys_context('userenv','ACTION') ACTION from dual;
MODULE ACTION
_______________ __________
sooni_module logging
SQL> select s.SID,s.SERIAL#,s.SQL_ID from v$session s where s.MODULE='sooni_module';
SID SERIAL# SQL_ID
________ __________ ________________
on257 on58524 dn69y7nnpkqf4
SQL> select q.SQL_ID,q.MODULE,q.ACTION, substr(q.SQL_TEXT,1,40) sql_text from v$sql q where q.MODULE='sooni_module';
SQL_ID MODULE ACTION SQL_TEXT
________________ _______________ __________ ___________________________________________
9h5vf8mn701wp sooni_module logging select q.SQL_ID,q.MODULE,q.ACTION,substr
bkfrfuwras4tg sooni_module logging select table_owner, table_name from all
bkfrfuwras4tg sooni_module logging select table_owner, table_name from all
cpnzbx07cs4xk sooni_module logging select s.SID,s.SERIAL#,s.SQL_ID from v$s
7c8x1m7304hy1 sooni_module logging SELECT A.* FROM V$SESSION A
czavq3wtw8k01 sooni_module logging select q.SQL_ID,q.MODULE,q.ACTION,substr