DB2学习笔记 - 表空间

表空间的学习笔记。

[@more@]

CREATE TABLESPACE
create tablespace语句给数据库定义了一个新的表空间,分配container给tablespace。
表空间的定义和属性保存在catalog。

有2种不同的方式管理表空间
1. 系统管理的表空间(SMS)
可以使用到系统的IO缓存。
不能从SMS表空间删除container。
在SMS表空间内,每个container就是一个目录。
如果一个表空间由多个容器创建,那么db2将均衡写入到各个容器的数据量。
所有表数据和索引都共享同一个表空间。
文件大小有可能动态增长,其大小上限由容器数量、操作系统在文件大小方面的限制,以及
操作系统在单个文件大小的方卖的限制所决定。
当单个容器中的空间满了之后,系统就认为该表空间已满,即使其他容器中还有空间。
可以将新容器添加到还没有任何容器的分区上的SMS中。


2. 数据库管理的表空间(DMS)
container是文件或者设别。
可以动态添加或者删除container
可以自动均衡数据
可以动态扩展、减少容器的数量或者调整其大小。
表空间容量只受物理存储器限制


表空间类型分为
1. regular
常规表空间保存表数据和索引。它还可以保存诸如大对象之类的长数据,除非这些数据显式地存储在长表空间中。
每个数据库中必须至少有一个常规表空间。创建数据库时指定该表空间的缺省名为 USERSPACE1。
2. large
V8和V9的large类型有很大的不同
v8: 用来专门存放大对象的表空间
v9: 和regular唯一的不同是 regular 表空间的最大空间是64G(pagesize为4K),large表空间的最大容量是2T(pagesize为4K)
3. system temporary
系统临时表空间用于存储 SQL 操作(比如排序、重组表、创建索引和连接表)期间所需的内部临时数据。
每个数据库必须至少有一个系统临时表空间。随数据库创建的系统临时表空间的缺省名为 TEMPSPACE1。
4. user temporary
用户临时表空间存储已声明的全局临时表。创建数据库时不存在用户临时表空间。
至少应当创建一个用户临时表空间以允许定义已声明的临时表。用户临时表空间是可选的,缺省情况下一个都不创建


页大小(Page size)
定义表空间所使用的页大小。所支持的大小为 4K、8K、16K 和 32K。页大小根据下表限定了可放到表空间中的表的行长度和列数:
表 1.
页大小 行大小限制 列数限制 最大容量
4 KB 4 005 500 64 GB
8 KB 8 101 1 012 128 GB
16 KB 16 293 1 012 256 GB
32 KB 32 677 1 012 512 GB
表空间最多可包含 16384 个页,因此选择较大的页大小可以增加表空间的容量。

扩展块大小(Extent size)
指定在跳到下一个容器之前将写到当前容器中的页数。
存储数据时数据库管理器反复循环使用所有容器。
该参数只有在表空间中有多个容器时才起作用。
预取大小(Prefetch size)
指定当执行数据预取时将从表空间读取的页数。
预取操作在查询引用所需的数据之前读入这些数据,这样一来查询就不必等待执行 I/O 了。
当数据库管理器确定顺序 I/O 是适当的,并且确定预取操作可能有助于提高性能时,它就选择预取操作。
比较好的做法是将 PREFETCHSIZE 值显式地设置成表空间的 EXTENTSIZE 值与表空间容器数的乘积的倍数。
开销(Overhead)和传送速率(Transfer rate)
这些值用于确定查询优化期间的 I/O 成本。
这两个值的测量单位都是毫秒,而且它们应当分别是所有容器开销和传送速率的平均值。
开销是与 I/O 控制器活动、磁盘寻道时间和旋转延迟时间相关联的时间。
传送速率是将一个页读入内存所必需的时间量。它们的缺省值分别是 24.1 和 0.9。可以根据硬件规格计算这些值。

通常应该将目录表空间和系统临时表空间作为 SMS 分配。
没有必要拥有多个具有相同页大小的临时表空间,通常只需一个具有最大页大小的临时表空间就够了。
一个页上的行不能超过 255 个,因此具有较短行的表不能利用整个页。
如果表很大,如果通常是顺序访问大量行(该表可能进行了群集),那么比较大的页大小会比较有效。
如果随机访问行,那么较小的页大小可以允许 DB2 更好地利用缓冲区,因为同样的存储区域可以容纳更多页。
RAID 设备有它们自己的特殊考虑。
EXTENTSIZE 应该等于 RAID 条带大小或者是它的倍数。
PREFETCHSIZE 应该等于 RAID 条带大小乘以 RAID 并行设备数(或者等于该乘积的倍数),这个值应该是 EXTENTSIZE 的倍数。

相关系统表:
SYSCAT.TABLESPACES

相关命令:
list tablespaces
list tablespace containers for [tablespace id]

相关参数:
DB2_PARALLEL_IO 可以在一个容器中启用 I/O 并行性:
DB2_STRIPED_CONTAINERS=ON 可以将容器标记大小从一个页更改成整个扩展块,因此就能使表空间扩展块和 RAID 条带一致。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/133835/viewspace-897320/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/133835/viewspace-897320/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值