摘要: 当表中的数据需要更新时,如果字段属于VARCHAR类型,那么就有可能造成OVERFLOW。由于更新时,把字段最初的值更新成更大的值,这样就可能造成之前所在的数据页中溢出,这种情况下,DB2会在新的数据页存放该行数据,而之前的位置上保留一个指针,指向了数据所在的新的数据页中。例如:行数据D1,D2,D3在4K数据页P1中,行中有一列VARCHAR(2048)数据类型的COL1。三行数据的COL1初始值长度是1360。当对数据D1的COL1列数据长度更新到1500时,数据长度超出了4K,表示溢出。这时D1的数据被移到数据页P2中,而D1所在P1数据页的位置保留一个指针,指向P2中的数据页位置。 阅读全文
posted @ 2013-03-17 17:08 柱星同学 阅读(1276) 评论(0) 推荐(0) 编辑
摘要: 根据sql错误码,提示去检查系统设置内存是否过大或者shmmax过小(内核内存)如果是由于内存参数设置过大导致,也可以通过以下方法解决:#可以通过调整以下参数进行限制整个系统的内存使用情况,单位为4kdb2setDB2_OVERRIDE_BPF=16IBM官方解释:DB2_OVERRIDE_BPF• 操作系统:所有操作系统• 缺省值 = 未设置,值:正数页数或 <entry>[;<entry>…],其中 <entry>=<buffer pool ID>,<number of pages>• 此变量以页为单位指定在激活数据库、前滚恢复或 阅读全文
posted @ 2013-03-09 23:04 柱星同学 阅读(864) 评论(0) 推荐(0) 编辑
摘要: 草草写了一篇所学习到的一些DB2技术和经验的日志,当然这些只是其中小部分.会继续分享的----------------------------------------表设计时需要注意的: 1.默认值create table tbname(col1 int not nullwith default 1)或者create table tbname(col1 int not nulldefault 1)使用了该默认值可以 2.Char和varchar字段数据类型尽量使用char来代替字符,char类型性能稍比varchar好点。因为varchar是变长类型,所以是先读取数据长度再读取数据,分了两个步 阅读全文
posted @ 2011-04-07 23:17 柱星同学 阅读(474) 评论(0) 推荐(0) 编辑