分享
 
 
 

在PL/SQL中使DBMS_APPLICATION_INFO

王朝mssql·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

DBMS_APPLICATION_INFO 可以设置SESSION的MODULE,ACTION,CLIENT INFO等状态信息,对应着v$session表中的3个字段,方便了SQL TRACE和

跟踪定位出问题的程序。

可以在PL/SQL块,事务,批处理程序中调用该包,建议在存储过程中调用。如果直接将DBMS_APPLICATION_INFO编码到代码中,会引起不必要的

network trip.

DBMS_APPLICATION_INFO 可以设置SESSION的MODULE,ACTION,CLIENT INFO等状态信息,对应着v$session表中的3个字段,方便了SQL TRACE和

跟踪定位出问题的程序。

可以在PL/SQL块,事务,批处理程序中调用该包,建议在存储过程中调用。如果直接将DBMS_APPLICATION_INFO编码到代码中,会引起不必要的

network trip.

多中方式获取SESSION信息

SQL select username,program,module,action,client_info from v$session where sid=

(select sid from v$mystat where rownum=1);

SQL select userenv('client_info') from dual;

也会在跟踪文件中显示SESSION的MODULE和ACTION信息

*** 2004-11-19 15:30:34.958

*** ACTION NAME:(get count from t) 2004-11-19 15:30:34.928

*** MODULE NAME:(Test) 2004-11-19 15:30:34.928

*** SERVICE NAME:(SYS$USERS) 2004-11-19 15:30:34.928

*** SESSION ID:(155.23) 2004-11-19 15:30:34.908

同时在v$sqlarea 也记录了执行SQL时候的MODULE,ACTION信息

SQL select

SQL_TEXT from v$sqlarea where MODULE='Test';

SQL_TEXT

--------------------------------------------------------------------------------

select count(*) from t

SELECT p1.value||''||p2.value||'_ora_'||p.spid filename

FROM

v$proc

ess p,

v$session s,

v$parameter p1,

v$parameter p2

W

HERE p1.name = 'user_dump_dest'

AND p2.name = 'db_name'

AND p.addr = s.p

addr

AND s.audsid = USERENV ('SESSIONID')

alter session set sql_trace=true

alter session set sql_trace=false

BEGIN dbms_application_info.set_client_info('Testget count from t'); END;

下面是TOM使用set_client_info优化SQL函数调用的程序

ops$tkyte@ORA920 create or replace function myinstr( s1 in varchar2, s2 in

varchar,

2

n1 in number default null, n2 in number

default null) return number

3

is

4

begin

5

dbms_application_info.set_client_info(userenv('client_info')+1);

6

return instr(s1,s2,n1,n2);

7

end;

8

/

Function created.

ops$tkyte@ORA920 drop table t;

Table dropped.

ops$tkyte@ORA920 create table t ( x varchar2(15) );

Table created.

ops$tkyte@ORA920 insert into t values ( '1.1.1.1' );

1 row created.

ops$tkyte@ORA920 exec dbms_application_info.set_client_info(0);

PL/SQL procedure successfully completed.

ops$tkyte@ORA920 select substr(x, 1, d1-1) x1,

2

substr(x, d1+1, d2-d1-1) x2,

3

substr(x, d2+1, d3-d2-1) x3,

4

substr(x, d3+1) x4

5

from

6

(select x,

7

myinstr(x,'.',1,1) d1,

8

myinstr(x,'.',1,2) d2,

9

myinstr(x,'.',1,3) d3

10

from t);

X1

X2

X3

X4

--------------- --------------- --------------- ---------------

1

1

1

1

ops$tkyte@ORA920 select userenv('client_info') from dual;

USERENV('CLIENT_INFO')

----------------------------------------------------------------

8

ops$tkyte@ORA920

ops$tkyte@ORA920 exec dbms_application_info.set_client_info(0);

PL/SQL procedure successfully completed.

ops$tkyte@ORA920 select x,

2

substr( x, 1, myinstr(x,'.')-1 ) x1,

3

substr( x, myinstr(x,'.')+1, myinstr(x,'.',1,2)-myinstr(x,'.')-1 ) x2,

4

substr( x, myinstr(x,'.',1,2)+1, myinstr(x,'.',1,3)-myinstr(x,'.',1,2)-1

) x3,

5

substr( x, myinstr(x,'.',1,3)+1 ) x4

6

from t

7

/

X

X1

X2

X3

X4

--------------- --------------- --------------- --------------- ---------------

1.1.1.1

1

1

ops$tkyte@ORA920 select userenv('client_info') from dual;

USERENV('CLIENT_INFO')

----------------------------------------------------------------

6

set_client_info对SESSION来说 是很好的全局变量。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有