`
marb
  • 浏览: 422398 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

db2的表空间

阅读更多

表空间是数据库及存储在该数据库中的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。

使用表空间的一个明显的好处是能够把数据合理的分布存储在不同的磁盘上或者存储在磁盘的不同位置上,有助于提高数据存取的效率。

DB2 的表空间按管理方式分为两种:系统管理空间(System Management Space,SMS)和数据库管理空间(Database Management Space,DMS)。

按类型分为:规则表空间、大对象表空间、系统临时表空间、用户临时表空间。

规则表空间 中包含用户数据的表。默认用户表空间名为USERSPACE1,索引也存储在规则表空间中,另外系统目录表也放在规则表空间中。默认的系统目录表空间名为SYSCATSPACE。

临时表空间 分为系统临时表空间和用户临时表空间。


系统临时表空间 用来存储各种数据操作(排序、重组表、创建索引、连接表)中所需的内部临时数据,虽然可以创建任意多个系统临时表空间,但建议用户只使用大多数表所使用的页大小创建一个,默认系统临时表空间名为TEMPSPACE1。
用户临时表空间用来存储已说明全局临时表(已说明全局临时表存储的是应用程序临时数据)。用户临时表空间不是在数据库创建时默认创建的。

SMS每个容器是操作系统的文件空间中的一个[b]目录[/b];DMS每个容器是一个固定的、预分配的文件,或是物理设备。

SMS的管理比较简单,由操作系统自动管理,空间的大小随数据量的变化系统自动调整。

DMS是由数据库管理的,空间大小在创建时确定,空间不够时要手工添加或删除部分数据以释放空间。

大多数情况下,DMS的性能比SMS好。

用命令行方式创建SMS表空间的简单语法:
CREATE TABLESPACE ; MANAGED BY SYSTEM USING (';')

例一:在Windows上创建一个SMS表空间:
CREATE TABLESPACE RESOURCE MANAGED BY SYSTEM USING ('d:\acc_tbsp','e:\acc_tbsp','f:\acc_tbsp')
完成的结果为在D、E、F三个磁盘上创建了三个名称为acc_tbsp的文件夹,每个文件夹下面都有一个名为SQLTAG.NAM的文件。

例二:删除例一所创建的SMS表空间。
DROP TABLESPACE RESOURCE
运行完这条命令,相应的表空间会从DB2注册表中删除,但是磁盘上的三个文件夹仍然存在,需要手工删除。

用命令行方式创建DMS表空间的简单语法:
CREATE TABLESPACE ; MANAGED BY DATABASE USING (FILE ';' [img]http://bbs.chinaunix.net/images/smilies/icon_wink.gif[/img]
或者
CREATE TABLESPACE ; MANAGED BY DATABASE USING (DEVICE ';' [img]http://bbs.chinaunix.net/images/smilies/icon_wink.gif[/img]

例三:在Windows上创建一个DMS表空间,使用各自有5000页的两个文件容器:
CREATE TABLESPACE RESOURCE MANAGED BY DATABASE USING (FILE 'd:\db2data\acc_tbsp' 5000, FILE 'e:\db2data\acc_tbsp' 5000)
运行结果为:在D、E磁盘的db2data文件夹下面各创建了一个名为acc_tbsp的文件,大小都为20000K(默认情况下每页大小为4K)。

例四:在例三所创建的表空间中添加一个容器。
ALTER TABLESPACE RESOURCE ADD(FILE 'f:\db2data\acc_tbsp' 5000)
运行的结果为在RESOURCE表空间中包含了三个容器(文件):d:\db2data\acc_tbsp、 e:\db2data\acc_tbsp、 f:\db2data\acc_tbsp。

例五:用RESIZE子句更改例三所创建的表空间的容器的大小。
ALTER TABLESPACE RESOURCE RESIZE (file 'd:\db2data\acc_tbsp' 8000, file 'e:\db2data\acc_tbsp' 8000, file 'f:\db2data\acc_tbsp' 8000)
每个容器(文件)的大小变为8000页。把容器的容量变大不会出错,但是如果容器中的数据已经充满,再把容器的容量缩小,则会引起错误。

例六:用EXTEND子句更改例三所创建的表空间的容器的大小。
ALTER TABLESPACE RESOURCE EXTEND (file 'd:\db2data\acc_tbsp' 1000, file 'e:\db2data\acc_tbsp' 1000, file 'f:\db2data\acc_tbsp' 1000)
该命令的运行结果为在原有容量的基础之上,每个容器再增加1000页。

例七:删除例三中创建的DMS表空间。
DROP TABLESPACE RESOURCE
运行的结果为在DB2的注册表中把RESOURCE表空间删除,同时在磁盘上把相对应的文件夹和文件都一起自动删除。

例八:在UNIX上创建一个DMS表空间,使用各有10000页的3个逻辑卷:
CREATE TABLESPACE RESOURCE MANAGED BY DATABASE USING (DEVICE '/dev/rdblv6' 10000, DEVICE '/dev/rdblv7' 10000, DEVICE '/dev/rdblv8' 10000)
上面语句中提到的UNIX设备必须已经存在,且实例拥有者和SYSADM组必须能够写入它们。

SMS与DMS的对比
        特性                                SMS        DMS
能够在表空间中动态增加容器的数目吗                N        Y
能够把索引数据存放到不同表空间的表中吗                N        Y
能够把大对象数据存放到不同表空间的表中吗        N        Y
表可以分散存放到多个表空间中吗                        N        Y
仅在需要时才分配空间吗                        Y        N
表空间可以被放在不同的磁盘中吗                        Y        N
创建之后,区段大小能够改变吗                        N        N

例九:创建系统临时表空间。
CREATE SYSTEM TEMPORARY TABLESPACE tmp_tbsp MANAGED BY SYSTEM USING(‘d:\tmp_tbsp’,’e:\tmp_tbsp’)
系统临时表只能存储在系统临时表空间中,所以数据库必须始终至少有一个系统临时表空间。

例十:创建用户临时表空间。
CREATE USER TEMPORARY TABLESPACE usr_tbsp MANAGED BY DATABASE USING(FILE ‘d:\db2data\user_tbsp’ 5000, FILE ‘e:\db2data\user_tbsp’ 5000)
用户临时表空间用于存储已说明的临时表(用 DECLARE GLOBAL TEMPORARY TABLE 语句定义)

例十一:用RENAME语句给表空间重命名
RENAME TABLESPACE RESOURCE TO RES1
用该语句给表空间重命名之后,将自动更改所有引用该表空间的目录记录,所以无须关心该表空间中的个别对象。

例十二:在RESOURCE表空间中创建一张名为T1的表
CREATE TABLE T1(ABC  INT) IN RESOURCE

分享到:
评论

相关推荐

    db2表空间不足及处理.doc

    DB2表空间不足及处理 DB2表空间是数据库管理系统中用于存储数据的基本结构单元。DB2表空间不足可能会导致数据库性能下降,甚至崩溃。因此, DB2表空间的检查和处理是数据库管理员的重要任务之一。 一、DB2表空间的...

    db2表空间不足及处理

    "DB2表空间不足及处理" DB2表空间不足是指数据库中可用空间不足,以致影响数据库的正常运行。在本文中,我们将介绍如何检查DB2表空间是否不足,以及如何处理这种情况。 什么是DB2表空间? 在DB2中,表空间是指...

    DB2表空间管理

    ### DB2表空间管理 在DB2数据库管理系统中,表空间是存储数据的基本单位。根据管理方式的不同,DB2中的表空间主要分为两种类型:系统管理空间(System Management Space, SMS)与数据库管理空间(Database Management ...

    db2表空间详解

    ### DB2表空间详解 #### 一、表空间概述 在DB2中,表空间是连接物理存储设备与逻辑对象(如表)的关键组件,它为数据库中的数据提供存储环境。表空间的设计与管理对数据库性能有着直接的影响,合理规划表空间能够...

    DB2表空间检查与调优.pdf

    ### DB2表空间检查与调优 #### 一、引言 在许多现代的应用系统中,数据存储成为了关键的一部分,而数据库的选择对于整个系统的稳定性和性能有着决定性的影响。DB2作为IBM公司的一款关系型数据库管理系统,因其强大...

    db2裸设备扩容表空间

    本篇文章将详细介绍如何在AIX操作系统上对DB2的裸设备进行扩容,以及涉及的表空间扩展过程。 首先,我们需要理解表空间在DB2中的作用。表空间是DB2数据库中逻辑存储的容器,用于组织和管理数据库对象如表、索引等。...

    IBM DB2 表空间与缓冲池

    IBM DB2 表空间与缓冲池IBM DB2 表空间与缓冲池IBM DB2 表空间与缓冲池IBM DB2 表空间与缓冲池IBM DB2 表空间与缓冲池

    DB2表和表空间状态详解

    ### DB2表和表空间状态详解 #### 引言 IBM DB2 Universal Database(DB2 UDB)作为一款先进的数据库管理系统,提供了丰富的功能以确保数据的完整性和安全性。其中一个关键特性便是通过表和表空间的状态控制,实现...

    DB2表空间管理及查看脚本

    ### DB2表空间管理及查看脚本解析 #### 核心知识点概述 本文将深入解析一个专门用于管理DB2数据库中表空间的脚本。该脚本的主要功能是监测特定表空间(例如“TBS_DW_USER”)的使用情况,并在达到预定阈值时自动...

    如何降低DB2的管理表空间的高水位标记

    对于DB2数据库管理(DMS)表空间的高水位标记(HWM)是指该表空间曾经使用到的最大数据页数。如果使用:db2 list tablespaces show detail,看到某个DMS表空间的已用页数低于高水位标记,则有可能通过如下方法降低高...

    重置DB2表空间静默状态的正确方法

    在重置DB2表空间静默状态时,经常会遇到一些问题,下面教您重置DB2表空间静默状态的正确方法,希望可以解决您遇到的问题。  正确的重置DB2表空间静默状态的方法:  导致上述问题的原因是由于进行重置操作的...

    DB2不允许访问表空间

    ### DB2 不允许访问表空间问题解析 #### 一、问题背景及现象 在使用IBM DB2数据库管理系统的过程中,有时可能会遇到无法访问特定表空间的情况。这种情况下,用户可能能够执行SELECT查询,但无法进行UPDATE、ALTER...

    DB2的表空间 DB2的表空间

    DB2的表空间 DB2的表空间 DB2的表空间 DB2的表空间

    db2表space管理.doc

    DB2表空间管理是数据库管理员在使用DB2数据库系统时必须掌握的重要概念。表空间是数据库内部管理和组织数据的一种逻辑结构,它将数据库中的表和相关的存储元素分隔开,以便于更有效地管理和优化数据存储。 表空间在...

    DB2系统临时表空间过大引发的性能问题-contracted.doc

    DB2系统临时表空间过大可能引发严重的性能问题,这在实际操作中表现为SQL语句执行时间显著增加。本文以某银行的DB2数据库系统为例,深入探讨了如何诊断和解决此类问题。 首先,当遇到系统响应变慢、ACTIVE SESSION...

    DB2的表空间和缓冲池

    ### DB2的表空间和缓冲池 #### 一、表空间概述 在DB2数据库管理系统中,表空间是用于组织和存储数据的基本单位。表空间的设计与优化对提高数据库性能至关重要。按照不同的用途和管理方式,DB2中的表空间可以分为五...

    DB2基础----表空间

    在DB2中,表空间(Tablespace)是数据存储的基本单位,它将物理磁盘上的存储资源组织起来,为数据库对象(如表、索引等)提供逻辑存储空间。本篇文章将深入探讨DB2中的表空间概念、类型、创建以及管理方法。 一、表...

    DB2恢复删除表学习

    在IBM DB2数据库管理系统中,为了应对误删表的情况,DB2提供了表空间级别的表恢复功能。这种功能允许用户在一定条件下恢复已被删除的表及其数据。默认情况下,在创建表空间时会开启已删除表的恢复选项。然而,出于...

Global site tag (gtag.js) - Google Analytics