DB2里面规定了在一个表空间里面的表,表里面最长的记录不能超过表空间的一个页的可用大小。以4K页大小的表空间为例,那就是一张表的最长记录不能超过4000个字节,当然有更加准确的数字,具体也要翻资料,这里只是想说明这个问题,就不深究准确数字了。
如果这个表有三行记录,第一行2000字节,第二行3000字节,第三行1000字节,按顺序插入。在4K页大小的表空间里面,按照EXTEND是2个页,插入第一行的时候,就分配了两页,第一行使用了第一页的前2000字节。第二行插入可能有两种情形,1)3000字节全部写入第二页,2)将前2000字节写入第一页,后1000页写入第二页。我觉得应该是1)的情形。如果第二行插入是1)的情形,第三行插入的时候,应该刚好使用第二页剩余的1000字节。最终就是第一页浪费了2000字节的空间。
这样的分析正确吗?请大家多多指正、交流。
如果这个表有三行记录,第一行2000字节,第二行3000字节,第三行1000字节,按顺序插入。在4K页大小的表空间里面,按照EXTEND是2个页,插入第一行的时候,就分配了两页,第一行使用了第一页的前2000字节。第二行插入可能有两种情形,1)3000字节全部写入第二页,2)将前2000字节写入第一页,后1000页写入第二页。我觉得应该是1)的情形。如果第二行插入是1)的情形,第三行插入的时候,应该刚好使用第二页剩余的1000字节。最终就是第一页浪费了2000字节的空间。
这样的分析正确吗?请大家多多指正、交流。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10990946/viewspace-693961/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10990946/viewspace-693961/