Prayer

在一般中寻求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

DB2中的存储(空间)计算

Posted on 2009-07-31 13:41 Prayer 阅读(597) 评论(0)  编辑 收藏 引用 所属分类: DB2

1、数据库对象大小评估
可以使用db2cc中的“Estimate Size”功能,预估一个对象消耗的空间范围(最小值和最大值)
2、系统catalog空间大小
初始值大约3.5M,如果创建了DMS表空间,大概为20M。
3、用户表数据空间大小:
1)一行数据不能跨越多个数据页,建立在4K页大小的表格最大可以有500个列;
When the page size is 4 KB, the row length can be up to 4005 bytes.
When the page size is 8 KB, the row length can be up to 8101 bytes.
When the page size is 16 KB, the row length can be up to 16 293 bytes.
When the page size is 32 KB, the row length can be up to 32 677 bytes.
2)数据页不含有LONG VARCHAR, LONG VARGRAPHIC, BLOB, CLOB, or DBCLOB类型的数据,只含有数据描述;
3)插入新数据规则
在常规表插入新数据时,通常根据free map选择合适的空间存放新行,可以使用命令ALTER TABLE tabname APPEND ON,要求插入数据存储为追加模式;
如果表格上有聚集索引,根据cluster key对应的数据页插入新行
3、索引数据空间大小:
(average index key size + 9) * number of rows * 2
4、日志文件空间大小:
(logprimary + logsecond) * (logfilsiz + 2 ) * 4096
如果logsecond值为-1,表示激活的日志空间不受限制

容器和条带关系
——————————-container——————
——————-0—————1————–2——-
———0——Extent0———Extent1——–Extent2—-
———1——Extent3———Extent4——–Extent5—-
Stripes–2——Extent6———Extent7——–Extent8—-
———3——Extent9———Extent10——-Extent11—
———4——Extent12——–Extent13——-Extent14—
———5——Extent15——–Extent16——-Extent17—
纵坐标是container,横坐标是Stripes

如果添加或删除container,数据就可能发生rebalance;
rebalance期间,数据可以正常访问和操作,但数据库表现非常慢;
增加或扩充的container,如果被增加的空间在high-water mark上面,就不会发生rebalance,譬如:原表空间有几个相同大小的容器,如果你对它们扩充相同的空间,就不会发生rebalance,或者给 表空间增加新容器时指定特别选项BEGIN NEW STRIPE SET,使数据不发生rebalance,新增的数据不会添加到原来的容器中,都将写入新容器


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理