Oracle性能监控常用命令



--监控事例的等待

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;

--回滚段的争用情况

select name, waits, gets, waits / gets "Ratio"
  from v$rollstat a, v$rollname b
 where a.usn = b.usn;

--监控表空间的 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;

--监控文件系统的 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#;

--在某个用户下找所有的索引

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;

--监控 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;

--监控 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;

--监控 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;

--显示所有数据库对象的类别和大小

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;

--监控 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');

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

SELECT name, value
  FROM v$sysstat
 WHERE name IN ('sorts (memory)', 'sorts (disk)');

--监控当前数据库谁在运行什么SQL语句

SELECT osuser, username, sql_text
  from v$session a, v$sqltext b
 where a.sql_address = b.address
 order by address, piece;

--监控字典缓冲区

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

--找ORACLE字符集

select * from sys.props$ where name='NLS_CHARACTERSET';

--监控 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时,参数需加大

--碎片程度

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);

--表、索引的存储情况检查

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;

--检测数据库中的事件和等待

SELECT event, total_waits, total_timeouts,time_waited, average_wait FROM v$system_event

--查询会话中的事件和等待时间

select sid, event, total_waits,average_wait from v$session_event where sid=10;

--查询等待进程

SELECT sid, seq#, event, wait_time, state FROM v$session_wait;

--当前 sql 语句

select sql_text, users_executing, executions, loads from v$sqlarea;

--查询高速缓存中的命中率

select sum(pins) "Executions",
       sum(reloads) "Cache Misses",
       sum(reloads) / sum(pins)
  from v$librarycache;

--查询全局字典中的有效装载次数

select namespace,pins,reloads,invalidations from v$librarycache;

--回滚段的争用情况

select name, waits, gets, waits / gets "Ratio"
  from v$rollstat a, v$rollname b
 where a.usn = b.usn;

--监控表空间的 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;

--监控文件系统的 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#;

--在某个用户下找所有的索引

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;

--监控 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;

--监控 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;

--显示所有数据库对象的类别和大小

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;

--监控 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');

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

SELECT name, value FROM v$sysstat WHERE name IN ('sorts (memory)', 'sorts (disk)');

--监控字典缓冲区

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

--找 ORACLE 字符集

select * from sys.props$ where name='NLS_CHARACTERSET';

--表、索引的存储情况检查

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;

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

--查看表锁
select * from sys.v_$sqlarea where disk_reads>100

--监控事例的等待
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

--回滚段的争用情况
select name, waits, gets, waits / gets "Ratio"
  from v$rollstat a, v$rollname b
 where a.usn = b.usn

--查看前台正在发出的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'))

--数据表占用空间大小情况
select segment_name, tablespace_name, bytes, blocks
  from user_segments
 where segment_type = 'TABLE'
 ORDER BY bytes DESC, blocks DESC

--查看表空间碎片大小
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
    
--查看表空间占用磁盘情况
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

--查看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

--查看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'

--监控表空间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

--监控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

--监控 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

--监控 SGA **享缓存区的命中率,应该小于1%
select sum(pins) "Total Pins", sum(reloads) "Total Reloads",
sum(reloads)/sum(pins) *100 libcache
from v$librarycache

--监控 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')

--监控内存和硬盘的排序比率,最好使它小于 .10
SELECT name, value
FROM v$sysstat
WHERE name IN ('sorts (memory)', 'sorts (disk)')

--监控字典缓冲区
SELECT SUM(GETS) "DICTIONARY GETS",SUM(GETMISSES) "DICTIONARY CACHE GET MISSES"
FROM V$ROWCACHE

--非系统用户建在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')

--性能最差的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
                             
--读磁盘数超100次的sql

select * from sys.v_$sqlarea where disk_reads>100

--最频繁执行的sql

select * from sys.v_$sqlarea where executions>100

--查询使用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

--当前每个会话使用的对象数
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)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29500582/viewspace-1353064/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29500582/viewspace-1353064/

