当表中的数据需要更新时,如果字段属于VARCHAR类型,那么就有可能造成OVERFLOW。
由于更新时,把字段最初的值更新成更大的值,这样就可能造成之前所在的数据页中溢出,这种情况下,
DB2
会在新的数据页存放该行数据,而之前的位置上保留一个指针,指向了数据所在的新的数据页中。
例如:
行数据
D1
,
D2
,
D3
在
4K
数据页
P1
中,行中有一列
VARCHAR(2048)
数据类型的
COL1
。三行数据的
COL1
初始值长度是
1360
。当对数据
D1
的
COL1
列数据长度更新到
1500
时,数据长度超出了
4K
,表示溢出。这时
D1
的数据被移到数据页
P2
中,而
D1
所在
P1
数据页的位置保留一个指针,指向
P2
中的数据页位置。