>  기사  >  데이터 베이스  >  Oracle 性能相关常用脚本(SQL)

Oracle 性能相关常用脚本(SQL)

WBOY
WBOY원래의
2016-06-07 17:28:44937검색

在缺乏的可视化工具来监控数据库性能的情形下,常用的脚本就派上用场了,下面提供几个关于Oracle性能相关的脚本供大家参考。以下

在缺乏的可视化工具来监控数据库性能的情形下,常用的脚本就派上用场了,下面提供几个关于Oracle性能相关的脚本供大家参考。以下脚本均在Oracle 10g测试通过,,Oracle 11g可能要做相应调整。

1、寻找最多BUFFER_GETS开销的SQL 语句

--filename: top_sql_by_buffer_gets.sql
--Identify heavy SQL (Get the SQL with heavy BUFFER_GETS)
SET LINESIZE 190
COL sql_text FORMAT a100 WRAP
SET PAGESIZE 100

SELECT *
  FROM (  SELECT sql_text,
                sql_id,
                executions,
                disk_reads,
                buffer_gets
            FROM v$sqlarea
          WHERE DECODE (executions, 0, buffer_gets, buffer_gets / executions) >
                    (SELECT AVG (DECODE (executions, 0, buffer_gets, buffer_gets / executions))
                            + STDDEV (DECODE (executions, 0, buffer_gets, buffer_gets / executions))
                      FROM v$sqlarea)
                AND parsing_user_id != 3D
        ORDER BY 4 DESC) x
 WHERE ROWNUM

2、寻找最多DISK_READS开销的SQL 语句

--filename:top_sql_disk_reads.sql
--Identify heavy SQL (Get the SQL with heavy DISK_READS)
SET LINESIZE 190
COL sql_text FORMAT a100 WRAP
SET PAGESIZE 100

SELECT *
  FROM (  SELECT sql_text,
                sql_id,
                executions,
                disk_reads,
                buffer_gets
            FROM v$sqlarea
          WHERE DECODE (executions, 0, disk_reads, disk_reads / executions) >
                    (SELECT AVG (DECODE (executions, 0, disk_reads, disk_reads / executions))
                            + STDDEV (DECODE (executions, 0, disk_reads, disk_reads / executions))
                      FROM v$sqlarea)
                AND parsing_user_id != 3D
        ORDER BY 3 DESC) x
 WHERE ROWNUM

linux

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.