管理多个数据库缓冲池
管理多个数据库缓冲池
尽管每个数据库都至少需要一个缓冲池,但您可以为表空间具有多页大小的单一数据库创建多个缓冲池,每个缓冲池可以具有不同的大小或使用不同的页大小。
您可以使用 ALTER BUFFERPOOL 语句来调整缓冲池大小。
新数据库具有名为 IBMDEFAULTBP 的缺省缓冲池,其缺省页大小基于创建数据库时指定的页大小。缺省页大小作为 pagesize 参考数据库配置参数进行存储。如果您创建具有缺省页大小的表空间,并且未对其指定特定的缓冲池,那么该表空间将被指定到缺省缓冲池。您可以调整缺省缓冲池的大小并更改其属性,但不能将其删除。
缓冲池的页大小
在创建或升级数据库之后,可以创建其他缓冲池。如果创建使用 8-KB 页大小作为缺省值的数据库,那么将创建具有缺省页大小(在本例中,这是 8 KB)的缺省缓冲池。此外,还可以创建具有 8-KB 页大小的缓冲池以及一个或多个具有相同页大小的表空间。此方法不要求您在创建数据库时更改 4 KB 缺省页大小。不能将表空间指定给使用另一种页大小的缓冲池。
使用 CREATE BUFFERPOOL 语句创建缓冲池时,如果未指定大小,那么缓冲池大小将设置为 AUTOMATIC 并由 DB2 管理。以后,要更改缓冲池大小,请使用 ALTER BUFFERPOOL 语句。
在分区数据库环境中,一个数据库的每个缓冲池在所有数据库分区中的缺省定义都相同,除非在 CREATE BUFFERPOOL 语句中另行指定或者特定数据库分区的缓冲池大小被 ALTER BUFFERPOOL 语句更改。
大型缓冲池的优点
- 它们使频繁被请求的数据页能够保留在缓冲池中,从而提高访问速度。较少的 I/O 操作可以减少 I/O 争用情况,从而缩短响应时间并减少 I/O 操作所需的处理器资源。
- 它们提供了在保持响应时间不变的前提下实现更高事务处理速率的机会。
- 它们能够防止频繁使用的磁盘存储设备(例如用于存储目录表以及频繁引用的用户表和索引的设备)发生 I/O 争用情况。由于包含临时表空间的磁盘存储设备上的 I/O 争用情况减少,因此查询所需执行的排序操作也能受益。
多个缓冲池的优点
- 缓冲池总空间量小于 10000 个 4 KB 页
- 找不到具备该应用程序知识来执行专门调试的人员
- 您正在测试系统中工作
- 可以将临时表空间指定到独立的缓冲池,以便提高需要临时存储器的查询(尤其是执行大量排序操作的查询)的性能。
- 如果数据必须由很多小型的更新事务应用程序反复并快速地访问,那么请考虑将包含该数据的表空间指定到独立的缓冲池。如果此缓冲池的大小合适,那么它的页被找到的机会将更大,这有利于缩短响应时间和降低事务成本。
- 可以将数据隔离到不同的缓冲池中,以利于特定的应用程序、数据和索引。例如,您可能想将频繁更新的表和索引放在单独的缓冲池中,以便与那些频繁查询但很少更新的表和索引分开。
- 对于很少使用的应用程序(尤其是需要对一个很大的表非常随机地进行访问的应用程序)所访问的数据,可使用较小的缓冲池。在此情况下,不需要使数据保存在缓冲池中的时间超出单个查询的运行时间。最好为此类数据保留一个小缓冲池,以便腾出额外的内存供其他缓冲池使用。
自调整内存管理器 (STMM) 非常适合于调整包含多个缓冲池的系统。
启动时的缓冲池内存分配
在创建缓冲池或更改缓冲池时,所有缓冲池所需的全部内存必须可供数据库管理器使用,以便数据库启动时能够分配所有缓冲池。如果在数据库管理器处于联机状态时创建或更改缓冲池,那么数据库全局内存中应该有附加的内存可用。如果创建新缓冲池或增大现有缓冲池的大小时指定了 DEFERRED 关键字,但无法获得所需的内存,那么数据库管理器将在下次激活该数据库时执行更改。
如果数据库启动时无法获得此内存,那么数据库管理器将仅使用最小大小为 16 页的系统缓冲池(每个页大小对应一个系统缓冲池)并返回警告。该数据库将一直保持处于此状态,直到您更改其配置并且该数据库可以完全重新启动为止。虽然性能可能欠佳,但您可以连接到该数据库、重新配置缓冲池大小或者执行其他关键任务。完成这些任务后,请重新启动该数据库。不要在这种状态下长时间运行数据库。
为了避免在仅使用系统缓冲池的情况下启动数据库,请使用 DB2_OVERRIDE_BPF 注册表变量来优化对可用内存的使用。
( 反馈 )
http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.perf.doc/doc/c0005395.html