DBMS_APPLICATION_INFO包可与Trace和SQL跟踪工具一起使用,以记录数据库中正在执行的模块或事务的名称,以便后续跟踪模块的性能以及调试使用。
应用程序允许系统管理员和性能调整专家按模块跟踪性能。系统管理员还可以使用此信息来跟踪模块的资源使用情况。
PolarDB提供了以下几种DBMS_APPLICATION_INFO子程序供您使用。
- READ_CLIENT_INFO:读取当前会话中client_info字段的值。
- READ_MODULE:读取当前会话中模块和操作字段的值。
- SET_ACTION:设置当前模块中当前动作的名称。
- SET_CLIENT_INFO:设置会话的client_info字段。
- SET_MODULE:将当前正在运行的模块的名称设置为新模块。
READ_CLIENT_INFO
语法
DBMS_APPLICATION_INFO.READ_CLIENT_INFO (
client_info OUT VARCHAR2);
参数
参数 | 描述 |
---|---|
client_info | 当前会话提供给SET_CLIENT_INFO存储过程的最后一个客户信息。 |
READ_MODULE
语法
DBMS_APPLICATION_INFO.READ_MODULE (
module_name OUT VARCHAR2,
action_name OUT VARCHAR2);
参数
参数 | 描述 |
---|---|
module_name | 当前会话通过调用SET_MODULE将模块名称设置为最后一个值。 |
action_name | 当前会话通过调用SET_MODULE或SET_ACTION将模块名称设置为最后一个值。 |
SET_ACTION
语法
DBMS_APPLICATION_INFO.SET_ACTION (
action_name IN VARCHAR2);
参数
参数 | 描述 |
---|---|
action_name | 当前模块中当前操作的名称。当前操作终止时,如果有下一个操作,则使用下一个操作的名称调用此存储过程。否则,调用NULL。
说明 操作名称长度超过64个字节将被截断。
|
SET_CLIENT_INFO
语法
DBMS_APPLICATION_INFO.SET_CLIENT_INFO (
client_info IN VARCHAR2);
参数
参数 | 描述 |
---|---|
client_info | 提供有关客户端应用程序的任何其他信息。 |
SET_MODULE
语法
DBMS_APPLICATION_INFO.SET_MODULE (
module_name IN VARCHAR2,
action_name IN VARCHAR2);
参数
参数 | 描述 |
---|---|
module_name | 当前正在运行的模块的名称。 当前模块终止时,如果有新模块,则以新模块的名称调用此存储过程。否则,调用NULL。
说明 模块名称长度超过64个字节将被截断。
|
action_name | 当前模块中当前操作的名称。 如果您不想指定操作,将值设置为NULL。
说明 操作名称长度超过64个字节将被截断。
|
示例
select pid,client_info,module,action from polar_get_app_info;
exec dbms_application_info.set_client_info('client2');
exec dbms_application_info.set_module('module2','action');
exec dbms_application_info.set_action('action2');
select pid,client_info,module,action from polar_get_app_info;
DECLARE
_clinent TEXT;
_mod_name TEXT;
_act_name TEXT;
BEGIN
dbms_application_info.read_client_info(_clinent);
dbms_application_info.read_module(_mod_name,_act_name);
raise notice 'client_info is : "%", module value is "%", action value is "%"', _clinent, _mod_name, _act_name;
END;