在数据库被激活或者启动的时候,DB2会自动添加四个隐含buffer pool,还有IBMDEFAULTBP和用户自己添加的buffer pool。这四个隐含的buffer pool在数据库的系统目录表上没有相应的条目,也就是说在系统目录表上是没有办法查找到这四个buffer pool的相应记录,但是确实是实实在在存在的。而这四个隐含buffer pool是不能直接通过指定表空间的形式使用,也不能被数据库管理员进行修改,哪这四个隐含buffer pool是做什么用的哪?
hidden buffer pool
这四个buffer pool是相对这四个不同的pagesize的buffer pool空间,例如:4KB,8KB,16KB,32KB。主要是为了保护在数据库在如何情况下的正常运行。之所以这样说,我们来看看,这四个buffer pool是要使用在什么样的状态下:
1、在create bufferpool执行的时候,使用的是immediate这个选项,但是却没有足够的空间来分配buffer pool:这时候就会DB2做以下事情了:
1) 这种状态发生,一个消息写入到管理通知日志
2) 在所有使用这个buffer pool的表空间将自己的数据会映射到这个相应的隐含buffer pool上
2、在数据库激活或者启动的时候,IBMDEFAULTBP和用户自己添加的buffer pool不能被分配的时候:
1) 这种状态发生,一个消息写入到管理通知日志
2) 在所有使用这个buffer pool的表空间将自己的数据会映射到这个相应的隐含buffer pool上
3) 当使用这种情况的时候,系统的性能将会大大的降低
3、当一个表空间被添加的时候,而buffer pool却没有对应pagesize大小的buffer pool的时候。
4、在添加一个buffer pool带有DEFERRED选项被指定的时候,需要撤销的时候。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/222350/viewspace-927123/ ,如需转载,请注明出处,否则将追究法律责任。