DB2表空间管理

数据库
DB2数据库中,可以用两种不同的方式管理DB2表空间,下文对这两种方法进行详细的介绍说明,如果您感兴趣的话,不妨一看。

DB2表空间应该如何管理呢?这是很多人都提到过的问题,在解决这个问题之前,先让我们了解一下什么是DB2表空间:

DB2表空间

数据库中的所有数据都存储在许多表空间中。可以认为表空间是孩子而数据库是其父母,其中表空间(孩子)不能有多个数据库(父母)。由于表空间有不同用途,因此根据它们的用途和管理方式将它们分类。根据用途有五种不同的表空间:

目录表空间
每个数据库只有一个目录表空间,它是在发出 CREATE DATABASE 命令时创建的。目录表空间被 DB2 命名为 SYSCATSPACE,它保存了系统目录表。每当创建数据库时,都会创建这个表空间。
常规表空间
常规表空间保存所有***的数据,包括常规的表和索引。它还可以保存诸如 LOB(Large Object)之类的长数据,除非这些数据显式地存储在长表空间中。如果某些表空间是用于非分区表的数据库管理的空间(Database Managed Space,DMS)或者用于分区表的系统管理的空间,则可以将表及其索引分别放到单独的常规表空间中。我们将在 表空间管理 小节描述 DMS 和 SMS。目录表空间是常规表空间的一个例子。缺省情况下,目录表空间是数据库创建期间所创建的***一个常规表空间。
长表空间
长表空间像常规表空间一样存储***数据,包括 LOB。这种表空间必须是 DMS,这也是默认类型。长表空间中创建的表比常规表空间中的表大。大型表可支持每个数据页超过 255 行,从而提高数据页上的空间利用率。当创建数据库时,DB2 创建一个名为 USERSPACE1 的长表空间。
系统临时表空间
系统临时表空间用于存储 SQL 操作(比如排序、重组表、创建索引和连接表)期间所需的内部临时数据。每个数据库必须至少有一个系统临时表空间。随数据库创建的缺省系统临时表空间名为 TEMPSPACE1。
用户临时表空间
用户临时表空间存储已声明的全局临时表。创建数据库时不存在用户临时表空间。至少应当创建一个用户临时表空间,以允许定义已声明的临时表。用户临时表空间是可选的,缺省情况下不创建。

DB2表空间管理

可以用两种不同的方式管理DB2表空间:

系统管理的空间(SMS)
操作系统管理 SMS 表空间。容器被定义成常规操作系统文件,并且是通过操作系统调用访问的。这意味着以下任务全部由常规操作系统功能来处理:
I/O 缓冲
根据操作系统惯例分配空间
必要时自动扩展表空间
但是,不能从 SMS 表空间删除容器,并且仅限于将新的容器添加到分区的数据库。前一节中所说明的那三个缺省表空间都是 SMS。

数据库管理的空间(DMS)
DMS 表空间是由 DB2 管理的。可以将容器定义成文件(在创建表空间时将把给定的大小全部分配给它们)或设备。分配方法和操作系统允许多少 I/O,DB2 就可以管理多少 I/O。可以通过使用 ALTER TABLESPACE 命令来扩展容器。还可以释放未使用的那部分 DMS 容器(从 V8 开始)。 
 
 

 

【编辑推荐】

DB2管理页大小的限制

DB2环境变量管理的策略选择

几个简单的DB2操作语句

DB2隔离级别之读稳定性

DB2隔离级别--可重复读

 

责任编辑:段燃 来源: 互联网
相关推荐

2010-09-30 11:55:03

DB2表空间

2010-09-01 14:46:16

DB2表空间

2010-11-01 16:07:22

DB2表空间

2010-11-01 11:13:57

DB2表管理

2010-11-01 16:38:13

DB2表空间

2010-11-02 14:45:12

DB2创建表空间

2010-11-01 16:44:43

DB2表空间

2010-08-31 17:14:24

DB2表空间

2010-11-03 11:26:39

DB2表空间

2010-09-01 14:00:01

DB2表空间

2010-11-01 16:54:09

DB2表空间

2010-11-03 11:30:56

DB2表空间扩容

2010-11-03 15:49:32

DB2删除表

2010-09-30 10:04:06

DB2创建表空间

2010-09-30 09:53:05

DB2创建表空间

2010-11-01 16:19:18

2010-09-30 11:26:26

DB2表空间

2010-08-09 15:15:48

DB2管理表空间

2009-06-11 10:07:17

DB2 DART

2010-09-01 14:07:33

DB2映射
点赞
收藏

51CTO技术栈公众号