ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 10G--如何为v$session中的client_identifier列附值

10G--如何为v$session中的client_identifier列附值

原创 Linux操作系统 作者:vongates 时间:2019-07-17 21:48:01 0 删除 编辑
我们都知道在10G中v$session这个视图新增了很多列,本文中公对列client_identifier做一个简单的说明。在性能调整对应用做跟踪的时候这个列对我们应用dbms_monitor这个包是比较有用的。通常我们查看在v$session中client_identifier的值都为空,我们可以通过一个数据库级别触发器来为此列附值。当然我们还会用到dbms_session这个系统包及sys_context函数,附上trigger的代码如下:

CREATE OR REPLACE TRIGGER logon_trigger
AFTER LOGON ON DATABASE
DECLARE
uid VARCHAR2(64);
BEGIN
SELECT ora_login_user || ':' || SYS_CONTEXT('USERENV', 'OS_USER')
INTO uid
FROM dual;
dbms_session.set_identifier(uid);
END logon_trigger;

SELECT sid, client_identifier, service_name
FROM v_$session;
SQL>

SID CLIENT_IDENTIFIER SERVICE_NAME
---------- ------------------------- --------------------
38 SYS:fengc ORASTM
41 SCOTT:fengc ORASTM
43 SYS$USERS

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

请登录后发表评论 登录
全部评论

注册时间:2018-09-11

  • 博文量
    449
  • 访问量
    292652