频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

测量磁盘I/O

来源:pcdog 作者:佚名 出处:巧巧读书 2008-03-14 进入讨论组
谢 谢 收 藏 http://www.qqread.com/oracle/2008/03/w401442.html

 
  

       set echo off
  set feedback off
  set heading off
  set linesize 40
  set pagesize 55
  set verify off
  set termout off
  column rpt new_value rpt
  select instance_name||'_'||to_char(sysdate,'YYYYMMDDHH24MISS')||'_vsysstat_ioworkload.LST' rpt from v$instance;
  set termout on
  prompt
  prompt
  prompt ^^^^^^^^^^^^^
  prompt Report Name : ../LST/&&rpt
  prompt ^^^^^^^^^^^^^
  spool ../LST/&&rpt
  column sr1 new_value sr1
  column sw1 new_value sw1
  column lr1 new_value lr1
  column lw1 new_value lw1
  column tbr1 new_value tbr1
  column tbw1 new_value tbw1
  set termout off
  SELECT
  sum(decode(name,'physical read total IO requests',value,0)- decode(name,'physical read total multi block requests',value,0)) sr1,
  sum(decode(name,'physical write total IO requests',value,0)- decode(name,'physical write total multi block requests',value,0)) sw1,
  sum(decode(name,'physical read total multi block requests',value,0)) lr1,
  sum(decode(name,'physical write total multi block requests',value,0)) lw1,
  sum(decode(name,'physical read total bytes',value,0)) tbr1,
  sum(decode(name,'physical write total bytes',value,0)) tbw1
  FROM v$sysstat;
  set termout on
  prompt
  prompt
  prompt ^^^^^^^^^^^^
  prompt First Sample
  prompt ^^^^^^^^^^^^
  prompt Number of Small Reads : &&sr1
  prompt Number of Small Writes: &&sw1
  prompt Number of Large Reads : &&lr1
  prompt Number of Large Writes: &&lw1
  prompt Total Bytes Read : &&tbr1
  prompt Total Bytes Written : &&tbw1
  prompt
  prompt
  prompt Enter the amount of time (in seconds) you would like this process to sleep for sampling data
  prompt ^^^^^^^^^^^^^^^^^^
  prompt Sleep Time (secs): &&sleeptime
  prompt ^^^^^^^^^^^^^^^^^^
  exec DBMS_LOCK.SLEEP (&&sleeptime);
  column sr2 new_value sr2
  column sw2 new_value sw2
  column lr2 new_value lr2
  column lw2 new_value lw2
  column tbr2 new_value tbr2
  column tbw2 new_value tbw2
  set termout off
  SELECT
  sum(decode(name,'physical read total IO requests',value,0)- decode(name,'physical read total multi block requests',value,0)) sr2,
  sum(decode(name,'physical write total IO requests',value,0)- decode(name,'physical write total multi block requests',value,0)) sw2,
  sum(decode(name,'physical read total multi block requests',value,0)) lr2,
  sum(decode(name,'physical write total multi block requests',value,0)) lw2,
  sum(decode(name,'physical read total bytes',value,0)) tbr2,
  sum(decode(name,'physical write total bytes',value,0)) tbw2
  FROM v$sysstat;
  set termout on
  prompt
  prompt
  prompt ^^^^^^^^^^^^^
  prompt Second Sample
  prompt ^^^^^^^^^^^^^
  prompt Number of Small Reads : &&sr2
  prompt Number of Small Writes: &&sw2
  prompt Number of Large Reads : &&lr2
  prompt Number of Large Writes: &&lw2
  prompt Total Bytes Read : &&tbr2
  prompt Total Bytes Written : &&tbw2
  prompt
  prompt
  prompt ^^^^^^^^^
  prompt Results :
  prompt ^^^^^^^^^
  column sri new_value sri
  column swi new_value swi
  column tsi new_value tsi
  column srp new_value srp
  column swp new_value swp
  column lri new_value lri
  column lwi new_value lwi
  column tli new_value tli
  column lrp new_value lrp
  column lwp new_value lwp
  column tr new_value tr
  column tw new_value tw
  column tm new_value tm
  SELECT
  ROUND((&&sr2-&&sr1)/&&sleeptime,3) sri,
  ROUND((&&sw2-&&sw1)/&&sleeptime,3) swi,
  ROUND(((&&sr2-&&sr1)+(&&sw2-&&sw1))/&&sleeptime,3) tsi,
  ROUND((&&sr2-&&sr1)/DECODE(((&&sr2-&&sr1)+(&&sw2-&&sw1)),0,1,((&&sr2-&&sr1)+(&&sw2-&&sw1)))*100,3) srp,
  ROUND((&&sw2-&&sw1)/DECODE(((&&sr2-&&sr1)+(&&sw2-&&sw1)),0,1,((&&sr2-&&sr1)+(&&sw2-&&sw1)))*100,3) swp,
  ROUND((&&lr2-&&lr1)/&&sleeptime,3) lri,
  ROUND((&&lw2-&&lw1)/&&sleeptime,3) lwi,
  ROUND(((&&lr2-&&lr1)+(&&lw2-&&lw1))/&&sleeptime,3) tli,
  ROUND((&&lr2-&&lr1)/DECODE(((&&lr2-&&lr1)+(&&lw2-&&lw1)),0,1,((&&lr2-&&lr1)+(&&lw2-&&lw1)))*100,3) lrp,
  ROUND((&&lw2-&&lw1)/DECODE(((&&lr2-&&lr1)+(&&lw2-&&lw1)),0,1,((&&lr2-&&lr1)+(&&lw2-&&lw1)))*100,3) lwp,
  ROUND(((&&tbr2-&&tbr1)/&&sleeptime)/1048576,3) tr,
  ROUND(((&&tbw2-&&tbw1)/&&sleeptime)/1048576,3) tw,
  ROUND((((&&tbr2-&&tbr1)+(&&tbw2-&&tbw1))/&&sleeptime)/1048576,3) tm
  FROM dual;
  SELECT
  'Small Read IOPS = '||ROUND((&&sr2-&&sr1)/&&sleeptime,3)||' IOPS',
  'Small Write IOPS = '||ROUND((&&sw2-&&sw1)/&&sleeptime,3)||' IOPS',
  'Total Small IOPS = '||ROUND(((&&sr2-&&sr1)+(&&sw2-&&sw1))/&&sleeptime,3)||' IOPS',
  'Small Read I/O % = '||ROUND((&&sr2-&&sr1)/DECODE(((&&sr2-&&sr1)+(&&sw2-&&sw1)),0,1,((&&sr2-&&sr1)+(&&sw2-&&sw1)))*100,3)||' %',
  'Small Write I/O % = '||ROUND((&&sw2-&&sw1)/DECODE(((&&sr2-&&sr1)+(&&sw2-&&sw1)),0,1,((&&sr2-&&sr1)+(&&sw2-&&sw1)))*100,3)||' %',
  'Large Read IOPS = '||ROUND((&&lr2-&&lr1)/&&sleeptime,3)||' IOPS',
  'Large Write IOPS = '||ROUND((&&lw2-&&lw1)/&&sleeptime,3)||' IOPS',
  'Total Large IOPS = '||ROUND(((&&lr2-&&lr1)+(&&lw2-&&lw1))/&&sleeptime,3)||' IOPS',
  'Large Read I/O % = '||ROUND((&&lr2-&&lr1)/DECODE(((&&lr2-&&lr1)+(&&lw2-&&lw1)),0,1,((&&lr2-&&lr1)+(&&lw2-&&lw1)))*100,3)||' %',
  'Large Write I/O % = '||ROUND((&&lw2-&&lw1)/DECODE(((&&lr2-&&lr1)+(&&lw2-&&lw1)),0,1,((&&lr2-&&lr1)+(&&lw2-&&lw1)))*100,3)||' %',
  'Total Read = '||ROUND(((&&tbr2-&&tbr1)/&&sleeptime)/1048576,3)||' MBPS',
  'Total Written = '||ROUND(((&&tbw2-&&tbw1)/&&sleeptime)/1048576,3)||' MBPS',
  'Total MBPS = '||ROUND((((&&tbr2-&&tbr1)+(&&tbw2-&&tbw1))/&&sleeptime)/1048576,3)||' MBPS'
  FROM dual
  ;
  prompt Small Read IOPS = &&sri IOPS
  prompt Small Write IOPS = &&swi IOPS
  prompt Total Small IOPS = &&tsi IOPS
  prompt Small Read I/O % = &&srp %
  prompt Small Write I/O % = &&swp %
  prompt Large Read IOPS = &&lri IOPS
  prompt Large Write IOPS = &&lwi IOPS
  prompt Total Large IOPS = &&tli IOPS
  prompt Large Read I/O % = &&lrp %
  prompt Large Write I/O % = &&lwp %
  prompt Total Read = &&tr MBPS
  prompt Total Written = &&tw MBPS
  prompt Total MBPS = &&tm MBPS
  spool off
  undefine sleeptime

进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章