Oracle性能监控常用命令相关推荐

  1. linux性能监控常用命令

    概述 我们在linux下,如果想要监控服务器性能.我们必须掌握以下常用的指标查看命令. ps pstree top free vmstat sar ps ps命令能给出当前系统中进程的快照.下面我们列 ...

  2. Linux 性能监控常用命令

    工具 简单介绍 top 查看进程活动状态以及一些系统状况 vmstat 查看系统状态.硬件和系统信息等 iostat 查看CPU 负载,硬盘状况 sar 综合工具,查看系统状况 mpstat 查看多处 ...

  3. netstat-网络性能分析常用命令

    netstat-网络性能分析常用命令 netstat 实例 更多用法 其它相关操作命令 netstat netstat命令的功能是显示网络连接.路由表和网络接口信息,可以让用户得知有哪些网络连接正在运 ...

  4. lsof-文件监控常用命令

    lsof-文件监控常用命令 lsof命令 主要选项参数释义 安装lsof命令 实例 `losf -c 进程名`查看某个进程名称当前打开的文件 `lsof -p PID`查看某个进程id当前打开的文件 ...

  5. Oracle性能监控脚本

    Oracle性能监控脚本 2011-09-05      0 个评论       收藏    我要投稿 1. 监控事例的等待 select event,sum(decode(wait_Time,0,0 ...

  6. oracle rman 实例,Oracle数据库rman常用命令的使用示例

    Oracle数据库rman常用命令的使用是本文我们主要要介绍的内容,接下来我们就开始介绍这一部分内容,希望能够对您有些收获! 连接到rman 1.连接到目标数据库(不使用恢复目录) [oracle@l ...

  7. Oracle数据库基本常用命令

    Oracle数据库基本常用命令 1.得到数据库名和创建日期 SELECT name, created, log_mode, open_mode FROM v$database; 2.ORACLE数据库 ...

  8. Oracle数据库的常用命令(创建用户、用户授权、用户登录、表空间、备份还原 )

    Oracle数据库的常用命令 Oracle数据库的常用命令 一.创建用户及授权相关命令 二.用户登录相关命令 三.表空间相关命令 四.备份的还原 Oracle数据库的常用命令 一.创建用户及授权相关命 ...

  9. Mysql性能监控常用查询命令

    查询缓存情况 SHOW VARIABLES LIKE '%cache%'; 查询慢查询情况 SHOW VARIABLES LIKE '%slow%'; SHOW GLOBAL STATUS LIKE ...

最新文章

  1. 光刻技术的“鬼斧”之变
  2. 企业网站建设量身定做的三项基本要素
  3. Android Annotation注解详解
  4. idea打开提示没有安装java_Java全栈程序员之05:Ubuntu下安装TOMCAT、集成到IDEA
  5. ArcGIS实验教程——实验十五:拓扑关系创建与编辑
  6. Redis-主从复制
  7. python关机linux_Python学习第157课——Linux切换用户、关机、查看正在运行的程序...
  8. 转载:JAVA获取时间戳,哪个更快
  9. 入职必备两小时入门SVN(二)
  10. 自助bi工具如何搭建数据可视化
  11. 附下载,《爱分析·中国BI商业智能行业报告》
  12. 计算机的网关地址是什么,什么是网关 网关地址是什么
  13. 将Unity地形以Wavefront Obj格式导出
  14. 自己动手写一个网盘?
  15. python数据库选择
  16. Linux 使用gcore、gdb、pstack、strace命令查死锁问题
  17. 托管调试助手“LoaderLock”在XXX中检测到故障。其他信息:正尝试在OS加载程序锁内执行托管代码。不要尝试在DllMain或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。
  18. 华为服务器euler系统,华为euler服务器
  19. 名悦集团分享秋季汽车保养指南,给你更好的用车体验
  20. 2013年山东省第四届ACM大学生程序设计竞赛 Problem I Thrall’s Dream 图,2n遍dfs

热门文章

  1. idea导入web项目
  2. 【就业】签offer和签三方协议的不同
  3. 工作一年后端问题杂录
  4. 第4期|一周电商零售news汇总(2.1-2.7)李子柒刷新吉尼斯世界纪录:最多订阅量的油管中文频道...
  5. 计算机组成原理 赖晓铮,计算机组成原理实验 2.5 运算器 赖晓铮
  6. 打印有时无法唤醒计算机,M227网络打印无法唤醒打印机
  7. RSA+AES数字信封加解密设计
  8. 拓嘉启远电商:拼多多手机以旧换新如何操作
  9. 飞链云版图-像素放大器
  10. PS学习-抠图与创意合成处理(二)--为梯田水面合成创意火烧云