日期:2014-05-16 浏览次数:20660 次
David Kline, DB2? Vendor Enablement, PartnerWorld? for Developers, IBM?开发人员技术支持(Developer Technical Support,DTS)中心 — 达拉斯
Gabor Wieser, DB2? Vendor Enablement, PartnerWorld? for Developers, IBM?开发人员技术支持(Developer Technical Support,DTS)中心 — 达拉斯
2003 年 10 月 01 日
本文帮助新的 DB2 DBA 理解表空间和缓冲池的重要性,并说明对它们进行正确的设计和调优如何能提高数据库性能。
本文专为 IBM DB2 Universal Database? for Linux、UNIX? 和 Windows? 而撰写
简介
对于刚涉足 DB2 领域的 DBA 或未来的 DBA 而言,新数据库的设计和性能选择可能会很令人困惑。在本文中,我们将讨论 DBA 要做出重要选择的两个方面:表空间和缓冲池。表空间和缓冲池的设计和调优会对 DB2 服务器的性能产生深远的影响,因此我们将着重讨论这些活动。
在我们的示例中,我们将使用 DB2 V8.1 企业服务器版。大多数示例也适用于低级版本。我们会让您知道某个示例是否只适用于 V8.1。
在 第 1 节中,我们将从定义表空间的类型开始,并将说明 DB2 如何将数据存储在表空间中。我们将介绍配置选项并向您介绍创建和管理表空间的整个过程。接下来,我们将着重讨论 缓冲池,介绍缓冲池是什么以及如何创建和使用它。在 第 2 节中,我们将结合这两个方面并讨论该如何组织缓冲池和表空间才能获得最佳性能。
第 1 节:定义
表空间
数据库中的所有数据都存储在许多表空间中。可以认为表空间是孩子而数据库是其父母,其中表空间(孩子)不能有多个数据库(父母)。由于表空间有不同用途,因此根据它们的用途和管理方式将它们分类。根据用途有五种不同的表空间:
表空间管理
可以用两种不同的方式管理表空间:
下面是一个示例,向您说明该如何增大容器大小(V7 和 V8 都支持此功能):
ALTER TABLESPACE TS1 RESIZE (FILE '/conts/cont0' 2000, DEVICE '/dev/rcont1' 2000, FILE 'cont2' 2000)
请注意,只有 V8 才支持将原始容器的大小调整得更小。
如何创建和查看表空间
当您创建数据库时,将创建三个表空间(SYSCATSPACE、TEMPSPACE1 和 USERSPACE1)。通过使用 DB2 命令窗口(Command Window)或 UNIX 命令行,创建一个名为 testdb 的数据库,连接至该数据库,然后列出表空间:
CREATE DATABASE testdb CONNECT TO testdb LIST TABLESPACES
下面的 清单 1显示了 LIST TABLESPACES 命令的输出。
清单 1. LIST TABLESPACES 命令的输出
Tablespaces for Current Database Tablespace ID = 0 Name = SYSCATSPACE Type = System managed space Contents = Any data State = 0x0000 Detailed explanation: Normal Tablespace ID = 1 Name = TEMPSPACE1 Type = System managed space Contents = System Temporary data State = 0x0000 Detailed expl