sql turning

一些收集SQL的语句:)

[@more@]

1.查找前十条性能差的sql

SELECT *
FROM (SELECT parsing_user_id executions,
sorts,
command_type,
disk_reads,
sql_text
FROM v$sqlarea
ORDER BY disk_reads DESC)
WHERE rownum <
10;

2.捕捉运行很久的SQL

SELECT username,
sid,
opname,
round(sofar *
100 / totalwork, 0) || '%' AS progress,
time_remaining,
sql_text
FROM v$session_longops, v$sql
WHERE time_remaining <>
0 AND sql_address = address AND
sql_hash_value = hash_value;

3.耗资源的进程(top session)

SELECT s.schemaname schema_name,
decode(sign(
48 - command),
1,
to_char(command),
'Action Code #' || to_char(command)) action,
status session_status,
s.osuser os_user_name,
s.sid,
p.spid,
s.serial# serial_num,
nvl(s.username,
'[Oracle process]') user_name,
s.terminal terminal,
s.program program,
st.VALUE criteria_value
FROM v$sesstat st, v$session s, v$process p
WHERE st.sid = s.sid AND st.statistic# = to_number(
'38') AND
(
'ALL' = 'ALL' OR s.status = 'ALL') AND p.addr = s.paddr
ORDER BY st.VALUE DESC, p.spid ASC, s.username ASC, s.osuser ASC;

4 表信息收集

收集整个schema下所有对象的统计信息。

begin

dbms_stats.gather_schema_stats(

ownname => 'SCOTT',

estimate_percent => dbms_stats.auto_sample_size,

method_opt => 'for all columns size skewonly',

degree => 4

);

end;

或者使用:

analyze table scott.test_key compute statistics;

不过这种方法oracle建议不要再用而使用下面的方法

exec dbms_stats.GATHER_DATABASE_STATS( cascade => TRUE);

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9925929/viewspace-916083/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9925929/viewspace-916083/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值