查找bad sql的方法
来源:互联网 发布:美工设计岗位认知 编辑:程序博客网 时间:2024/05/12 04:07
查找bad sql的方法
查找运行系统里bad sql是一个古老的话题, 我们要根据自己的实际情况来分析。
绝不能教条的运用下面介绍的这些方法。
使用这些SQL语句时,会对系统表产生分组操作,当然也增大了系统的负载。
建议大家在系统启动了一段时间后,在半夜负载较轻的时间定时(例如:一个月)来查一查。一定要具体问题具体分析。
下面是我收藏的一些查找bad sql的方法:
column sql_text format a80;
-- 值得怀疑的SQL 来自http://www.ixora.com.au/
select
substr(to_char(s.pct, '99.00'), 2) '%' load,
s.executions executes,
p.sql_text
from
(
select
address,
disk_reads,
executions,
pct,
rank() over (order by disk_reads desc) ranking
from
(
select
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
/
-- 逻辑读多的SQL
select * from (select buffer_gets, sql_text
from v$sqlarea
where buffer_gets > 500000
order by buffer_gets desc) where rownum<=30;
-- 执行次数多的SQL
select sql_text,executions from
(select sql_text,executions from v$sqlarea order by executions desc)
where rownum<81;
-- 读硬盘多的SQL
select sql_text,disk_reads from
(select sql_text,disk_reads from v$sqlarea order by disk_reads desc)
where rownum<21;
-- 排序多的SQL
select sql_text,sorts from
(select sql_text,sorts from v$sqlarea order by sorts desc)
where rownum<21;
--分析的次数太多,执行的次数太少,要用绑变量的方法来写sql
set pagesize 600;
set linesize 120;
select substr(sql_text,1,80) "sql", count(*), sum(executions) "totexecs"
from v$sqlarea
where executions < 5
group by substr(sql_text,1,80)
having count(*) > 30
order by 2;
-- 游标的观察
set pages 300;
select sum(a.value), b.name
from v$sesstat a, v$statname b
where a.statistic# = b.statistic#
and b.name = 'opened cursors current'
group by b.name;
select count(0) from v$open_cursor;
select user_name,sql_text,count(0) from v$open_cursor
group by user_name,sql_text having count(0)>30;
--查看当前用户&username执行的SQL
select sql_text from v$sqltext_with_newlines where (hash_value,address) in
(select sql_hash_value,sql_address from v$session where username='&username')
order by address,piece;
- 查找bad sql的方法
- 查找bad sql的方法
- 查找bad sql的方法
- oracle中查找bad sql的方法
- 查找oracle数据库系统里的bad sql语句的方法
- xcode crash 查找EXC BAD ACCESS问题根源的方法
- 查找低劣的SQL方法
- 查找低劣的SQL方法
- 查找低劣的SQL方法
- 查找MySQL中查询慢的SQL语句的方法
- PostgreSQL之查找最慢的SQL 的方法
- First Bad Version(二分查找的应用)
- 关于sql数据库维护失败的问题查找方法
- 教你查找运行系统里低劣的SQL方法
- 关于sql数据库维护失败的问题查找方法
- 查找全表扫描比较严重的SQL方法1
- First Bad Version 二分查找
- mybatis bad sql grammar
- 自己动手做博客之日志管理-5.4 管理评论
- GESTURETEK(动作捕捉)
- 转载:张瑞敏倾力进军地产之谜
- 自己动手做博客之日志管理-5.5 修改密码
- 我安装 Visual Studio.NET的时候老提示“安装程序检测到另一上程序要求计算机重新启动”
- 查找bad sql的方法
- 基站定义
- 如何获取worldwind最新代码
- jdbc学习
- Everyday Study-------The C programming language
- nagios,ndoutils简要安装步骤及分布式监控环境的建立
- C#优化字符串操作
- 用JSP在IE中打开本地的.doc/.xls/.pdf并浏览
- 摩托罗拉收购索爱UIQ部门50%股份