问题:1. 表空间的高水位是不是只增不降
2. 若表空间的高水位能降,那是自动下来还是人工干预
实验环境:
DB2/HPUX-IA64 9.7.2
设计实验:
1.
创建表空间TS1
create bufferpool yan_buffer4k size 100
pagesize 4 k
create tablespace ts1
pagesize 4 k MANAGED BY database USING ( file
'/lddata/data4k1.txt' 5000)
BUFFERPOOL yan_buffer4k
2.
创建表TB1
create table TB1
( id char(254),
name char(254),
sex char(254),
addr char(254),
seri char(254),
node char(254),
acct_no char(254),
log1 char(254),
regiid char(254),
prod1 char(254),
prod2 char(254),
prod3 char(254),
prod4 char(254)
) in ts1
3.
创建表TB2
create table TB2
( id char(254),
name char(254),
sex char(254),
addr char(254),
seri char(254),
node char(254),
acct_no char(254),
log1 char(254),
regiid char(254),
prod1 char(254),
prod2 char(254),
prod3 char(254),
prod4 char(254)
) in ts1
4.
List tablespaces show
detail
http://s4/mw690/af56c556gx6CUiznBLl43&690关于表空间高水位(High water mark)的调整" TITLE="DB2 关于表空间高水位(High water mark)的调整" />
注:表空间创建后自动占96个pages,创建一张表自动分配了64pages(即2个EXTENT),
即96+64(TB1)+64(TB2)=224pages
5.
如图可知High water mark(pages)(高水位)与Used pages相等
6.
DROP TABLE TB2
7.
查看表空间
http://s16/mw690/af56c556gx6CUiCYtlldf&690关于表空间高水位(High water mark)的调整" TITLE="DB2 关于表空间高水位(High water mark)的调整" />
8.
如图看出删除表TB2的高水位往下降(注意:是删除表TB2,而不是TB1)
9.
再建表TB2
create table TB2
( id char(254),
name char(254),
sex char(254),
addr char(254),
seri char(254),
node char(254),
acct_no char(254),
log1 char(254),
regiid char(254),
prod1 char(254),
prod2 char(254),
prod3 char(254),
prod4 char(254)
) in ts1
注:再把TB2建回去是为了让高水位重新回到224
10. DROP TABLE TB1
11. 查看表空间
http://s10/mw690/af56c556gx6CUiGrx3Pf9&690关于表空间高水位(High water mark)的调整" TITLE="DB2 关于表空间高水位(High water mark)的调整" />
12. 如图可知高水位没有降,而Used
pages下降了(注意:是删除表TB1,而不是TB2)
13. REORG TABLE TB2
14. 查看表空间
http://s5/mw690/af56c556gx6CUiK1Srq14&690关于表空间高水位(High water mark)的调整" TITLE="DB2 关于表空间高水位(High water mark)的调整" />
注:虽然删除表TB1没有降高水位,但REORG表TB2高水位下降了
15. 创建表
create table TB3
(id char(254),
name char(254),
sex char(254),
addr char(254),
seri char(254),
node char(254),
acct_no char(254),
log1 char(254),
regiid char(254),
prod1 char(254),
prod2 char(254),
prod3 char(254),
prod4 char(254)
) in ts1
16. 插入记录到表TB3
Insert into TB3
(id) values('1')
注:插入64次使得该表占用了4个EXTENT(128pages),大于TB1申请的64pages
17. 查看表空间
http://s15/mw690/af56c556gx6CUiMvG6aee&690关于表空间高水位(High water mark)的调整" TITLE="DB2 关于表空间高水位(High water mark)的调整" />
18. 第14步的高水位及Used
pages都是160pages,在第16步之后增长了128pages变成288pages
19. DROP TABLE TB2
20. 查看表空间
http://s5/mw690/af56c556gx6CUiOU776f4&690关于表空间高水位(High water mark)的调整" TITLE="DB2 关于表空间高水位(High water mark)的调整" />
21. REORG
TABLE TB3
22. 查看表空间
http://s1/mw690/af56c556gx6CUiRjiRqb0&690关于表空间高水位(High water mark)的调整" TITLE="DB2 关于表空间高水位(High water mark)的调整" />
注:
由20和22发现第二次重组表后高水位上涨,上涨到352pages(即比原来高了
128pages,也就是此表占用的pages,可能就是reorg是使用复制的方式造成的,关
与reorg的实现机制请接下一篇博客)
结论:
1.
表空间会自动增降,且与高水位相邻的表被DROP后高水位降。
2.
REORG会降高水位(前提:重组表重组后占用的PAGE数小于高水位以下空闲的PAGE数)
谨记:做这个试验时请注意表建表及DROP表的先后顺序,否则与此试验得出的结果不符。
加载中,请稍候......