--清单 4. 创建使用自动自调整功能的示例缓冲池MYBP1C:\>db2 create bufferpool mybp1 immediate size 100 automatic pagesize 4kDB20000I SQL命令成功完成。
接下来创建示例缓冲池MYBP2,其不使用自调整功能,,初始大小为400K,具体如清单5所示:
--清单 5. 创建不使用自动自调整功能的示例缓冲池MYBP2C:\>db2 create bufferpool mybp2 immediate size 100 pagesize 4kDB20000I SQL命令成功完成。
此时我们通过访问sysibm.sysbufferpools可以看到mybp1的NPAGES字段设置成了-2,而mybp2的NPAGES字段都设置成了100,具体如清单6所示:
--清单 6. 查看缓冲池C:\>db2 "select BPNAME, NPAGES from sysibm.sysbufferpools"BPNAME NPAGES------------------------------------------------ -----------IBMDEFAULTBP -2MYBP1 -2MYBP2 1003 条记录已选择。
现在我们将mybp2改成使用自调整功能,在DB2CMD环境中,执行ALTER BUFFERPOOL命令,具体如清单7所示:
--清单 7. 修改示例缓冲池MYBP2,使其启用自调整功能C:\>db2 alter bufferpool mybp2 immediate size 100 automaticDB20000I SQL命令成功完成。
再次通过访问sysibm.sysbufferpools可以看到mybp1和mybp2的NPAGES字段都设置成了-2,具体如清单8所示:
--清单 8. 查看缓冲池C:\>db2 "select BPNAME, NPAGES from sysibm.sysbufferpools"BPNAME NPAGES------------------------------------------------ -----------IBMDEFAULTBP -2MYBP1 -2MYBP2 -23 条记录已选择。
如果数据库是从V8迁移过来,或者被手工设置过禁止使用自调整内存功能,又想重新使用自动自调整内存功能,可以按如下步骤进行操作:
•通过将 self_tuning_mem 设置为 ON 来对数据库启用自调整功能。可以使用 UPDATE DATABASE CONFIGURATION 命令、SQLFUPD API 或通过控制中心中的更改数据库配置参数窗口来将 self_tuning_mem 设置为 ON。
•要对由内存配置参数控制的内存区域启用自调整功能,请使用 UPDATE DATABASE CONFIGURATION 命令、SQLFUPD API 或通过控制中心中的更改数据库配置参数窗口将相关配置参数设置为 AUTOMATIC。
•要对缓冲池启用自调整功能,请将缓冲池大小设置为 AUTOMATIC。可以使用 ALTER BUFFER POOL 语句(对于现有缓冲池)或 CREATE BUFFER POOL 语句(对于新缓冲池)来完成此操作。如果在 DPF 环境中将缓冲池大小设置为 AUTOMATIC,就不应该在 sysibm.sysbufferpoolnodes 中为该缓冲池定义任何条目。
需要注意:
•由于自调整功能在不同内存区域之间重新分配内存,所以,必须至少启用两个内存区域(例如锁定内存区域和数据库共享内存区域)才能使自调整功能起作用。唯一的例外是由 sortheap 配置参数控制