您好、欢迎来到现金彩票网!
当前位置:秒速快3 > 数据高速缓存 >

1%是数据库日志高速缓存大小的关口

发布时间:2019-05-17 18:09 来源:未知 编辑:admin

  数据库管理员应该要了解的是,重做日志文件的机制跟数据文件的管理机制类似。当因为数据更新、新建记录或者数据库结构变更产生重做记录时,其也不是马上写入重做日志文件中。而是先将重做记录写入到重做日志高速缓存中。等到符合一定的条件,再将重做记录写入到硬盘上的冲作日志文件中。这主要是为了性能的考虑。因为往内存中写入数据要比往硬盘中写入数据快几千倍。

  重做日志文件对于Oracle数据库的重要性显而易见,如上图所示,当利用Update等数据操作语更新数据或者调整数据库物理机构时,数据库会先将相关的更改信息保存在数据高速缓存中。同时也会产生重做记录,这些重做记录也是保存在重做日志高速缓存中。这在某种程度上可以提高数据库的性能。但是,如果这个重做日志缓存设置的不恰当的话,也会出问题。如当一个Update语句需要更新大量的数据时,则写一部份记录到重做日志高速缓存中,其空间就会满了,需要将重做记录写入到重做日志文件中。此时更新作业不得不暂时等待,因为此时无法将重做记录写入到重做日志高速缓存中。只有将现有重做日志高速缓存中的信息都写入到重做日志文件中后,系统才会清空重做日志缓存中的信息,系统才能够将更新的信息保存到重做日志高速缓存中。所以当这个等待的次数多了,那就会极大的影响数据库的性能。

  不要让临时表空间影响数据库性能,所以说,重做日志高速缓存是把双刃剑。若重做日志高速缓存大小合适的话,确实可以提高Update等语句的操作效率。但是如果设置的不合适的话,则会起到适得其反的效果。反而会因为等待次数过多而影响到这些语句的执行效果。故在一些数据更新量比较大的系统中,特别需要进行成批更改的数据库中,调整重做日志高速缓存的大小也是改善数据库性能的一个重要举措。

  在配置重做日志高速缓存大小的时候,首先需要避免一个误区,即并不是说重做日志高速缓存越大越好。如果将重做日志高速缓存设置的很大,也会产生不利的影响。

  如重做日志高速缓存是内存中的一块区域,它是数据库启动的时候就已经分配好了的,是一块独享的内存区域。也就是说,如果给其分配了一定大小的区域之后,无论现在重做记录需要多少的高速缓存,其都会独占的享用这块区域。即使只用来1%,这多余的内容也不会给其他程序使用。而且,根据LGWR进程的规则,默认情况下一般当达到重做日志高速缓存大小的50%时,将会将重做日志高速缓存中的重作记录写入到重做日志文件中。所以如果将重做日志高速缓存设置的比较大的话,对于内存来说也是一种浪费。

  其次会降低重做日志文件的作用。虽然在有些书上说重做记录会随时写入到重做日志文件中。其实这是不科学的。一产生重做记录后不会马上写入到重做日志文件中,而是写保存在重做日志高速缓存中。然后根据重做记录的数量来决定写入到重做日志文件中的时刻。也就是说,在将数据高速缓存中的数据写入到数据文件中这个时间间隔内,重做记录会分几次写入到重做日志文件中。所以,重做日志文件中的信息也会有一个时间的延迟,不一定根数据库真实的内容保持同步。

  所以到数据库发生故障时,即使有重做日志文件的存在,也不一定能够恢复到故障的点(当然离故障的点很近,可能只差几秒)。当重做日志高速缓存空间越大的话,那么将重做记录写入到重做日志文件中的时间间隔会越长。此时数据库如果发生故障,则其丢失的数据相对来说会更多。所以说,虽然增加重做日志高速缓存的大小可以避免因为等待而导致的性能下降问题,但是也会对数据的安全性对来一定的损害。故最后数据库管理员在设置这个重做日志高速数据缓存空间的时候,对于这个大小,还是要有一个分寸。切记,这个空间并不是越大越好。

http://billsauctions.com/shujugaosuhuancun/30.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有