查找运行系统里bad sql是一个古老的话题, 我们要根据自己的实际情况来分析。
绝不能教条的运用下面介绍的这些方法。
使用这些SQL语句时,会对系统表产生分组操作,当然也增大了系统的负载。
建议大家在系统启动了一段时间后,在半夜负载较轻的时间定时(例如:一个月)来查一查。一定要具体问题具体分析。
下面是我收藏的一些查找bad sql的方法:
column sql_text format a80.
-- 值得怀疑的SQL 来自http://www.ixora.com.au/
0select
substr(to_char(s.pct, 99.00 ), 2) || % load,
s.executions executes,
p.sql_text
from
(
0select
address,
disk_reads,
executions,
pct,
rank() over (order by disk_reads desc) ranking
from
(
0select
address,
disk_reads,
executions,
100 * ratio_to_report(disk_reads) over () pct
from
sys.v_$sql
where
command_type != 47
)
where
disk_reads > 50 * executions
) s,
sys.v_$sqltext p
where
s.ranking <= 5 and
p.address = s.address
order by
1, s.address, p.piece
/
相关文章
处理CLOB字段的动态PL_SQL
查找badsql的方法
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