1.  --查看表锁    

SELECT * FROM SYS.V_$SQLAREA WHERE DISK_READS > 100;

2.  --监控事例的等待    

SELECT EVENT,

SUM(DECODE(WAIT_TIME, 0, 0, 1)) "Prev",

SUM(DECODE(WAIT_TIME, 0, 1, 0)) "Curr",

COUNT(*) "Tot"

FROM V$SESSION_WAIT

GROUP BY EVENT

ORDER BY 4;

3.  --回滚段的争用情况   

SELECT NAME, WAITS, GETS, WAITS / GETS "Ratio"

FROM V$ROLLSTAT A, V$ROLLNAME B

WHERE A.USN = B.USN;

4.  --查看前台正在发出的SQL语句  

SELECT USER_NAME, SQL_TEXT   

FROM V$OPEN_CURSOR   

WHERE SID IN (SELECT SID

FROM (SELECT SID, SERIAL#, USERNAME, PROGRAM   

FROM V$SESSION   

WHERE STATUS = 'ACTIVE'));

5.  --数据表占用空间大小情况   

SELECT SEGMENT_NAME, TABLESPACE_NAME, BYTES, BLOCKS

FROM USER_SEGMENTS

WHERE SEGMENT_TYPE = 'TABLE'

ORDER BY BYTES DESC, BLOCKS DESC;

6.  --查看表空间碎片大小   

SELECT TABLESPACE_NAME,

ROUND(SQRT(MAX(BLOCKS) / SUM(BLOCKS)) *

(100 / SQRT(SQRT(COUNT(BLOCKS)))),

2) FSFI

FROM DBA_FREE_SPACE

GROUP BY TABLESPACE_NAME

ORDER BY 1;

7.  --查看表空间占用磁盘情况   

SELECT B.FILE_ID 文件ID号,

B.TABLESPACE_NAME 表空间名,

B.BYTES 字节数,

(B.BYTES - SUM(NVL(A.BYTES, 0))) 已使用,

SUM(NVL(A.BYTES, 0)) 剩余空间,

SUM(NVL(A.BYTES, 0)) / (B.BYTES) * 100 剩余百分比

FROM DBA_FREE_SPACE A, DBA_DATA_FILES B

WHERE A.FILE_ID = B.FILE_ID

GROUP BY B.TABLESPACE_NAME, B.FILE_ID, B.BYTES

ORDER BY B.FILE_ID;

8.  --查看session使用回滚段  

SELECT R.NAME 回滚段名,

S.SID,

S.SERIAL#,

S.USERNAME 用户名,

T.STATUS,

T.CR_GET,

T.PHY_IO,

T.USED_UBLK,

T.NOUNDO,

SUBSTR(S.PROGRAM, 1, 78) 操作程序

FROM SYS.V_$SESSION S, SYS.V_$TRANSACTION T, SYS.V_$ROLLNAME R

WHERE T.ADDR = S.TADDR

AND T.XIDUSN = R.USN

ORDER BY T.CR_GET, T.PHY_IO;

9.  --查看SGA区剩余可用内存   

SELECT NAME,

      SGASIZE / 1024 / 1024        "Allocated(M)",

      BYTES / 1024            "**空间(K)",

      ROUND(BYTES / SGASIZE * 100, 2)    "**空间百分比(%)"   

FROM (SELECT SUM(BYTES) SGASIZE FROM SYS.V_$SGASTAT) S,

SYS.V_$SGASTAT F   

WHERE F.NAME = 'free memory';

10.  --监控表空间I/O比例  

SELECT DF.TABLESPACE_NAME NAME,

DF.FILE_NAME       "file",

F.PHYRDS           PYR,

F.PHYBLKRD         PBR,

F.PHYWRTS          PYW,

F.PHYBLKWRT        PBW

FROM V$FILESTAT F, DBA_DATA_FILES DF

WHERE F.FILE# = DF.FILE_ID

ORDER BY DF.TABLESPACE_NAME;

11.  --监控SGA命中率 

SELECT A.VALUE + B.VALUE "logical_reads",

C.VALUE "phys_reads",

ROUND(100 * ((A.VALUE + B.VALUE) - C.VALUE) / (A.VALUE + B.VALUE)) "BUFFER HIT RATIO"

FROM V$SYSSTAT A, V$SYSSTAT B, V$SYSSTAT C

