DB2表空间
https://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0902yuancg/
临时表空间的使用 (sorts or joins)
(1) 最好和大多数 数据表空间的页大小一致
(2) 批量和顺序的访问,就是说数据行被批量的写入和读取。所以较大的页大小会有利于性能,减少逻辑和物理io
平均行大小 小于 页大小除以255 (32k*1024/255 = 128byte)
最大255行可以存在于任何页,无论页大小是多少
15byte 在 4k页上会更好 (4k*1024/255 = 16byte) page size过大,会造成浪费
(3) 共享数据表空间的bufferpools
(4) reorg table 时,要有匹配的page size,才能使用临时表空间。直接在目标表的表空间重组,需要额外的空间
(5) 添加一个8K 页大小的临时表空间,并使用一个较大的bufferpool。 优化器通常会选择较大buffer的临时表空间
(6) 一般情况下,定义具有相同页大小的多个临时表空间没有什么好处
(7) 数据库错误
SQL1585N A system temporary table space with sufficient page size does not exist. SQLSTATE=54048
8K表空间 使用 4k 的临时表空间 报错
4k表空间 使用 4k 的临时表空间 某种情况 也会报错,如:
(select aa.* from yeyu.b1 aa,yeyu.b2 bb where aa.c1=bb.c1 order by aa.c1,bb.c1)
================================================================================================
1、表空间对应指定的容器的设备名及大小
2、分“系统管理表空间SMS”“数据库管理表空间DMS”
3、系统临时表空间用来存储分组、排序、连接、重组、创建索引操作。
4、用户临时表空间批量插入、批量删除、批量更新提高速度“declare global temporary table”声明临时表需要有临时表空间存在
5、查看表空间“db2 list tablespaces show detail”
6、默认自动创建三个表空间(SYSCATSPACE、TEMPSPACE1、USERSPACE1)“系统编目表空间SYSCATSPACE”和“系统临时表空间TEMPSPACE1”是只读的,不能在上面创建表
7、
8、查看表空间容器的情况,使用LIST TABLESPACE CONTAINERS命令,该命令将列出指定表空间中的所有容器。如上所示的路径指向容器物理上所在的位置
9、对于SMS表空间,我们只能增加容器,对于DMS表空间,可以添加、扩展、重新平衡、删除或减少容器,或者调整容器大小。要使用命令行来改变表空间,可使用ALTER TABLESPACE语句
10、通过将一个或多个容器添加至DMS表空间,可以增大该表空间的大小。增加容器后会平衡表空间数据,不影响读数据
11、SMS表空间,由系统分配,大小可变,物理上存储可能不连续。
12、DMS表空间,物理上连续,大小不可变(可增加容器增加大小)有增删改操作的数据适合用DMS表空间
13、小型个人数据库用SMS管理方便。数据不断变大的数据库最好用SMS作为系统临时和用户临时表空间,每个表用容器对应的DMS表空间管理,并对长字段数据,索引放在分别存放在不同的表空间
14、存储许多小表用SMS表空间。对数据量非常大的表可以使用单独的DMS表空间
15、例如,某些历史数据用户可以接受较长的查询时间,可以为历史记录表使用单独的一个表空间,并将次表空间分配给访问速率较低的较便宜的物理设备。 对于需要快速响应的频繁配置的参数表等,那么需要将这些表分配给一个快速物理设备的表空间中
16、通过使用DMS表空间,还可以将表数据分发在3个不同的表空间中:一个存储索引数据;一个存放大对象(LOB)和长字段(LF)数据;一个存储常规表数据。把索引放在最快的设备上
17、可以备份表空间,允许频繁备份有大量更改的表空间,或者偶尔备份有少量更改的表空间
18、表空间页大小限定行的最大长度和存储空间最大值
19、
20、OLTP(随机存取,例如银行交易),OLAP(大量读取,例如数据仓库)对于OLAP:PREFETCHSIZE=EXTENTSIZE*容器设备数,预存取大小指定为-1,PREFETCHSIZE设置为AUTOMATIC或-1
更多DB2表空间知识:https://www.cnblogs.com/heml/p/3368617.html