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

如何分析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太小的情况,可以根据创建表空间一样的方法为数据库创建临时表空间。

看完上述内容,你们掌握如何分析DB2数据库中pagesize和其对应寻址能力限制的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


当前题目:如何分析DB2数据库中pagesize和其对应寻址能力限制
文章地址:http://cdiso.cn/article/iespee.html

其他资讯