WHERE A.STATISTIC# = 38

AND B.STATISTIC# = 39

AND C.STATISTIC# = 40;

12.  --监控 SGA 中字典缓冲区的命中率 

SELECT PARAMETER,

GETS,

GETMISSES,

GETMISSES / (GETS + GETMISSES) * 100 "miss ratio",

(1 - (SUM(GETMISSES) / (SUM(GETS) + SUM(GETMISSES)))) * 100 "Hit ratio"

FROM V$ROWCACHE

WHERE GETS + GETMISSES <> 0

GROUP BY PARAMETER, GETS, GETMISSES;

13.  --监控 SGA **享缓存区的命中率,应该小于1% 

SELECT SUM(PINS) "Total Pins",

SUM(RELOADS) "Total Reloads",

SUM(RELOADS) / SUM(PINS) * 100 LIBCACHE

FROM V$LIBRARYCACHE;

14.  --监控 SGA 中重做日志缓存区的命中率,应该小于1%   

SELECT NAME,

GETS,

MISSES,

IMMEDIATE_GETS,

IMMEDIATE_MISSES,

DECODE(GETS, 0, 0, MISSES / GETS * 100) RATIO1,

DECODE(IMMEDIATE_GETS + IMMEDIATE_MISSES,

0,

0,

IMMEDIATE_MISSES / (IMMEDIATE_GETS + IMMEDIATE_MISSES) * 100) RATIO2

FROM V$LATCH

WHERE NAME IN ('redo allocation', 'redo copy');

15.  --监控内存和硬盘的排序比率,最好使它小于 .10 

SELECT NAME, VALUE

FROM V$SYSSTAT

WHERE NAME IN ('sorts (memory)', 'sorts (disk)');

16.  --监控字典缓冲区 

SELECT SUM(GETS) "DICTIONARY GETS",

SUM(GETMISSES) "DICTIONARY CACHE GET MISSES"

FROM V$ROWCACHE;

17.  --非系统用户建在SYSTEM表空间中的表   

SELECT OWNER, TABLE_NAME

FROM DBA_TABLES

WHERE TABLESPACE_NAME IN ('SYSTEM', 'USER_DATA')

AND OWNER NOT IN

('SYSTEM', 'SYS', 'OUTLN', 'ORDSYS', 'MDSYS', 'SCOTT', 'HOSTEAC');

18.  --性能最差的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 < 100;

--用下列SQL 工具找出低效SQL : 

SELECT EXECUTIONS,

DISK_READS,

BUFFER_GETS,

ROUND((BUFFER_GETS - DISK_READS) / BUFFER_GETS, 2) HIT_RADIO,

ROUND(DISK_READS / EXECUTIONS, 2) READS_PER_RUN,

SQL_TEXT

FROM V$SQLAREA

WHERE EXECUTIONS > 0

AND BUFFER_GETS > 0

AND (BUFFER_GETS - DISK_READS) / BUFFER_GETS < 0.8

ORDER BY 4 DESC;

19.  --读磁盘数超100次的sql   

SELECT * FROM SYS.V_$SQLAREA WHERE DISK_READS > 100;

20.  --最频繁执行的sql 

SELECT * FROM SYS.V_$SQLAREA WHERE EXECUTIONS > 100;

21.  --查询使用CPU多的用户session   

SELECT A.SID,

SPID,

STATUS,

SUBSTR(A.PROGRAM, 1, 40) PROG,

A.TERMINAL,

OSUSER,

VALUE / 60 / 100 VALUE

FROM V$SESSION A, V$PROCESS B, V$SESSTAT C

WHERE C.STATISTIC# = 12

AND C.SID = A.SID

AND A.PADDR = B.ADDR

ORDER BY VALUE DESC;

22.  --当前每个会话使用的对象数  

SELECT A.SID, S.TERMINAL, S.PROGRAM, COUNT(A.SID)

FROM V$ACCESS A, V$SESSION S

WHERE A.OWNER <> 'SYS'

AND S.SID = A.SID

GROUP BY A.SID, S.TERMINAL, S.PROGRAM

ORDER BY COUNT(A.SID);

