解答
1.修改kortrac.ctl 文件,这个文件缺省放在 $ITMHOME/misc 下面,将语句 ;;trace_all 前的‘;;’去掉,保存。
2.修改or.ini文件,这个文件缺省放在install_directory>/config/ 下面,将KBB_RAS1的语句改成
KBB_RAS1=ERROR (UNIT:kor ALL)(UNIT:kra ALL)
3.重新启动ORACLE AGENT 服务
./itmcmd agent stop or
./itmcmd agent start or
4. 经过几个取样周期后,从CANDLEHOME>/logs/<hostname>_or_<ORACLE_SID>_col.out的LOG中可以看到以下内容:
ORU0095I (171927) <SELECT d.ctime BLKTRANS, b.username, c.sid,
substr(c.owner||'.'||c.object, 1, length(c.owner||'.'||c.object)),
b.lockwait, a.sql_text FROM v$sqltext a, v$session b, v$access c,
v$lock d WHERE a.address = b.sql_address AND a.hash_value =
b.sql_hash_value AND b.sid = c.sid AND c.sid = d.sid AND
c.owner != 'SYS' AND b.lockwait = d.kaddr >
ORU0085I (171927) --------------------------------------------------
CIR5005I (172356) Received interupt (15). Quitting.
GGN1505S (172407) Time = 2007/07/20 17:24:07, Collector ended
。
这需要修改kortrac.ctl中游标STATLTRN的内容,原来内容为
;-------------------------------------
;;- Blocked Transactions Longest Time --
;;-------------------------------------
cursor STATLTRN;
demand;
empty;
conditional_dummy_last_row;
insert_select
SELECT d.ctime BLKTRANS,
b.username, c.sid,
substr(c.owner||'.'||c.object, 1,
length(c.owner||'.'||c.object)),
b.lockwait, a.sql_text
FROM v$sqltext a,
v$session b,
v$access c,
v$lock d
WHERE a.address = b.sql_address
AND a.hash_value = b.sql_hash_value
AND b.sid = c.sid
AND c.sid = d.sid
AND c.owner != 'SYS'
AND b.lockwait = d.kaddr
;
INSERT INTO STATLTRN
(BLKTRANS)
VALUES
(:BLKTRANS);
--------------------------------
将其改为
;;-------------------------------------
;;- Blocked Transactions Longest Time --
;;-------------------------------------
cursor STATLTRN;
demand;
empty;
conditional_dummy_last_row;
insert_select
SELECT 0 BLKTRANS from DUAL
;
INSERT INTO STATLTRN
(BLKTRANS)
VALUES
(:BLKTRANS);
。
再次启动ORACLE AGENT后,性能可得到较大提高。
|