Oracle性能监控脚本
2011-09-05      0 个评论      
收藏    我要投稿

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) space,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;    1. 检测数据库中的事件和等待        SELECT event, total_waits, total_timeouts,time_waited, average_wait        FROM v$system_event 2. 查询会话中的事件和等待时间        select sid, event, total_waits,average_wait        from v$session_event where sid=10;     3. 查询等待进程        SELECT sid, seq#, event, wait_time, state        FROM v$session_wait; 4. 监控全局区的性能        select * from v$sgastat; 5. 查询命中率        select gethitratio        from v$librarycache        where namespace = 'SQL AREA'; 6. 当前 sql 语句        select sql_text, users_executing,        executions, loads        from v$sqlarea; 7. 查询高速缓存中的命中率        select sum(pins) "Executions", sum(reloads) "Cache Misses",        sum(reloads)/sum(pins)        from v$librarycache; 8. 查询全局字典中的有效装载次数        select namespace,pins,reloads,invalidations        from v$librarycache; 9. 回滚段的争用情况

select name, waits, gets, waits/gets "Ratio"     from v$rollstat a, v$rollname b     where a.usn = b.usn; 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. 监控文件系统的 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#; 12. 在某个用户下找所有的索引     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; 13. 监控 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; 14. 监控 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; 15. 显示所有数据库对象的类别和大小     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; 16. 监控 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'); 17. 监控内存和硬盘的排序比率,最好使它小于 .10 ,增加 sort_area_size SELECT name, value FROM v$sysstat WHERE name IN ('sorts (memory)', 'sorts (disk)'); 18. 监控字典缓冲区

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 19. 找 ORACLE 字符集    select * from sys.props$ where name='NLS_CHARACTERSET'; 20. 监控 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 时,参数需加大 21. 碎片程度    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); 22. 表、索引的存储情况检查     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; 23 、找使用 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;

作者“anyonefeng”

转载于:https://www.cnblogs.com/HuiLove/p/5310416.html

Oracle性能监控脚本相关推荐

  1. Oracle性能监控脚本(sql)

    1. 监控事例的等待 select event,sum(decode(wait_Time,0,0,1)) "Prev",  sum(decode(wait_Time,0,1,0)) ...

  2. Oracle性能监控常用命令

    Oracle性能监控常用命令 --监控事例的等待 select event,        sum(decode(wait_Time, 0, 0, 1)) "Prev",      ...

  3. ORACLE GOLDENGATE 监控脚本

    ORACLE GOLDENGATE MONITOR 1. 背景 很多需要使用Oracle Godengate来进行容灾,虽然Oracle官方有自己的OGG监控产品和数据对比产品,如GoldenGate ...

  4. oracle 自带性能监控,oracle的性能监控

    oracle性能监控主要是通过statspack 或 awk 报告来实现的 statspack 10G之前主要用它,需要手工安装 AWK       内容更丰富,自动已经装好 statspack涉及的 ...

  5. 通向架构师的道路(第二十四天)之Oracle性能调优-朝拜先知之旅

    前言 这次,我们将在Linux下来动手完成Oracle数据库的安装与使用. Oracle本身是可以免费下载的包括 它的企业版以及被它收购的Weblogic和Sun中的几乎任何东西你都可以拿来下载和使用 ...

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

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

  7. 编写一个能监控到windows进程占用内存大小的脚本_Java性能监控分析及调优工具...

    >>>推荐阅读<<< 1.性能测试学习笔记-场景设计 2.性能测试的重要意义 3.性能分析流程及方法 4.应用系统性能调优之性能分析 Java性能监控分析及调优工具 ...

  8. 监控Oracle性能的SQL

    监控Oracle性能的SQL 1. 监控事例的等待     select event,sum(decode(wait_Time,0,0,1)) "Prev",    sum(dec ...

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

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

最新文章

  1. 【整理】SD交货拣配(Picking)处理
  2. c语言 有趣的代码,分享一段有趣的小代码
  3. Centos5.6 x86_64下安装DRBD+Heartbeat+NFS
  4. Django模型修改及数据迁移
  5. What is “Deploy applications configured in Tomcat instance” in IntelliJidea
  6. SQLite数据库学习小结——Frameworks层实现
  7. 【软件自动化测试】基于自设网站的软件测试与分析
  8. 外卖系统源码,如何搭建一套同城o2o外卖商城平台
  9. linux mint18 win8主题,Ubuntu/Linux Mint用上仿Win7/Win8主题
  10. scrapy提高爬取速度
  11. Java实现Zoho Mail 发送邮件,使用hutool工具类。
  12. 机器学习-周志华总结
  13. java打印直角三角形解析_编写java程序,打印3个5行直角三角形图案 运行效果如下: 使用 方法 实现 代码截图,必须含有2位学号+姓名_学小易找答案...
  14. 如何打造企业短视频账号的人设?
  15. Fresco使用PhotoDraweeView 实现图片的手势缩放
  16. [HTML]解决html5中设置的颜色和浏览器显示的颜色不一致的问题
  17. c语言求标准体重答案,c语言编写一个标准身高体重自测程序
  18. Mac 重命名快捷键
  19. 20190820美团视频一面面经
  20. SSM宠物领养系统毕业设计源码031654

热门文章

  1. Win32编程day04 学习笔记
  2. Microsoft月度中文速递
  3. 使用PHPExcel将数据导出至Excel
  4. [转]Linux配置防火墙
  5. Linux C定时器使用指南
  6. elasticsearch 基础语句
  7. bzoj3289 mato的文件管理
  8. leanote个人版安装
  9. 用json来组织数据,用IGame导出模型
  10. 可视化Spring开发插件 Spring IDE