Oracle优化缓冲区之高论

 我来答
户如乐9318
2022-10-18 · TA获得超过6655个赞
知道小有建树答主
回答量:2559
采纳率:100%
帮助的人:139万
展开全部

  本人很喜欢Oracle 在工作中也很喜欢总结关于Oracle优化缓冲区的经验教训 下面就这个问题来详细说说Oracle优化缓冲区吧

  ( )获取缓冲区活动情况

  为了Oracle优化缓冲区 首先应了解缓冲区的活动情况 这可以通过查询动态性能表(需有SELECT  ANY TABLE特权)V$SYSSTAT来获得

   SVRMGR> select name value from v$sysstat

   > where name in( db block gets consistent gets physical reads );

   NAME    VALUE

   db  blockgets  

  nsistent gets  

   physica  reads  

   rows selected

  其中 db block gets 和 consistent gets 的值是请求数据缓冲区中读的总次数 physical reads 为请求数据时引起从盘中读文件的次数

  ( )缓冲区命中率

  从缓冲区读的可能性的高低称为缓冲区命中率 它可用如下公式计算 Hot Ratio= (physical reads/(db block gets+consistent gets)

  缓冲区命中率越高 其速度就越快 如果命中率低于 %或 %时 则应增加缓冲区(即DB_BLOCK_BUFFERS) 以改进性能 根据公式可以计算出本例中的Hot Ratio= ( /( + )= % 如果缓冲区的命中率很高 希望在保持良好性能下适当减少缓冲区 这时可减少DB_BLOCK_BUFFERS的值 其最小值为

  当一个文件上的输入/输出(I/O)请求干扰了第二个文件的输入/输出请求时 那么这两个文件就会发生争用 所以两个随机存取的文件只有在无可能同时存取它们时 才可以存放在同一设备中 由此可以分为两种类型的I/O争用 并行I/O争用和干扰争用 并行I/O争用多发生在同一时间对同一设备请求多种存取时 这种类型的争用可以通过分离与表相联系的索引的办法来消除 干扰争用发生在对一个顺序文件进行写操作而同时进行读命令时中断而引起

  I/O优化的目的是解决I/O瓶颈问题 I/O的优化必须在内存优化之后进行 可以通过减少磁盘争用 有效分配数据块空间和避免动态空间管理三个方面来优化I/O

  减少磁盘争用

  V$FILESTAT视图提供有关物理读写的信息 物理I/O针对磁盘 逻辑I/O针对内存 如果有多个进程同时访问同 磁盘 就产个磁盘争用

  监控Oracle的磁盘活动

  要解决磁盘争用 首先应该知道磁盘的活动情况 确定是否发生争用 这可以通过查询动态性能表(需有SELECT ANY TABLE特权)V$FILESTAT和V$DATAFILE来确定 例如

   SQL>SELECT  Name phyrds phywrts

   FROM  V$DATAFILE df V$FILESTAT fs

   WHERE df file#=fs file#

  其中

  ◆ phyrds 记录从盘上读每个数据库文件的次数

  ◆ phywrts 记录往盘上写数据库文件的次数

lishixinzhi/Article/program/Oracle/201311/18623

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式