您的位置:首页 > 数据库 > Oracle

一些查看性能的查询语句

2012-12-02 00:04 281 查看
--CPU使用率
SELECT BEGIN_TIME,
END_TIME           INTSIZE,
NUM_INTERVAL,
MINVAL,
MAXVAL,
AVERAGE,
STANDARD_DEVIATION SD
FROM   DBA_HIST_SYSMETRIC_SUMMARY
WHERE  METRIC_ID = 2075
ORDER  BY BEGIN_TIME DESC;

--可以查看的统计信息
SELECT * FROM V$STATNAME;
--相关统计信息的值
SELECT * FROM V$SYSSTAT A WHERE A.STATISTIC# = 19;
--AWR(Automatic Workload Repository)的体系结构之后有如下系统表做支撑
--属于SYS用户但是放在SYSAUX表空间
SELECT * FROM sys.Wri$_Alert_History;
SYS.WRI$_;    (INTERNAL)
SYS.WRM$_;    (META_DATA)
SYS.WRH$_;    (HISTORY)
SELECT * FROM sys.Wrm$_Snapshot;
--AWR的数据由MMON进程每小时收集一次
SELECT * FROM V$BGPROCESS;
SELECT * FROM DBA_HIST_WR_CONTROL;
--oracle内存命中率
SELECT A.SNAP_ID,
B.BEGIN_INTERVAL_TIME,
B.END_INTERVAL_TIME,
(A.DB_BLOCK_GETS + A.CONSISTENT_GETS) /
(A.DB_BLOCK_GETS + A.CONSISTENT_GETS + A.PHYSICAL_READS) * 100 内存的命中率
FROM   DBA_HIST_BUFFER_POOL_STAT A
LEFT   JOIN DBA_HIST_SNAPSHOT B ON A.SNAP_ID = B.SNAP_ID
ORDER  BY A.SNAP_ID;
--快照
SELECT * FROM DBA_HIST_SNAPSHOT;
--收集表的统计信息
ANALYZE TABLE TABLENAME COMPUTE STATISTICS FOR TABLE FOR ALL INDEXES FOR ALL COLUMNS;
--查看执行时间比较长的SQL
SELECT B.SQL_TEXT,
(A.LAST_UPDATE_TIME - A.START_TIME) * 24 * 60 "total_time(s)",
A.*
FROM   V$SESSION_LONGOPS A
LEFT   JOIN V$SQLAREA B ON A.SQL_ADDRESS = B.ADDRESS
WHERE  A.SID = '131'
ORDER  BY A.START_TIME DESC;
--SQL完成比率
SELECT SID,
OPNAME,
TARGET_DESC,
SOFAR,
TOTALWORK,
TRUNC(SOFAR / TOTALWORK * 100, 2) || '%' AS PERWORK
FROM   V$SESSION_LONGOPS
WHERE  SOFAR != TOTALWORK;
--调整滥用磁盘读操作的主要语句
--我发现在没有作调整的情况下,在绝大多数的系统中,访问量占前25位的语句的磁盘读操作将占用整个系统所有磁盘和/或内存读操作的75%。
SELECT DISK_READS, A.*
FROM   V$SQLAREA A
ORDER  BY A.DISK_READS DESC;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ORACLE 数据库