Oracle数据库性能相关

时间:2009-04-23 07:20:15

标签: performance oracle

我目前正在研究9.2.0.8 Oracle数据库。我有一些与数据库性能相关的问题 与重做日志锁存器和放大器相关争。来自实际的答案将受到高度赞赏。请帮忙。

  1. 我的数据目前有25个重做日志文件,每个文件有2个成员。每个成员的大小为100米。 所以这值得保留25个重做日志文件,每个文件有2个成员(每个100MB)。
  2. 我的数据库是24 * 7,最小用户为275&最大650.我的数据库主要是SELECT,但非常 少INSERT / UPDATE / DELETE。 从1个月开始,我开始对我的数据库产生平均17GB的存档感到不满 MAX最小值为28GB。 但LOGSWITCH平均每5-10分钟发生一次。有时候更频繁。 甚至有时候在一分钟内有3次。 但是我的SPFILE说log_checkpoint_timeout = 1800(30分钟)。
  3. 关于Redo log latches&争,  当我的时候: - 选择名字,价值         FROM v $ sysstat         WHERE name ='redo log space requests'; 输出: -

        NAME                                                               VALUE
        -------------------------------------------------------------------- ----------
         redo log space requests                                               20422
    (This value is getting increased day by day)
    
  4. Oracle建议将重做日志空间请求接近零。
  5. 所以我想知道为什么我的数据库经常用于日志切换。这是因为 数据或Becoze的其他一些东西。
  6. 我的疑问是,如果我增加REDO LOG Buffer,问题可能会解决。我增加了重做日志缓冲区 从8MB到11MB。但我没有发现太大的不同。
  7. 如果我将REDO LOG FILE的大小从100MB增加到200MB,它会有所帮助吗?它会帮助我减少吗? 日志切换时间&使REDO LOG SPACE REQUEST的值接近于零。

3 个答案:

答案 0 :(得分:1)

关于你提供的信息的一些内容并没有加起来 - 如果你真的产生了大约20G / min的存档日志,那么你将每分钟至少200次切换你的100M日志文件 - 而不是3次/分钟你提到的最糟糕的情况。这也与您对“...主要是SELECT”的描述不一致。

在现实世界中,我平均每5-10分钟就不会担心日志切换。有了这么多的重做,没有任何init参数可以用于切换 - 它正在发生,因为在线重做日志填满了。在这种情况下,控制切换速率的唯一方法是调整日志大小,例如,将对数大小加倍会使开关频率降低一半。

答案 1 :(得分:0)

每分钟17GB的日志文件对我来说似乎很高。也许数据库中的一个表空间仍处于在线备份模式。

答案 2 :(得分:0)

查看哪些会话正在生成大量重做以及哪些会话最多等待重做日志空间可能会有所帮助。

SQL> l
  1  select name, sid, value
  2  from v$sesstat s, v$statname n
  3  where name in ('redo size','redo log space requests')
  4   and n.statistic# = s.statistic#
  5  and value > 0
  6* order by 1,2