为DB2数据库创建表空间
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
为 DB2 数据库创建表空间
2007-10-29 13:02:55 来源: 来源 WebjxCom 提示:DB2 数据库中的表空间(tablespace) 是一个逻辑层,一些 数据库对象(比如表、视图和索引)驻留在这里。一个数据库可以有多个表空 间。在首次创建数据库时,DB2 会自动地创建一组表空间。 DB2 数据库中的表空间(tablespace) 是一个逻辑层,一些数据库对象(比如 表、视图和索引)驻留在这里。一个数据库可以有多个表空间。在首次创建数据 库时,DB2 会自动地创建一组表空间。 在 Control Center 中,展开 HELLOWLD 并点击 Table Spaces。应该会在 Control Center 右边的窗口中看到三个表空间,如图 7 所示: 图 7. Control Center Table Spaces 视图
这些表空间是 DB2 在创建数据库 HWLD 时创建的。SYSCATSPACE 和 TEMPSPACE1 都是系统表空间,不能删除或重新创建它们。SYSCATSPACE 是系统 编目表空间,用来存储关于数据库的元信息。TEMPSPACE1 在某些数据库操作期 间用来存储临时结果。USERSPACE1 是默认的用户表空间,用来存储表、视图和
索引等用户数据。任何具有足够权力的 DB2 用户都可以删除和重新创建 USERSPACE1 或者创建其他用户表空间。 SMS 或 DMS 表空间 在创建表空间时,可以选择表空间是 SMS 表空间还是 DMS 表空间。SMS 代 表 System Managed Space,DMS 代表 Database Managed Space。在 SMS 表空 间中,空间由操作系统的文件系统管理,会根据需要分配空间。SMS 表空间需要 的初始设置比较少,管理方面需要考虑的因素少,而且一般更容易创建和使用, 因为空间会在需要时自动地分配。在 DMS 表空间中,空间由 DB2 管理。DMS 表 空间需要在创建时预先分配空间,所以需要进行比较多的初始设置工作,管理方 面也有更多需要考虑的因素。但是,它为用户提供了更大的灵活性,可以更好地 控 制数据的布局并改进数据访问的性能。在一般情况下,经过良好设计和调优 的 DMS 表空间可以提供比相似的 SMS 表空间更好的性能。 在 Table Spaces 视图中,点击每个表空间。查看在右下方的窗口中显示的 详细信息。SYSCATSPACE 和 USERSPACE1 都是 DMS 表空间,TEMPSPACE1 是 SMS 表空间。您还可以创建自己的表空间。 缓冲池 缓冲池(bufferpool) 是一个内存块的集合,这些内存块采用页面的形式。 在首次创建数据库时,同时创建了一个默认的缓冲池 IBMDEFAULTBP。可以在创 建表空间时,或者在 Buffer Pools 视图中使用 Create New Bufferpool 向导, 创建新的缓冲池。 缓冲池最重要的作用是,在数据库读写硬盘上 的数据时帮助减少 I/O 开 销。 这是通过 I/O 预获取和页面清理器实现的。 预获取能够减少读取页面的 I/O 开销,其原理是:预先判断特定查询可能需要的页面,然后将这些页面读入缓冲 池,因此当查询需要它们时,它们已经准备好了。页面清理器确保将事务不再需 要的 已经更新的页面首先写到硬盘上,然后从缓冲池中清除它们。这确保缓冲 池中有足够的干净空间可以读取页面。 DB2 支持不同的页面大小: 4K、 16K 和 32K。 2K、 8K、 IBMDEFAULTBP 使用 4K 的页面大小。如果希望创建采用其他页面大小的表空间,那么首先要确保数据库 中有采用这种页面大小的缓冲池。多个表空间可以使用同一个缓冲池。在创建或 更改表空间时,可以指定要使用哪个缓冲池。选择和创建适当的缓冲池对于数据 库性能很重要。可以根据需要创建新的缓冲池或更改现有的缓冲池。 在 Control Center 中,点击 Buffer Pools。可以看到数据库中的所有缓 冲池。选择创建新的缓冲池或更改现有的缓冲池。 图 8. Control Center Bufferpool 视图
DB2 系统目录表和视图 在创建新数据库时,DB2 会在编目表空间中创建多个系统编目表和视图。这 访问 些系统编目表和视图用来跟踪数据库管理程序需要知道的关于数据库对象、 控制信息和工具的重要信息。系统编目视图基于基本系统编目表。用户在一般情 况下通过查询系统编目视图来查看感兴趣的系统编目表数据。 在 Control Center 中,在 All Database 视图下面,展开 HELLOWLD,然 后选择 Table Spaces。选择右上窗口中显示的 SYSCATSPACE。可以在右下窗口 中看到这个表空间的概况: 图 9. Control Center —— Tablespaces 视图
点击 Show Related Objects。会出现一个新页面,其中显示表空间 SYSCATSPACE 中的所有表和索引,以及它们的模式 SYSIBM。点击 Indexes,列 出 SYSCATSPACE 中的所有索引。Show SQL 显示用来获得这个表空间中的表或索 引列表的 select 命令。 表、索引、模式和视图都是重要的 DB2 对象,本教程后面都会详细讨论。但 是,首先试试手工创建表空间: 1. 在 Control Center 中点击 Create New Tablespace,启动 Create Table Space 向导。输入 TBSP_DATA1 作为表空间名,在 comment 中输入 DMS tablespace to hold data。 2. 选择 Regular 来选择要使用的表空间类型并点击 Next。出现 Specify a buffer pool 面板,在这里选择这个表空间要使用的缓冲池。 3. 使用默认的 IBM 缓冲池, 但是也可以使用 Create 按钮创建新的缓冲池。 点击 Next。 图 10. 创建新的表空间 —— 指定缓冲池
4. 这个面板允许指定表空间是由数据库管理(DMS),还是由系统管理 (SMS)。选择 Database-managed space (high performance)。点击 Next。 Containers 页面出现。 5. 在 Containers 页面上,可以指定容器的数量。容器(Container) 可以 是存储表空间数据的目录、文件或设备。可以为每个表空间创建多个容器,而且 在创建表空间之后,可以删除现有的容器或添加更多的容器。点击 Add,Define Container 页面出现,可以在这里为新的表空间定义容器。