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;