11g查看性能慢sql的一个方法
2015-06-08 19:41
281 查看
select *
from (select a.sid,
a.sql_id,
a.status,
a.cpu_time / 1000000,
a.buffer_gets,
a.DISK_READS,
b.SQL_TEXT
from v$sql_monitor a, v$sql b
where a.SQL_ID = b.SQL_ID
order by a.CPU_TIME desc)
where rownum <= 20;
v$sql是实时统计数据,可以定位消耗资源的sql
select a.USERNAME,
a.OPNAME,
b.SQL_TEXT,
to_char(a.START_TIME, 'DD-MON-YY HH24:MI'),
a.ELAPSED_SECONDS,
a.TIME_REMAINING,
a.SOFAR,
round(a.SOFAR / a.TOTALWORK * 100, 2)
from v$session_longops a, v$sql b
where a.SQL_ADDRESS = b.ADDRESS
and a.SQL_HASH_VALUE = b.HASH_VALUE
and a.SOFAR <> a.TOTALWORK
and a.TOTALWORK != 0;
查看消耗cpu的操作系统进程
ps -e -o pcpu,pid,user,tty,args|sort -n -k 1 -r |head
from (select a.sid,
a.sql_id,
a.status,
a.cpu_time / 1000000,
a.buffer_gets,
a.DISK_READS,
b.SQL_TEXT
from v$sql_monitor a, v$sql b
where a.SQL_ID = b.SQL_ID
order by a.CPU_TIME desc)
where rownum <= 20;
v$sql是实时统计数据,可以定位消耗资源的sql
select a.USERNAME,
a.OPNAME,
b.SQL_TEXT,
to_char(a.START_TIME, 'DD-MON-YY HH24:MI'),
a.ELAPSED_SECONDS,
a.TIME_REMAINING,
a.SOFAR,
round(a.SOFAR / a.TOTALWORK * 100, 2)
from v$session_longops a, v$sql b
where a.SQL_ADDRESS = b.ADDRESS
and a.SQL_HASH_VALUE = b.HASH_VALUE
and a.SOFAR <> a.TOTALWORK
and a.TOTALWORK != 0;
查看消耗cpu的操作系统进程
ps -e -o pcpu,pid,user,tty,args|sort -n -k 1 -r |head
相关文章推荐
- Greenplum 数据库安装部署(生产环境)
- 如何阅读 Redis 源码?
- Mysql安装常见问题
- redhat6.3下安装ORACLE11.2.3RAC
- 数据库分页查询SQL语句
- SQL Server 启动时发生错误1069:由于登录失败而无法启动
- (DBA之路【一】)mysql 基本架构
- SQL注入的原理解说,挺好!
- Mysql 监控工具 – mytop
- 解决Windows x64bit环境下无法使用PLSQL Developer连接到Oracle DB中的问题
- mysql 优化 实现命中率100%
- django查询数据库要点
- 关于用 MySQL 存储 Emoji
- Oracle11g重建 em
- 10 quick tips for Redis
- 10 quick tips for Redis
- 10 quick tips for Redis
- 解决Mysql占用cpu,内存高故障案例
- MYSQL 函数复习
- Redis 起步