`

oracle数据库性能监控的常用的SQL

阅读更多
oracle数据库性能监控的SQL
1. 监控事例的等待
SQL> 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;

2. 回滚段的争用情况
SQL> SELECT NAME, WAITS, GETS, WAITS/GETS "RATIO" FROM V$ROLLSTAT A, V$ROLLNAME B WHERE A.USN = B.USN;

3. 监控表空间的 I/O 比例
SQL> 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;

4. 监控文件系统的 I/O 比例
SQL> SELECT SUBSTR(A.FILE#,1,2) "#", SUBSTR(A.NAME,1,30) "NAME",
A.STATUS,A.BYTES,B.PHYRDS,B.PHYWRTS FROM V$DATAFILE A, V$FILESTAT B
WHERE A.FILE# = B.FILE#;

5.在某个用户下找所有的索引
SQL> SELECT USER_INDEXES.TABLE_NAME, USER_INDEXES.INDEX_NAME,UNIQUENESS, COLUMN_NAME FROM USER_IND_COLUMNS, USER_INDEXES WHERE USER_IND_COLUMNS.INDEX_NAME = USER_INDEXES.INDEX_NAME
AND USER_IND_COLUMNS.TABLE_NAME = USER_INDEXES.TABLE_NAME
ORDER BY USER_INDEXES.TABLE_TYPE, USER_INDEXES.TABLE_NAME,
USER_INDEXES.INDEX_NAME, COLUMN_POSITION;

6. 监控 SGA 的命中率
SQL> 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;

7. 监控 SGA 中字典缓冲区的命中率
SQL> 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;

8. 监控 SGA 中共享缓存区的命中率,应该小于1%
SQL> SELECT SUM(PINS) "TOTAL PINS", SUM(RELOADS) "TOTAL RELOADS",
SUM(RELOADS)/SUM(PINS) *100 LIBCACHE FROM V$LIBRARYCACHE;

SQL> SELECT SUM(PINHITS-RELOADS)/SUM(PINS) "HIT RADIO",SUM(RELOADS)/SUM(PINS) "RELOAD PERCENT" FROM V$LIBRARYCACHE;

9. 显示所有数据库对象的类别和大小
SQL> SELECT COUNT(NAME) NUM_INSTANCES ,TYPE ,SUM(SOURCE_SIZE) SOURCE_SIZE,SUM(PARSED_SIZE) PARSED_SIZE ,SUM(CODE_SIZE) CODE_SIZE ,SUM(ERROR_SIZE) ERROR_SIZE,SUM(SOURCE_SIZE) +SUM(PARSED_SIZE) +SUM(CODE_SIZE) +SUM(ERROR_SIZE) SIZE_REQUIRED FROM DBA_OBJECT_SIZE GROUP BY TYPE ORDER BY 2;

10. 监控 SGA 中重做日志缓存区的命中率,应该小于1%
SQL> 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');

11.  监控内存和硬盘的排序比率,最好使它小于 .10,增加 sort_area_size
SQL> SELECT NAME, VALUE FROM V$SYSSTAT WHERE NAME IN ('SORTS (MEMORY)', 'SORTS (DISK)');

12. 监控当前数据库谁在运行什么SQL语句
SQL> SELECT OSUSER, USERNAME, SQL_TEXT FROM V$SESSION A, V$SQLTEXT B
WHERE A.SQL_ADDRESS =B.ADDRESS ORDER BY ADDRESS, PIECE;

13. 监控字典缓冲区
SQL>SELECT (SUM(PINS - RELOADS)) / SUM(PINS) "LIB CACHE" FROM V$LIBRARYCACHE;
SQL>SELECT (SUM(GETS - GETMISSES - USAGE - FIXED)) / SUM(GETS) "ROW CACHE" FROM V$ROWCACHE;
SQL>SELECT SUM(PINS) "EXECUTIONS", SUM(RELOADS) "CACHE MISSES WHILE EXECUTING" FROM V$LIBRARYCACHE;(后者除以前者,此比率小于1%,接近0%为好)
SQL>SELECT SUM(GETS) "DICTIONARY GETS",SUM(GETMISSES) "DICTIONARY CACHE GET MISSES" FROM V$ROWCACHE;

14. 查找ORACLE字符集
SQL>SELECT * FROM SYS.PROPS$ WHERE NAME='NLS_CHARACTERSET';

15. 监控 MTS
SQL>SELECT BUSY/(BUSY+IDLE) "SHARED SERVERS BUSY" FROM V$DISPATCHER;
(此值大于0.5时,参数需加大)
SQL>SELECT SUM(WAIT)/SUM(TOTALQ) "DISPATCHER WAITS" FROM V$QUEUE WHERE TYPE='DISPATCHER';
SQL>SELECT COUNT(*) FROM V$DISPATCHER;
SQL>SELECT SERVERS_HIGHWATER FROM V$MTS;
(servers_highwater接近mts_max_servers时,参数需加大)

16. 碎片程度
SQL>SELECT TABLESPACE_NAME,COUNT(TABLESPACE_NAME) FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME HAVING COUNT(TABLESPACE_NAME)>10;
SQL>ALTER TABLESPACE NAME COALESCE;
SQL>ALTER TABLE NAME DEALLOCATE UNUSED;
SQL>CREATE OR REPLACE VIEW TS_BLOCKS_V AS
SELECT TABLESPACE_NAME,BLOCK_ID,BYTES,BLOCKS,'FREE SPACE' SEGMENT_NAME FROM DBA_FREE_SPACE
    UNION ALL
SELECT TABLESPACE_NAME,BLOCK_ID,BYTES,BLOCKS,SEGMENT_NAME FROM DBA_EXTENTS;

SELECT * FROM TS_BLOCKS_V;

SQL>SELECT TABLESPACE_NAME,SUM(BYTES),MAX(BYTES),COUNT(BLOCK_ID) FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME;

查看碎片程度高的表
SQL>SELECT SEGMENT_NAME TABLE_NAME,COUNT(*) EXTENTS
FROM DBA_SEGMENTS WHERE OWNER NOT IN ('SYS', 'SYSTEM') GROUP BY SEGMENT_NAME HAVING COUNT(*)=(SELECT MAX(COUNT(*)) FROM DBA_SEGMENTS GROUP BY SEGMENT_NAME);

17. 表、索引的存储情况检查
SQL>SELECT SEGMENT_NAME,SUM(BYTES),COUNT(*) EXT_QUAN FROM DBA_EXTENTS WHERE TABLESPACE_NAME='&TABLESPACE_NAME' AND SEGMENT_TYPE='TABLE' GROUP BY TABLESPACE_NAME,SEGMENT_NAME;

SQL>SELECT SEGMENT_NAME,COUNT(*) FROM DBA_EXTENTS WHERE SEGMENT_TYPE='INDEX' AND OWNER='&OWNER' GROUP BY SEGMENT_NAME;

18、找使用CPU多的用户session
SQL>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;


查看占io较大的正在运行的session:
SELECT SE.SID,SE.SERIAL#,PR.SPID,SE.USERNAME,SE.STATUS,SE.TERMINAL,SE.PROGRAM, SE.MODULE,SE.SQL_ADDRESS,ST.EVENT,ST.P1TEXT,SI.PHYSICAL_READS,SI.BLOCK_CHANGES FROM V$SESSION SE,V$SESSION_WAIT ST,V$SESS_IO SI,V$PROCESS PR WHERE ST.SID=SE.SID AND ST.SID=SI.SID AND SE.PADDR=PR.ADDR AND SE.SID>6 AND ST.WAIT_TIME=0 AND ST.EVENT NOT LIKE '%SQL%' ORDER BY PHYSICAL_READS DESC;

查找前十条性能差的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<10;
分享到:
评论

相关推荐

    数据库性能监控数据库性能监控.ppt

    Oracle数据库性能监控的重要性在于它可以帮助数据库管理员和开发者快速地identify数据库性能瓶颈,进行优化和调整,以提高Oracle数据库的整体性能和可扩展性。 在本节中,我们将介绍 Oracle 数据库性能监控的相关...

    常用Oracle监控数据库性能的SQL

    本文将深入探讨Oracle监控数据库性能的一些常用SQL语句,以及它们如何帮助我们理解数据库的工作状态。 首先,`V$视图`是Oracle提供的一种内置的性能数据源,通过查询这些视图,我们可以获取到丰富的性能信息。例如...

    oracle数据库性能优化.pdf

    总的来说,Oracle数据库性能优化是一个全面的过程,涵盖硬件配置、软件设置、SQL优化、存储策略等多个方面。需要根据系统负载、业务需求以及资源状况进行综合分析,持续监控和调整,以实现最优的数据库运行状态。...

    oracle性能监控sql 监控当前会话 执行的sql及io等信息

    本文将介绍一些常用的Oracle性能监控SQL,用于监控当前会话执行的SQL及IO等信息。 一、监控SGA内存分配信息 Oracle数据库的SGA(System Global Area)是数据库的内存缓冲区,用于存储数据库的数据和索引。监控SGA...

    Oracle数据库性能优化 盖国强著

    综上所述,盖国强的《Oracle数据库性能优化》涵盖了从SQL优化、索引管理、架构设计到内存管理、资源调度、性能监控等多个方面,是一本全面了解和实践Oracle数据库性能优化的宝贵资源。通过深入学习和实践书中的内容...

    Oracle数据库性能优化实践指南

    《Oracle数据库性能优化实践指南》是一本专注于提升Oracle数据库运行效率的专业资料,旨在帮助数据库管理员和IT专业人士解决在日常工作中遇到的各种性能问题。通过深入理解Oracle数据库的工作原理和调优技术,读者...

    利用SQL语句实现数据库性能监控.pdf

    根据提供的文件内容,以下是对数据库性能监控使用SQL语句的知识点的详细解析: 数据库性能监控的重要性: 数据库是构建在信息技术系统上的核心组件,尤其在气象信息系统中,数据库的稳定性和性能直接影响着整个系统...

    Oracle数据库性能优化.pdf

    Oracle数据库性能优化是确保数据库高效运行的关键环节,尤其是在处理大量数据和高并发访问的环境中。Oracle作为业界领先的数据库管理系统,其性能优化策略涵盖多个层面,包括系统配置、数据库设计、SQL语句优化、...

    oracle数据库性能优化 合集 中文

    本合集包含了11个文档,全面涵盖了Oracle数据库性能优化的各种方面,旨在帮助IT专业人士提升数据库运行效率,降低系统瓶颈,确保业务连续性和用户体验。 1. **SQL优化**:SQL查询是数据库操作的核心,优化SQL语句...

    Oracle 数据库性能优化与运维最佳实践

    "Oracle数据库性能优化与运维最佳实践"的主题涵盖了如何确保Oracle数据库高效、稳定运行的关键技术和策略。 首先,性能优化涉及多个层面,包括SQL查询优化、存储结构优化、索引设计以及数据库参数调整。SQL查询优化...

    oracle数据库性能调优和监控

    总之,Oracle数据库性能调优和监控是一个复杂而细致的过程,需要结合硬件资源、数据库配置、SQL语句优化等多个维度进行综合考虑。通过持续监控和适时调整,可以确保数据库系统稳定高效地运行,为业务提供强有力的...

    oracle数据库连接工具

    8. **实时监控**:监控Oracle数据库的性能,例如查看会话、等待事件和数据库状态,以便优化数据库性能。 9. **提醒和计划任务**:可以设置提醒和定时任务,例如定期运行SQL脚本、数据备份等。 10. **版本控制**:...

    《Oracle数据库性能优化实践指南》PDF

    《Oracle数据库性能优化实践指南》是一本专注于Oracle数据库性能调优的专业书籍,旨在帮助读者深入理解和掌握如何在实际环境中提升Oracle数据库的运行效率。Oracle数据库是全球广泛使用的大型企业级数据库管理系统,...

    基于Oracle数据库性能优化及监控研究.pdf

    本文主要探讨了Oracle数据库性能的评价指标,分析了影响性能的主要因素,并提出了优化和监控的方法。 首先,Oracle数据库性能的评价指标包括以下几个方面: 1. **数据库吞吐量**:衡量数据库在单位时间内处理SQL...

    OraGlance一个轻量级Oracle性能监控工具

    一键即运行的图形化Oracle数据库性能监控软件 无需安装、部署,不占用服务器资源 支持从Oracle 11.2.0.1开始的所有版本 支持Oracle RAC 非植入式,对Oracle只读,不在数据库内创建任何对象 资源占用极低,内存...

    3篇Oracle数据库性能优化的论文

    综合这三篇论文,我们可以预期学习到Oracle数据库性能优化的多方面知识,包括但不限于性能监控、SQL优化、安全性配置以及物理设计等。理解并应用这些知识,可以帮助数据库管理员和开发人员提升Oracle数据库的运行...

    ORACLE数据库设计与优化

    六、数据库性能监控与调优 1. 使用Oracle Enterprise Manager (OEM):进行实时性能监控,识别性能瓶颈。 2. 分析与调整执行计划:通过EXPLAIN PLAN分析SQL执行路径,使用ALTER SYSTEM或ALTER SESSION改变执行计划。 ...

    Oracle数据库监控、性能检查小工具(OPCT)

    5.数据库使用 6.表空间使用情况 7.临时文件信息 8.临时文件使用情况 9.表死锁情况 10.锁表数量 11.长时间使用的SQL语句 12.事例的等待 13.回滚段的争用情况 14.表空间I/O比例 15.文件系统I/O比例 16.用户下所有索引 ...

    基于Oracle数据库优化性能监控系统的设计与实现.pdf

    综上所述,这个Oracle数据库性能监控系统的核心目标是通过实时监控、性能分析和优化建议,确保数据库的高效运行。它结合了Oracle数据库的特性、J2EE的分布式架构能力以及JFreeChart的可视化功能,提供了一个全面的...

Global site tag (gtag.js) - Google Analytics