ITPub博客

首页 > 数据库 > Oracle > 使用DBMS_APPLICATION_INFO.SET_CLIENT_INFO来定位当前session所在的程序模块

使用DBMS_APPLICATION_INFO.SET_CLIENT_INFO来定位当前session所在的程序模块

Oracle 作者:swq618 时间:2016-10-24 13:21:28 0 删除 编辑
问题提出:
在B/S系统中,页面纷繁复杂,而且经过系统长时间运行,如果发现某个session的wait比较严重,进行sql优化时,很难知道这个sql是用在程序的哪个模块,很多时候只能根据开发人员的经验来定位这个sql,或者打开程序代码,搜索。这样的效率很低,这里介绍一个方法来快速定位发生问题的sql的位置。[@more@]

ORACLE提供了DBMS_APPLICATION_INFO包,其中提供了set_client_info、set_module、set_action、read_module、read_client_info、set_session_longops几个过程,其中分别用于设置客户端信息、设置module信息(这里同时必须设置一个action信息)、设置action信息、读取module信息(同时也会得到action信息)、读取client_info信息和手动设置一个会话为longops。
下面来看一个示例:
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.2.0
Connected as SYS

SQL> select distinct sid from v$mystat;

SID
----------
1036

SQL> select module,action,client_info from v$session where sid=1036;

MODULE ACTION CLIENT_INFO
------------------------------------------------ -------------------------------- ----------------------------------------------------------------
PL/SQL Developer Command Window - New
可以看到CLIENT_INFO为空。
SQL> exec dbms_application_info.set_client_info('test client info');

PL/SQL procedure successfully completed

SQL> select module,action,client_info from v$session where sid=1036;

MODULE ACTION CLIENT_INFO
------------------------------------------------ -------------------------------- ----------------------------------------------------------------
PL/SQL Developer Command Window - New test client info

设置后的CLIENT_INFO
SQL> exec dbms_application_info.set_module(module_name => 'test module',action_name => 'test action');

PL/SQL procedure successfully completed

SQL> select module,action,client_info from v$session where sid=1036;

MODULE ACTION CLIENT_INFO
------------------------------------------------ -------------------------------- ----------------------------------------------------------------
test module test action test client info

设置后的MODULE和ACTION

详细的解释请参考oracle的说明,在oracle的package的说明中就有详细的解释。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29674916/viewspace-2126986/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: AIX topas命令详解
请登录后发表评论 登录
全部评论

注册时间:2014-05-24

  • 博文量
    108
  • 访问量
    289819