`
xiangxingchina
  • 浏览: 524439 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

监控Oracle性能的SQL

阅读更多

1. 监控事例的等待
    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. 回滚段的争用情况
    select name, waits, gets, waits/gets "Ratio"
    from v$rollstat a, v$rollname b
    where a.usn = b.usn;
3 监控表空间的 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;
4. 监控文件系统的 I/O 比例
    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.在某个用户下找所有的索引
    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 的命中率
    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 中字典缓冲区的命中率
    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%
    select sum(pins) "Total Pins", sum(reloads) "Total Reloads",
    sum(reloads)/sum(pins) *100 libcache
    from v$librarycache;

    select sum(pinhits-reloads)/sum(pins) "hit radio",sum(reloads)/sum(pins) "reload percent"
    from v$librarycache;
9. 显示所有数据库对象的类别和大小
    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%
    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
    SELECT name, value FROM v$sysstat WHERE name IN ('sorts (memory)', 'sorts (disk)');
12. 监控当前数据库谁在运行什么SQL语句
    SELECT osuser, username, sql_text from v$session a, v$sqltext b
    where a.sql_address =b.address order by address, piece;
13. 监控字典缓冲区
    SELECT (SUM(PINS - RELOADS)) / SUM(PINS) "LIB CACHE" FROM V$LIBRARYCACHE;
    SELECT (SUM(GETS - GETMISSES - USAGE - FIXED)) / SUM(GETS) "ROW CACHE" FROM V$ROWCACHE;
    SELECT SUM(PINS) "EXECUTIONS", SUM(RELOADS) "CACHE MISSES WHILE EXECUTING" FROM V$LIBRARYCACHE;
后者除以前者,此比率小于1%,接近0%为好。
    SELECT SUM(GETS) "DICTIONARY GETS",SUM(GETMISSES) "DICTIONARY CACHE GET MISSES"
    FROM V$ROWCACHE
14. 找ORACLE字符集
    select * from sys.props$ where name='NLS_CHARACTERSET';
15. 监控 MTS
    select busy/(busy+idle) "shared servers busy" from v$dispatcher;
此值大于0.5时,参数需加大
    select sum(wait)/sum(totalq) "dispatcher waits" from v$queue where type='dispatcher';
    select count(*) from v$dispatcher;
    select servers_highwater from v$mts;
servers_highwater接近mts_max_servers时,参数需加大
16. 碎片程度
    select tablespace_name,count(tablespace_name) from dba_free_space group by tablespace_name
    having count(tablespace_name)>;10;

    alter tablespace name coalesce;
    alter table name deallocate unused;

    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;

    select tablespace_name,sum(bytes),max(bytes),count(block_id) from dba_free_space
    group by tablespace_name;
查看碎片程度高的表
    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. 表、索引的存储情况检查
    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;

    select segment_name,count(*) from dba_extents where segment_type='INDEX' and owner='&owner'
    group by segment_name;
18、找使用CPU多的用户session
    12是cpu used by this 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;

分享到:
评论

相关推荐

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

    Oracle性能监控SQL——监控当前会话...这些SQL语句可以帮助我们监控Oracle数据库的性能,从而优化数据库的性能。但是,这些SQL语句只是Oracle性能监控的一部分,实际操作中还需要结合实际情况来选择合适的监控策略。

    ORACLE-SQL性能优化大全.pdf

    ### ORACLE-SQL性能优化大全知识点详述 #### 一、优化基础知识概述 - **性能管理**: - **尽早开始**:性能优化应该在项目的早期就开始考虑,而不是等到后期出现性能瓶颈时才去处理。 - **设立合适目标**:设定...

    压测Oracle的SQL语句的性能情况

    标题"压测Oracle的SQL语句的性能情况"暗示了我们关注的是在高负载情况下,Oracle数据库处理SQL查询的能力。压力测试(Pressure Testing)是一种评估系统在极端工作条件下表现的方法,通过模拟大量并发用户执行SQL...

    Oracle的SQL监视工具SQLTracker

    这款工具在Oracle数据库环境中扮演着重要角色,它可以帮助用户实时监控SQL语句的执行情况,识别性能瓶颈,从而提高系统的整体效率。 在描述中提到,SQLTracker可以在Windows 11操作系统上直接运行,这意味着它可能...

    oracle性能监控

    Oracle性能监控是数据库管理系统中一个至关重要的环节,它有助于确保系统的高效运行,及时发现并解决潜在问题。在本文中,我们将深入探讨Oracle性能监控的一种工具——Quest公司的SPOTLIGHT ON ORACLE,它是一款专为...

    Oracle 慢SQL监控测试及脚本实现

    在Oracle数据库环境中,慢SQL查询是影响系统性能的关键因素,因此对其进行监控和分析至关重要。本文将详细介绍如何在Oracle中进行慢SQL监控,并提供一个实际的脚本来实现这一过程。 首先,我们通过数据准备来模拟一...

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

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

    Oracle高性能SQL调整

    Oracle高性能SQL调整是一个至关重要的主题,特别是在大数据量和复杂业务场景下的数据库管理中。Oracle数据库以其强大功能和高效性能著称,但同时也需要精细的优化才能发挥最佳效能。本篇文章将深入探讨SQL调优的关键...

    Oracle数据库sql语句 跟踪器

    Oracle数据库SQL语句跟踪器,通常被称为SQL Monitor,是一种强大的工具,用于监控和分析数据库中的SQL语句执行情况。在Oracle环境中,理解SQL语句的行为是优化数据库性能的关键。SQL Monitor提供实时视图,帮助DBA...

    oracle高性能sql调整

    "Oracle高性能SQL调整"这一主题深入探讨了如何通过各种技术手段提升SQL语句的执行效率,从而提高Oracle数据库的整体性能。下面我们将详细阐述一些关键的知识点: 1. **SQL执行计划**:理解SQL执行计划是优化SQL的...

    oracle sqlserver 监控

    从会话状态和等待事件的角度,了解数据库的运行情况,供DBA和... 等待事件是基于“事实”和“数据”的,而非“推测”,结合Oracle AWR、ASH(Sqlserver DMV、Windows计数器),我们可以把性能分析变为可能的方法论。

    Oracle 高性能SQL优化

    Oracle数据库的高性能SQL优化是数据库管理员和开发人员关注的关键领域,因为它直接影响到系统的响应时间和整体性能。Oracle性能管理是一个持续的过程,包括主动和被动两个方面。主动性能管理强调在系统设计和开发...

    《Oracle高性能SQL调整》PDF

    《Oracle高性能SQL调整》这本书是Oracle数据库管理员和开发人员的重要参考资料,它深入探讨了如何优化SQL查询以获得最佳性能。在Oracle数据库系统中,SQL性能是决定应用响应速度和整体系统效率的关键因素。本书旨在...

    Oracle高性能SQL调整.rar

    《Oracle高性能SQL调整》这本书主要聚焦于如何优化Oracle数据库中的SQL查询,以提升系统的整体性能。在Oracle数据库环境中,SQL的高效执行是确保系统稳定、快速运行的关键因素。以下是一些核心的知识点: 1. **SQL...

    Oracle高性能SQL调整.pdf 下载

    尽管给定的部分内容并未提供关于"Oracle高性能SQL调整"的具体信息,但从标题和描述中,我们可以推断出文档主要关注的是如何在Oracle数据库环境中优化SQL查询的性能。Oracle数据库是业界领先的关系型数据库管理系统之...

    ORACLE_SQLDeveloper使用教程

    - Oracle Database Home Page 提供了监控工具,用于查看数据库的实时性能指标。 - 这些工具对于优化数据库性能非常有用。 #### 二、在 Oracle 中使用 SQL*Plus **如何在 Oracle 中使用 SQL*Plus** 1. **安装 ...

    SQLMonitor.rar 监控oracle sql

    "SQLMonitor.rar" 提供了一种解决方案,专为监控Oracle SQL查询而设计,这对于优化数据库性能、排查错误以及确保系统稳定运行是极其有用的。在这个压缩包中,我们主要关注的是如何利用SQLMonitor工具来提升对Oracle ...

    ORACLE_SQL性能优化(全).ppt

    【Oracle SQL性能优化】 Oracle SQL性能优化是数据库开发人员必须掌握的关键技能,它涉及到SQL语句的编写、执行过程、优化器的选择以及执行计划的分析等多个方面。在Oracle数据库环境中,优化SQL性能对于提升系统...

    Oracle高性能SQL调整.pdf

    《Oracle高性能SQL调整》这本书是针对Oracle数据库性能优化的一个重要指南,主要聚焦在SQL查询的高效执行上。在Oracle数据库管理中,SQL调优是一项关键技能,它涉及到数据库的性能优化、资源利用率最大化以及系统...

Global site tag (gtag.js) - Google Analytics