statspack的IO操作及Buffer Hit Rate

简介: --物理讀寫操作 select distinct to_char(snap_time, 'yyyy-mm-dd HH24:MI:SS') datetime,                 (newreads.

--物理讀寫操作
select distinct to_char(snap_time, 'yyyy-mm-dd HH24:MI:SS') datetime,
                (newreads.value - oldreads.value) reads,
                (newwrites.value - oldwrites.value) writes
  from perfstat.stats$sysstat  oldreads,
       perfstat.stats$sysstat  newreads,
       perfstat.stats$sysstat  oldwrites,
       perfstat.stats$sysstat  newwrites,
       perfstat.stats$snapshot sn
 where newreads.snap_id = sn.snap_id
   and newwrites.snap_id = sn.snap_id
   and oldreads.snap_id = sn.snap_id - 1
   and oldwrites.snap_id = sn.snap_id - 1
   and oldreads.statistic# = 42  --42 physical reads
   and newreads.statistic# = 42
   and oldwrites.statistic# = 46  --46 physical writes
   and newwrites.statistic# = 46
   and (newreads.value - oldreads.value) > 0
   and (newwrites.value - oldwrites.value) > 0
   and snap_time > to_date('2008-07-08 18:00:00', 'yyyy-mm-dd hh24:mi:ss')
;

--Buffer命中率
select substr(to_char(snap_time, 'yyyy-mm-dd HH24:MI'), 12),
       round(100 * (((a.value - e.value) + (b.value - f.value)) -
             (c.value - g.value)) /
             ((a.value - e.value) + (b.value - f.value))) "BUFFER HIT RATIO"
  from perfstat.stats$sysstat  a,
       perfstat.stats$sysstat  b,
       perfstat.stats$sysstat  c,
       perfstat.stats$sysstat  d,
       perfstat.stats$sysstat  e,
       perfstat.stats$sysstat  f,
       perfstat.stats$sysstat  g,
       perfstat.stats$snapshot sn
 where a.snap_id = sn.snap_id
   and b.snap_id = sn.snap_id
   and c.snap_id = sn.snap_id
   and d.snap_id = sn.snap_id
   and e.snap_id = sn.snap_id - 1
   and f.snap_id = sn.snap_id - 1
   and g.snap_id = sn.snap_id - 1
   and a.statistic# = 40
   and e.statistic# = 40
   and b.statistic# = 41
   and f.statistic# = 41
   and c.statistic# = 42
   and g.statistic# = 42
   and d.statistic# = 46
   and snap_time > to_date('2008-07-08 18:00:00', 'yyyy-mm-dd hh24:mi:ss')
;
/*
40 db block gets 
41 consistent gets 
42 physical reads 
46 physical writes
*/
--buffer 命中率計算公式
公式一:
select name,
       ((consistent_gets + db_block_gets) - physical_reads) /
       (consistent_gets + db_block_gets) * 100 "Hit Ratio%"
  from v$buffer_pool_statistics
 where physical_reads > 0;?
公式二:
Hit Ratio = 1 - ((physical reads - physical reads direct - physical reads direct (lob)) /
(db block gets + consistent gets - physical reads direct - physical reads direct (lob))
公式三:
hit ratio = 1 - [physical reads/(block gets + consistent gets)]

SELECT NAME,
       PHYSICAL_READS,
       DB_BLOCK_GETS,
       CONSISTENT_GETS,
       1 - (PHYSICAL_READS / (DB_BLOCK_GETS + CONSISTENT_GETS)) "Hit Ratio"
  FROM V$BUFFER_POOL_STATISTICS
 WHERE NAME = 'DEFAULT';

目录
相关文章
|
7月前
|
存储 Linux API
Linux应用开发基础知识——文件IO操作(三)
Linux应用开发基础知识——文件IO操作(三)
88 2
Linux应用开发基础知识——文件IO操作(三)
|
Java 测试技术 Apache
Java IO 与 NIO:高效的输入输出操作探究
输入输出(IO)是任何编程语言中的核心概念,而在Java中,IO操作更是应用程序成功运行的基石。随着计算机系统变得越来越复杂,对IO的要求也日益增加。在本文中,我们将探讨Java IO和非阻塞IO(NIO)的重要性以及如何在Java中实现高效的输入输出操作。
|
存储 数据处理 索引
【100天精通python】Day27:文件与IO操作_CSV文件处理
【100天精通python】Day27:文件与IO操作_CSV文件处理
79 0
|
7月前
|
数据采集 异构计算
LabVIEW编程LabVIEW开发高级数据采集技术 操作数字IO 例程与相关资料
LabVIEW编程LabVIEW开发高级数据采集技术 操作数字IO 例程与相关资料
98 22
|
6月前
|
缓存 NoSQL Redis
redis管道操作(节省网络IO开销)
pipeline中发送的每个command都会被server立即执行,如果执行失败,将会在此后的响应中得到信息;也就是pipeline并不是表达“所有command都一起成功”的语义,管道中前面命令失败,后面命令不会有影响,继续执行。
55 1
|
7月前
|
Java
|
7月前
|
消息中间件 关系型数据库 Kafka
实时计算 Flink版操作报错之在执行任务时遇到了一个IO错误,具体表现为无法从本地主机(localhost)下载文件,该怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
7月前
|
监控 Java
Java一分钟之-NIO:非阻塞IO操作
【5月更文挑战第14天】Java的NIO(New IO)解决了传统BIO在高并发下的低效问题,通过非阻塞方式提高性能。NIO涉及复杂的选择器和缓冲区管理,易出现线程、内存和中断处理的误区。要避免这些问题,可以使用如Netty的NIO库,谨慎设计并发策略,并建立标准异常处理。示例展示了简单NIO服务器,接收连接并发送欢迎消息。理解NIO工作原理和最佳实践,有助于构建高效网络应用。
90 2
|
7月前
|
存储 Go 数据处理
Golang简单实现IO操作
Golang简单实现IO操作
59 1
|
7月前
|
存储 Java 编译器
Java文件IO操作基础
Java文件IO操作基础
54 0