设置缓冲池、逻辑日志缓冲区和物理日志缓冲区的大小

为 BUFFERPOOL、DS_TOTAL_MEMORY、LOGBUFF 和 PHYSBUFF 配置参数指定的值取决于正在使用的应用程序的类型(OLTP 或 DSS)以及页大小。

表 1 列出了这些参数的推荐设置或设置参数的准则。

有关估计共享内存的常驻部分大小的信息,请参阅估计共享内存常驻部分的大小。此计算包括计算缓冲池、逻辑日志缓冲区、物理日志缓冲区以及锁表的大小。
表 1. OLTP 和 DSS 应用程序的准则
配置参数 OLTP 应用程序 DSS 应用程序
BUFFERPOOL 缓冲区空间所需的物理内存百分比取决于系统上可用的内存量以及用于其他应用程序的内存量。 对于轻度扫描、查询和排序,设置为小缓冲区值并增加 DS_TOTAL_MEMORY 值。

对于诸如通过缓冲池读取数据的索引建立等操作,配置大量的缓冲区。

DS_TOTAL_MEMORY 设置为 SHMTOTAL 值的 20% 到 50%(以千字节为单位)。 设置为 SHMTOTAL 值的 50% 到 90%。
LOGBUFF 逻辑日志缓冲区大小的缺省值为 64 KB。

如果您决定使用一个较小的值,那么数据库服务器会生成一条消息,指示这样不能获得最佳性能。如果使用小于 64 KB 的逻辑日志缓冲区,那么会对性能产生影响,但不会对事务完整性产生影响。

如果将数据库或应用程序定义为使用缓冲的日志记录,那么增加 LOGBUFF 大小(超过 64 KB)会提高性能。

由于通常会对 DSS 应用程序关闭数据库或表的日志记录,所以可以将 LOGBUFF 设置为 32 KB。
PHYSBUFF 物理日志缓冲区大小的缺省值为 128 KB。

如果启用了 RTO_SERVER_RESTART 配置参数,请使用 PHYSBUFF 的缺省值 (512 KB)。

如果您决定使用一个小于缺省值的值,那么数据库服务器会生成一条消息,指示这样不能获得最佳性能。如果使用小于缺省大小的物理日志缓冲区,那么会对性能产生影响,但不会对事务完整性产生影响。

由于大部分 DSS 应用程序实际上并不进行日志记录,所以可以将 PHYSBUFF 设置为 32 KB。