一、跟蹤 oracle 的執行
主要由兩部分組成
1. sql 跟蹤 在當前會話或其他會話中啟動跟蹤
2. tkprof 工具 格式化跟蹤檔案得到比較容易理解的方式
sql 跟蹤的方法
1). 在應用**中發出一條指令
2). 發出一條指令來跟蹤其他會話
3). 呼叫 dbma_session 包來指定應該自動跟蹤的會話
4). 根據個人需要建立登陸觸發器(logon trigger)來進行跟蹤
在當前會話中跟蹤
alter session set sql_trace=true;
此條語句建立基本的跟蹤,包含sql語句的執行統計資訊和執行計畫
要獲得更高階的跟蹤(繫結變數的值,各種事件的等待花費時間),可以使用 dbms_session 包
dbms_session.session_trace_enable(
waits in boolean default true
binds in boolean default true
plan_stat in varchar2 default null – 11g only never,first_execution,all_execution
);begin
dbms_session.session_trace_enable(
true, false, 『all_executions』
); end;
/識別跟蹤檔案
為會話知道你給乙個跟蹤檔案識別符號。
alter session set tracefile_identifier=guy;
這樣當我們檢視跟蹤檔案的目錄是,就可以通過字尾的guy來識別此跟蹤檔案。
獲取跟蹤狀態
在 vses
sion
表中,列
sqlt
race
,sql
trac
ewai
ts,s
qltr
aceb
inds
展示了一
個會話的
跟蹤狀態
。在v process 表中,列 traceid, tracefile(只對 oracle 11g 適用)展示了跟蹤檔案的名稱。其中的 tracefile_identifier 對給定的伺服器程序有效
select s.sql_trace, s.sql_trace_waits, s.sql_trace_binds, p.traceid, p.tracefile from vse
ssio
nsjo
inv process p on (p.addr = s.paddr)
where audsid = userenv(『sessionid』);
在其他會話中呼叫跟蹤
dbms_monitor.session_trace_enable (
session_id in binary_integer default null,
serial_num in binary_integer default null,
watis in boolean default true,
binds in boolean default false,
plan_stat in varchar2 default null –11g only );
下面的例程為每乙個 sqlplus 會話開啟了乙個包含繫結變數資訊的基本跟蹤
begin
for row in (select sid, serial# from v$session where lower(program) like 『%sqlplus%』)
loop
dbms_monitor.session_trace_enable (
row.sid, row.serial#, false, true
); end loop;
end;
此方法可以匹配特定服務,模組,動作以及例項識別符號(rac集群特有)的會話啟動跟蹤
dbms_monitor.serv_mod_act_trace_enable (
service_name
module_name
action_name
watis
binds
instance_name
plan_stat
);6.使用登陸觸發器來啟用跟蹤
當使用者『credit』 登陸時,會為使用者登入的所有會話設定乙個適當的tracefile——identifier並啟動跟蹤。
create or replace trigger trace_login_trigger
after logon on database
begin
if user = 『credit』
then
execute immediate 『alter session set tracefile_identifier=credit』;
dbms_session.session_trace_enable(true, false, 'all_executions');
end if;
end;
7.定位跟蹤檔案
跟蹤檔案會被寫到由oracle配置引數 user_dump_dest 定義的位置。
select value from v$parameter where name = 『user_dump_dest』;
跟蹤檔案的名字為:sid_procid_pid[_traceid].trc
通過確定檔案時間戳和檔名稱來確定跟蹤檔案,
或者執行 select 『catherines trace file』 from dual, 接著就在跟蹤檔案中搜尋字串 『catherines trace file』。
Oracle資料庫效能優化指南
oracle資料庫效能優化指南 資料庫優化的討論是乙個永恆的主題,每年的資料庫技術大會 優化 專場往往都是人氣最旺的,這說明dba工作中都離不開它。資料庫優化是個系統工程涵蓋諸多方面 網路 伺服器硬體配置 作業系統配置 架構設計 應用設計 sql語句優化等等。實際上對大多說dba來說網路 硬體等往往...
jQuery效能優化指南
這個話題也是老生常談的了,jquery倒是沒少用,卻很少考慮它的效能!隨著cpu的嗷嗷上揚,覺得應該好好考慮這個問題!最近讀到e文 jquery performance rules 拿來跟大家分享,粗略的翻譯了一下!1 always descend from an id 總是從id選擇器開始繼承 2...
C 效能優化指南
1 用好的編譯器並用好編譯器 支援c 11的編譯器,intelc 速度最快 gnu的c 編譯器gcc g 非常符合標準 visual c 效能折中 clang 最年輕mac os x 2 使用更好的演算法。3 使用更好的資料結構 不同的資料結構在使用記憶體管理器的方式也有所不同 4 使用更好的庫 熟...