签到成功

知道了

CNDBA社区CNDBA社区

关于DB2 表空间高水位(High water mark)的调整

2021-10-01 17:22 1514 0 原创 DB2
作者: hbhe0316
  1. 表空间的高水位是不是只增不降
  2. 若表空间的高水位能降,那是自动下来还是人工干预

实验环境DB2 10.5.0.1

1.创建bufferPool和表空间

db2 "create bufferpool hbhe_buffer4k size 100 pagesize 4k"
db2 "create tablespace ts1 pagesize 4k MANAGED BY database USING ( file '/db2data/testdb/data/data4k1' 5000) BUFFERPOOL hbhe_buffer4k"

2.创建tb1表和tb2表

db2 "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"
db2 "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"

3查看表空间状态http://www.cndba.cn/hbhe0316/article/4804

db2 list tablespaces show detail

http://www.cndba.cn/hbhe0316/article/4804

http://www.cndba.cn/hbhe0316/article/4804

表空间创建后自动占96个pages,创建一张表自动分配了64pages(即2个EXTENT),
即96+64(TB1)+64(TB2)=224pages
如上图,可见:High water mark (pages)和Used pages相等。

4.删除TB2表

http://www.cndba.cn/hbhe0316/article/4804

db2 drop table tb2

5.查看表空间

db2 list tablespaces show detail

可以看到,High water mark (pages)和Used pages都下降且是相等的。http://www.cndba.cn/hbhe0316/article/4804

6.再次创建tb2表,可以看到High water mark (pages)和Used pages都上涨至224。

db2 "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"

7.删除TB1,可以看到Used pages下降了,但是High water mark (pages)未下降。此时,产生高水位。

db2 drop table tb1

8.reorg表,使得高水位下降

db2 reorg table tb2


可以看到高水位下降了。http://www.cndba.cn/hbhe0316/article/4804http://www.cndba.cn/hbhe0316/article/4804

9.创建表tb3http://www.cndba.cn/hbhe0316/article/4804

db2 "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"

插入64次,insert into TB3 (id) values(‘1’),在Linux/Unix中,最小的块是512字节,一个字段为254,每个EXTENT是32PAGES。
注:插入64次使得该表占用了4个EXTENT(128pages),大于TB1申请的64pageshttp://www.cndba.cn/hbhe0316/article/4804

删除tb2

db2 drop table tb2

db2 "reorg table tb3"

发现高水位反而升高了,升高了tb2表所占的空间大小。
http://www.cndba.cn/hbhe0316/article/4804

  1. 表空间会自动增降,且与高水位相邻的表被DROP后高水位降。
  2. REORG会降高水位(前提:重组表重组后占用的PAGE数小于高水位以下空闲的PAGE数)

版权声明:本文为博主原创文章,未经博主允许不得转载。

oracle,linux

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
hbhe0316

hbhe0316

关注

1.只有承认无知,才能装下新的东西; 2.进步来自一点点滴滴的积累; 3.广博让你更优秀,而专业让你无法替代; 4.挫折和失败能够转换为一种财富。

  • 889
    原创
  • 1
    翻译
  • 13
    转载
  • 24
    评论
  • 访问:2646605次
  • 积分:1523
  • 等级:核心会员
  • 排名:第6名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