Oracle的数据库缓存算法以缓冲区的使用计数为基础,要比传统的操作系统算法更高级。大多数操作系统只是保持了最近使用的缓冲区,而不是最常用的缓冲区。操作系统的缓存也没有专门对数据库缓冲区的使用进行优化,因为它没有区分数据库块和文件iNode,它们都存在于相同的页缓存中。
将数据块缓存到文件系统缓存中浪费了宝贵的主内存,在两个不同位置缓存了同一数据块的两个版本。将不需要的文件系统存留在操作系统,可以为oracle或操作系统提供额外的内存,还可以提高性能,因为操作系统在感受到内存压力时可以求助于非数据库文件的分页。
避免双重缓冲极大地提高了I/O性能,因为不在需要在两个位置写入数据。Oracle的日志写入器进程将少部分的变更记录写到文件系统的缓存中,然后这一缓存再写回重做日志文件。在RAW分区中,日志写入器直接将变更记录写到日志文件中,它显著提高了联机事务处理OLTP系统的性能。
当然,如果使用RAW分区,那么需要增加一些管理开销,因为在没有第三方卷管理软件时,通常的RAW分区不能像文件系统那些按需增长。一些操作系统中的RAW分区数量是有限的,从而现在了原始设备在打包应用程序中的应用,这是因为应用程序需要大量的数据文件和表空间。原始设备的另一个限制是:由于它对操作系统是不可见的,因此缺乏经验的OA,可能人认为RAW分区使未使用的分区,从而销毁他们。
原始设备的使用已成为跨节点共享文件的传统方法。处于性能原因,在单实例系统中也使用裸设备。RAW分区避免了文件系统缓存中的双重缓冲,数据被读入Oracle数据库缓冲区缓存中,从而避免了操作系统缓冲区缓存。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30430420/viewspace-1792375/
,如需转载,请注明出处,否则将追究法律责任。