DB2数据库中pagesize和其对应寻址能力限制

DB2数据库中,表和表空间的大小主要受到pagesize和其对应寻址能力限制。本文将为您详细分析DB2数据库中表和表空间的大小的限制,供您参考,希望对您有所帮助。
  在DB2 v8中,页地址为3个字节,也就是2的24次方可用,就是16,777,216页可以被寻址,基于这个限制得到如下表空间和表大小的限制:
  # of pages Page size Limit of table / tablespace
  16,777,216 4 K 64 GB
  16,777,216 8 K 128 GB
  16,777,216 16 K 256 GB
  16,777,216 32 K 512 GB
  在DB2 v9中,页地址扩展为4个字节,也就是寻址能力提升4倍,具体的限制如下所示:
  # of pages Page size Limit of table / tablespace
  536,870,912 4 K 2 TB
  536,870,912 8 K 4 TB
  536,870,912 16 K 8 TB
  536,870,912 32 K 16 TB
  注意:在DB2 v8中,large类型的表空间只是为LOB和LONG数据类型所使用,而在DB2 v9中没有类似的限制,默认的表空间类型就是large,如果从DB2 v8升级到v9就需要手动的把表空间从regular转换为large
  ALTER TABLESPACE tablespace_name CONVERT TO LARGE
  DB2 v8中的典型报错
多所有容器扩容
db2 " ALTER TABLESPACE tablespace-name EXTEND (ALL 1000000)"
DB21034E The command was processed as an SQL statement because it was not avalid Command Line Processor command. During SQL processing it returned:
SQL1139N The total size of the table space is too big. SQLSTATE=54047

对其中一个容器扩容
db2 " ALTER TABLESPACE tablespace-name  EXTEND (FILE '/dir/filename' 3000000)"
DB21034E The command was processed as an SQL statement because it was not avalid Command Line Processor command. During SQL processing it returned:
SQL1139N The total size of the table space is too big. SQLSTATE=54047

加容器
db2 " ALTER TABLESPACE tablespace-name  ADD (FILE '/dir/filename' 500000)"
DB21034E The command was processed as an SQL statement because it was not avalid Command Line Processor command. During SQL processing it returned:
SQL1139N The total size of the table space is too big. SQLSTATE=54047

通过检查可以看到
LIST TABLESPACES SHOW DETAIL
...
Tablespace ID                       = 8
Name                                       = tablespace-name
Type                                       = Database managed space
Contents                                = Any data
State                                        = 0x0000
Detailed explanation:
Normal
Total pages                            = 16388000
Useable pages                       = 16387840
Used pages                            = 16387840
Free pages                               = 0
High water mark (pages)       = 16387840
Page size (bytes)                   = 4096
Extent size (pages)                 = 32
Prefetch size (pages)              = 128
Number of containers             = 4
Minimum recovery time          =2009-06-26-04.47.15.000000
...
可以明显看到页数量已经接近了最大限制


pagesize大小的解决


连接数据库
db2 create bufferpool 缓冲池名 pagesize 16384(字节)
db2 alter bufferpool 缓冲池名 size 5000
db2stop force
db2start
db2 create large tablespace 表空间名 pagesize 16k managed by automatic storage bufferpool 缓冲池名

查询语句也有可能出现pagesize太小的情况,可以根据创建表空间一样的方法为数据库创建临时表空间。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值