Oracle 常用性能监控SQL语句的更多相关文章

  1. Oracle种常用性能监控SQL语句

    --Oracle常用性能监控SQL语句 --1 SELECT * FROM SYS.V_$SQLAREA WHERE DISK_READS > 100; --2 监控事例的等待 SELECT E ...

  2. ORACLE常用性能监控SQL【一】

    目录(?)[+] 系列 ORACLE常用性能监控SQL[一] ORACLE常用性能监控SQL[二] Oracle-动态性能视图解读 系列 死锁后的解决办法 生成Kill Session语句 查看导致死 ...

  3. ORACLE常用性能监控SQL(二)

    查询Oracle正在执行的sql语句及执行该语句的用户 SELECT b.sid oracleID, b.username 登录Oracle用户名, b.serial#, spid 操作系统ID, p ...

  4. ORACLE常用性能监控SQL

    Temp表空间上进程的查询 select a.tablespace, b.sid, b.serial#, a.blocks,c.sql_text from v$sort_usage a,v$sessi ...

  5. Oracle常用性能监控语句解析

    转:http://www.cnblogs.com/preftest/archive/2010/11/14/1876856.html 1.监控等待事件select event,sum(decode(wa ...

  6. oracle常用运维sql语句

    1.查询dblink语句 col owner for a20col db_link for a30col username for a20col host for a30set linesize 12 ...

  7. Oracle常用函数(SQL语句)

    使用sql函数,您可以在一个select语句的查询当中,直接计算数据库资料的平均值.总数.最小值.最大值.总和.标准差.变异数等统计.使用recordset对象时,也可使用这些sql函数. sql函数 ...

  8. Oracle 常用修改字段SQL语句

    1. 更新字段名称 alter table table_name rename column column_old to column_new; 2. 添加字段 ); 3. 删除字段 alter ta ...

  9. DBA 需要知道N种对数据库性能的监控SQL语句

    --DBA 需要知道N种对数据库性能的监控SQL语句 -- IO问题的SQL内部分析 下面的DMV查询可以来检查当前所有的等待累积值. Select wait_type, waiting_tasks_ ...

随机推荐

  1. Core Data 更新某条指定记录数据

    一:流程 同样需要先查询出指定记录 更新指定记录 二:代码: //更新操作 - (void)updateThePersonData { NSFetchRequest *fetchRequest = [ ...

  2. 算法笔记_059:蓝桥杯练习 Anagrams问题(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的.例如,“Unclea ...

  3. ionic 进入二级目录以后隐藏底部导航栏(tabs)

    1.在标签ion-tabs中添加:ng-class=”{‘tabs-item-hide’: $root.hideTabs}”,源码如下: <ion-tabs class="tabs-i ...

  4. stderr和stdout详细解说(转)

    今天又查了一下fprintf,其中对第一个参数stderr特别感兴趣. int fprintf(FILE *stream,char *format,[argument]): 在此之前先区分一下:pri ...

  5. 【Python】学习笔记四:数学运算

    python中的加减乘除比其他的语言简单,不需要对其赋值变量 加减乘除 ) #加法 ) #减法 ) #乘法 ) #除法 5.0 ) #乘方 判断 判断返回的是True或者False ) #等于 Tru ...

  6. JavaScript入门:002—JS代码放置的位置

    JavaScript在页面中使用,那么这些JS代码应该放在什么位置呢?以下来看一下. 一般来说有两种方式.写在界面上和使用.js文件.1.1界面上的Head部分能够直接放在head标签内,例如以下代码 ...

  7. Latex排版:CTeX winEdit 输出“系统找不到指定的文件”的解决办法)

    winEdit输出“系统找不到指定的文件”,这里“指定的文件”是“TeXify.exe”等需要运行的程序,而不是当前需要编译的“.tex”文件.所以,问题的本质就是系统找不到“TeXify.exe”等 ...

  8. 实现对数据进行分组小计并计算合计的实例 asp.net

    可以通过数据绑定来实现  通过union all 来实现数据库 SELECT * FROM v3_pay_list2 where ( (ought_date >= '2012-12-06') a ...

  9. 使用AsParallel 进行并行化处理数据

    using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using S ...

  10. 阻塞IO、非阻塞IO的区别

    1.类与类之间的关系:依赖,实现,泛化(继承),关联,组合,聚合. 1)依赖(虚线):一个类是 另一个类的函数参数 或者 函数返回值. 2)实现(实线加小圆):对纯虚函数类(抽象类)的实现. 3)继承 ...