DB2基础:表空间和缓冲池
2009-12-12 14:59:21 来源:WEB开发网基于块的缓冲池
V8 允许您留出缓冲池的一部分(最高可达 98%)用于基于块的预取操作。基于块的 I/O 可以通过将块读入相邻的内存区而不是将它分散装入单独的页,来提高预取操作的效率。每个缓冲池的块大小必须相同,并且由 BLOCKSIZE 参数进行控制。该值等于块的大小(单位为页),从 2 到 256,缺省值为 32。
扩展存储器
DB2 不将扩展存储器用于缓冲区。但是,可以用扩展存储器来高速缓存内存页,使得从内存移出页变得更快。
CREATE BUFFERPOOL 语句的示例
下面是 CREATE BUFFERPOOL 语句的一个示例:
CREATE BUFFERPOOL BP3
SIZE 2000
PAGESIZE 8K
该缓冲池被分配给上面的 CREATE TABLESPACE 示例上的 USERSPACE3,并且在创建表空间之前创建该缓冲池。请注意,缓冲池和表空间的页大小都是 8K,两者是相同的。如果您在创建缓冲池之后创建表空间,则可以省去 CREATE TABLESPACE 语句中的 BUFFER POOL BP3 语法。相反,可以使用 altER TABLESPACE 命令将缓冲池添加到现有的表空间:
ALTER TABLESPACE USERSPACE3 BUFFERPOOL BP3
如何查看缓冲池属性
通过查询 SYSCAT.BUFFERPOOLS 系统视图可以列出缓冲池信息:
SELECT * FROM SYSCAT.BUFFERPOOLS
BPNAME BUFFERPOOLID NGNAME NPAGES PAGESIZE ES
------------------ ------------ ------------------ ----------- ----------- --
IBMDEFAULTBP 1 - 250 4096 N
1 record(s) selected.
要找出哪个缓冲池被分配给了表空间,请运行下面这个查询:
SELECT TBSPACE, BUFFERPOOLID FROM SYSCAT.TABLESPACES
TBSPACE BUFFERPOOLID
------------------ ------------
SYSCATSPACE 1
TEMPSPACE1 1
USERSPACE1 1
3 record(s) selected.
可以在上一个查询中找到 BUFFERPOOLID,该查询使您能够看到每个表空间与哪个缓冲池相关联。
数据库如何保存表空间的可视化图表
既然我们已经描述了表空间和缓冲池是什么以及如何创建它们,那么就让我们研究一下有关如何在数据库中将它们直观地组织起来的示例。
图 1. 表空间和缓冲池
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››db2诊断系列之---定位锁等待问题
- ››db2 命令选项解释
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 基础: 表空间和缓冲池
- ››DB2 XML 编程,第 1 部分: 理解 XML 数据模型
- ››DB2 pureScale 实战
更多精彩
赞助商链接