原文链接:TDPUB数加社区
1. 设置标识
1.1 设置服务标识
由连接选项控制,暂时没有找到set service方法
1.2 设置模块标识
begin
dbms_application_info.set_module('module_test','select');
end;
复制
1.3 设置客户端标识
begin
DBMS_SESSION.set_identifier('client_identifier_test');
dbms_application_info.set_client_info(client_info => 'client_test');
end;
复制
select s.client_identifier,s.client_info,s.module,s.service_name,s.action from v$session s where s.sid=userenv('sid')
CLIENT_IDENTIFIER CLIENT_INFO MODULE SERVICE_NAME ACTION
client_identifier_test client_test module_test PROD_PRIMARY_01 select
复制
2. 为标识开启跟踪
开启跟踪
1) dbms_monitor.client_id_trace_enable
2) dbms_monitor.session_trace_enable
3) dbms_monitor.serv_mod_act_trace_enable
开启统计信息收集
1) dbms_monitor.client_id_stat_enable
2) v$sesstat--会话状态信息不需要自动开启,直接可以查询
3) dbms_monitor.serv_mod_act_stat_enable
2.1
begin
dbms_monitor.client_id_trace_enable(client_id => 'client_identifier_test');
end;
复制
开启client资源消耗统计
begin
dbms_monitor.client_id_stat_enable(client_id => 'client_identifier_test');
end;
select * from v$client_stats;--开启之后就能查到对应的值
复制
begin
dbms_monitor.serv_mod_act_stat_enable(service_name => 'PROD_PRIMARY_01',module_name => 'test02');
end;
select * from v$serv_mod_act_stats s ;--如果查不到值,需要在sqlplus开启
复制
测试client跟踪
语法:
begin
DBMS_SESSION.set_identifier('client_identifier_test');
end;
复制
可以多开启几个窗口,分别测试
比如我新开窗口,执行下面语句
窗口1
{
begin
DBMS_SESSION.set_identifier('client_identifier_test');
end;
select * from cux_test1
}
复制
窗口2
{
begin
DBMS_SESSION.set_identifier('client_identifier_test');
end;
select * from cux_test2
}
复制
{
dbms_monitor.session_trace_enable;--开启会话级别跟踪,保证生成trace文件,但未设置client标识符
select * from cux_test3
}
复制
trcsess output=/tmp/client_identifier_test_trace.trc clientid='client_identifier_test' usr/local/oracle19c/diag/rdbms/prod_primary/DUPDB/trace/*.trc
复制
/usr/local/oracle19c/diag/rdbms/prod_primary/DUPDB/trace替换成自己的trace文件所在路径
/*******************/
复制
2.2
开启module跟踪
语法:
begin
dbms_monitor.serv_mod_act_trace_enable(service_name => 'PROD_PRIMARY_01',module_name => 'module_test');
end;
复制
同样按2.1一样,开启多个窗口测试
窗口1
{
begin
dbms_application_info.set_module('module_test',action_name =>'select test1');
end;
select * from cux_test1
}
复制
窗口2
{
begin
dbms_application_info.set_module('module_test',action_name =>'select test2');
end;
select * from cux_test2
}
复制
{
begin
dbms_application_info.set_module('module_others',action_name =>'select test3');
end;
select * from cux_test3
}
复制
trcsess output=/tmp/client_identifier_test_trace.trc service='PROD_PRIMARY_01' module='module_test'
/usr/local/oracle19c/diag/rdbms/prod_primary/DUPDB/trace/*.trc
/usr/local/oracle19c/diag/rdbms/prod_primary/DUPDB/trace替换成自己的trace文件所在路径
/*******************/
复制
trcsess 语法:
trcsess [output=<output file name >] [session=<session ID>] [clientid=<clientid>]
[service=<service name>] [action=<action name>] [module=<module name>] <trace file names>
output=<output file name> output destination default being standard output.
session=<session Id> session to be traced.
Session id is a combination of session Index & session serial number e.g. 8.13.
clientid=<clientid> clientid to be traced.
service=<service name> service to be traced.
action=<action name> action to be traced.
module=<module name> module to be traced.
<trace_file_names> Space separated list of trace files with wild card '*' supported.
复制
更多Oracle课程内容 可添加下方老师获取
文章转载自云贝教育,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
MogDB 发布更新,解决 openGauss 数据库在长事务情况下Ustore表膨胀问题
MogDB
286次阅读
2025-04-17 10:41:41
Oracle数据库常用脚本(八)
hongg
58次阅读
2025-04-02 09:09:23
【干货】磐维数据库-磐维删除分区数据测试
磐维数据库
48次阅读
2025-04-24 19:53:42
MySQL数据库“干货”来袭!41个常用脚本,速来领取
青年数据库学习互助会
48次阅读
2025-03-31 10:03:01
PLSQL编程
芃芃
46次阅读
2025-03-29 21:17:38
Oracle函数
芃芃
43次阅读
2025-03-28 18:37:13
Oracle数据库常用脚本(六)
lh11811
42次阅读
2025-03-31 09:40:05
MySQL数据库常用的41个脚本,速来下载!
小周的数据库进阶之路
41次阅读
2025-04-14 09:40:54
数据库SQL优化大总结之 百万级数据库优化方案
听溪
41次阅读
2025-04-01 20:55:52
达梦数据库常用的61个脚本,速来下载!
青年数据库学习互助会
36次阅读
2025-04-16 10:33:52