Oracle 效能優化求生指南 學習筆記1

2021-08-11 20:32:54 字數 2947 閱讀 4963

一、跟蹤 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 使用更好的庫 熟...