




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
DB2的表空间和缓冲池对于刚涉足 DB2 领域的 DBA 或未来的 DBA 而言,新数据库的设计和性能选择可能会很令人困惑。在本文中,我们将讨论 DBA 要做出重要选择的两个方面:表空间和缓冲池。表空间和缓冲池的设计和调优会对 DB2 服务器的性能产生深远的影响,因此我们将着重讨论这些活动。表空间数据库中的所有数据都存储在许多表空间中。可以认为表空间是孩子而数据库是其父母,其中表空间(孩子)不能有多个数据库(父母)。由于表空间有不同用途,因此根据它们的用途和管理方式将它们分类。根据用途有五种不同的表空间:目录表空间 每个数据库只有一个目录表空间,它是在发出 CREATE DATABASE 命令时创建的。目录表空间被 DB2 命名为 SYSCATSPACE,它保存了系统目录表。总是在创建数据库时创建该表空间。 常规表空间 常规表空间保存表数据和索引。它还可以保存诸如大对象(Large Object,LOB)之类的长数据,除非这些数据显式地存储在长表空间中。如果某些表空间是数据库管理的空间(Database Managed Space,DMS),则可以将表及其索引分别放到单独的常规表空间中。我们将在本文后面定义 DMS 和系统管理的空间(System Managed Space,SMS)之间的区别。每个数据库中必须至少有一个常规表空间。创建数据库时指定该表空间的缺省名为 USERSPACE1。 长表空间 长表空间用于存储长型或 LOB 表列,它们必须驻留在 DMS 表空间中。它们还可以存储结构化类型的列或索引数据。如果没有定义长表空间,那么将把 LOB 存储在常规表空间中。长表空间是可选的,缺省情况下一个都不创建。 系统临时表空间 系统临时表空间用于存储 SQL 操作(比如排序、重组表、创建索引和连接表)期间所需的内部临时数据。每个数据库必须至少有一个系统临时表空间。随数据库创建的系统临时表空间的缺省名为 TEMPSPACE1。 用户临时表空间 用户临时表空间存储已声明的全局临时表。创建数据库时不存在用户临时表空间。至少应当创建一个用户临时表空间以允许定义已声明的临时表。用户临时表空间是可选的,缺省情况下一个都不创建。 表空间管理可以用两种不同的方式管理表空间:系统管理的空间(SMS) SMS 表空间由操作系统进行管理。容器被定义成常规操作系统文件,并且是通过操作系统调用访问的。这意味着所有的常规操作系统功能将处理以下内容:操作系统将缓冲 I/O;根据操作系统约定分配空间;如有必要就自动扩展表空间。但是,不能从 SMS 表空间删除容器,并且仅限于将新的容器添加到分区的数据库。前一节中所说明的那三个缺省表空间都是 SMS。 数据库管理的空间(DMS) DMS 表空间是由 DB2 管理的。可以将容器定义成文件(在创建表空间时将把给定的大小全部分配给它们)或设备。分配方法和操作系统允许多少 I/O,DB2 就可以管理多少 I/O。可以通过使用 ALTER TABLESPACE 命令来扩展容器。还可以释放未使用的那部分 DMS 容器(从 V8 开始)。 下面是一个示例,向您说明该如何增大容器大小(V7 和 V8 都支持此功能):ALTER TABLESPACE TS1RESIZE (FILE /conts/cont0 2000,DEVICE /dev/rcont1 2000,FILE cont2 2000)如何创建和查看表空间当您创建数据库时,将创建三个表空间(SYSCATSPACE、TEMPSPACE1 和 USERSPACE1)。通过使用 DB2 命令窗口(Command Window)或 UNIX 命令行,创建一个名为 MYDB 的数据库,连接至该数据库,然后列出表空间:CREATE DATABASE MYDBCONNECT TO MYDBLIST TABLESPACES下面显示了 LIST TABLESPACES 命令的输出。清单 1. LIST TABLESPACES 命令的输出 Tablespaces for Current DatabaseTablespace ID = 0Name = SYSCATSPACEType = System managed spaceContents = Any dataState = 0x0000 Detailed explanation: NormalTablespace ID = 1Name = TEMPSPACE1Type = System managed spaceContents = System Temporary dataState = 0x0000 Detailed explanation: NormalTablespace ID = 2Name = USERSPACE1Type = System managed spaceContents = Any dataState = 0x0000 Detailed explanation: Normal上面所示的这三个表空间是通过 CREATE DATABASE 命令自动创建的。用户可以通过在该命令中包含表空间说明来覆盖缺省的表空间创建,但是在创建数据库时必须创建一个目录表空间和至少一个常规表空间,以及至少一个系统临时表空间。通过使用 CREATE DATABASE 命令或以后使用 CREATE TABLESPACE 命令,可以创建更多的所有类型的表空间(目录表空间除外)。容器每个表空间都有一个或多个容器。重申一次,您可以认为容器是孩子,而表空间是其父母。每个容器只能属于一个表空间,但是一个表空间可以拥有许多容器。可以将容器添加到 DMS 表空间,或者从 DMS 表空间中删除容器,而且可以更改容器的大小。只能将容器添加到某个分区中分区数据库上的 SMS 表空间,在添加之前该分区还未给表空间分配容器。添加新的容器时,将启动一个自动的重新均衡操作以便将数据分布到所有容器上。重新均衡操作不会妨碍对数据库的并发访问。表空间设置可以在创建表空间时给它们指定许多设置,或者也可以稍后使用 ALTER TABLESPACE 语句时指定其设置。页大小(Page size) 定义表空间所使用的页大小。所支持的大小为 4K、8K、16K 和 32K。页大小根据下表限定了可放到表空间中的表的行长度和列数: 页大小行大小限制列数限制最大容量4 KB4 00550064 GB8 KB8 1011 012128 GB16 KB16 2931 012256 GB32 KB32 6771 012512 GB表 1. 页大小的含义扩展块大小(Extent size) 指定在跳到下一个容器之前将写到当前容器中的页数。存储数据时数据库管理器反复循环使用所有容器。该参数只有在表空间中有多个容器时才起作用。 预取大小(Prefetch size) 指定当执行数据预取时将从表空间读取的页数。预取操作在查询引用所需的数据之前读入这些数据,这样一来查询就不必等待执行 I/O 了。当数据库管理器确定顺序 I/O 是适当的,并且确定预取操作可能有助于提高性能时,它就选择预取操作。 开销(Overhead)和传送速率(Transfer rate) 这些值用于确定查询优化期间的 I/O 成本。这两个值的测量单位都是毫秒,而且它们应当分别是所有容器开销和传送速率的平均值。开销是与 I/O 控制器活动、磁盘寻道时间和旋转延迟时间相关联的时间。传送速率是将一个页读入内存所必需的时间量。它们的缺省值分别是 24.1 和 0.9。可以根据硬件规格计算这些值。 CREATE TABLESPACE 语句的示例下列语句将创建一个常规表空间。所讨论的所有设置都是为了进行说明。CREATE TABLESPACE USERSPACE3PAGESIZE 8KMANAGED BY SYSTEMUSING (d:usp3_cont1, e:usp3_cont2, f:usp3_cont3)EXTENTSIZE 64PREFETCHSIZE 32BUFFERPOOL BP3OVERHEAD 24.1TRANSFERRATE 0.9如何查看表空间的属性和容器指定 LIST TABLESPACES 命令的 SHOW DETAIL 选项将显示其它信息:LIST TABLESPACES SHOW DETAIL清单 2 显示了 USERSPACE1 表空间的输出。缺省情况下,将列出创建数据库时所创建的那三个表空间。清单 2. LlST TABLESPACES SHOW DETAIL 命令的输出 Tablespaces for Current DatabaseTablespace ID = 2Name = USERSPACE1Type = System managed spaceContents = Any dataState = 0x0000 Detailed explanation: NormalTotal pages = 336Useable pages = 336Used pages = 336Free pages = Not applicableHigh water mark (pages) = Not applicablePage size (bytes) = 4096Extent size (pages) = 32Prefetch size (pages) = 16Number of containers = 1要列出容器,我们需要使用以上输出中的 Tablespace ID:LIST TABLESPACE CONTAINERS FOR 2清单 3. LIST TABLESPACE CONTAINERS 命令的输出 Tablespace Containers for Tablespace 2 Container ID = 0 Name = C:DB2NODE0000SQL00004SQLT0002.0 Type = Path该命令将列出指定表空间中的所有容器。如上所示的路径指向容器物理上所在的位置。缓冲池一个缓冲池是与单个数据库相关联的,可以被多个表空间使用。当考虑将缓冲池用于一个或多个表空间时,必须保证表空间页大小和缓冲池页大小对于缓冲池所“服务”的所有表空间而言都是一样的。一个表空间只能使用一个缓冲池。创建数据库时,会创建一个名为 IBMDEFAULTBP 的缺省缓冲池,所有的表空间都共享该缓冲池。可以使用 CREATE BUFFERPOOL 语句添加更多的缓冲池。缓冲池的缺省大小是 BUFFPAGE 数据库配置参数所指定的大小,但是可以通过在 CREATE BUFFERPOOL 命令中指定 SIZE 关键字来覆盖该缺省值。足够的缓冲池大小是数据库拥有良好性能的关键所在,因为它可以减少磁盘 I/O 这一最耗时的操作。大型缓冲池还会对查询优化产生影响,因为更多的工作可在内存中完成。基于块的缓冲池V8 允许您留出缓冲池的一部分(最高可达 98%)用于基于块的预取操作。基于块的 I/O 可以通过将块读入相邻的内存区而不是将它分散装入单独的页,来提高预取操作的效率。每个缓冲池的块大小必须相同,并且由 BLOCKSIZE 参数进行控制。该值等于块的大小(单位为页),从 2 到 256,缺省值为 32。扩展存储器DB2 不将扩展存储器用于缓冲区。但是,可以用扩展存储器来高速缓存内存页,使得从内存移出页变得更快。CREATE BUFFERPOOL 语句的示例下面是 CREATE BUFFERPOOL 语句的一个示例:CREATE BUFFERPOOL BP3SIZE 2000PAGESIZE 8K该缓冲池被分配给上面的 CREATE TABLESPACE 示例上的 USERSPACE3,并且在创建表空间之前创建该缓冲池。请注意,缓冲池和表空间的页大小都是 8K,两者是相同的。如果您在创建缓冲池之后创建表空间,则可以省去 CREATE TABLESPACE 语句中的 BUFFER POOL BP3 语法。相反,可以使用 ALTER TABLESPACE 命令将缓冲池添加到现有的表空间:ALTER TABLESPACE USERSPACE3 BUFFERPOOL BP3如何查看缓冲池属性通过查询 SYSCAT.BUFFERPOOLS 系统视图可以列出缓冲池信息:SELECT * FROM SYSCAT.BUFFERPOOLSBPNAME BUFFERPOOLID NGNAME NPAGES PAGESIZE ES- - - - - -IBMDEFAULTBP 1 - 250 4096 N 1 record(s) selected.要找出哪个缓冲池被分配给了表空间,请运行下面这个查询:SELECT TBSPACE, BUFFERPOOLID FROM SYSCAT.TABLESPACESTBSPACE BUFFERPOOLID- -SYSCATSPACE 1TEMPSPACE1 1USERSPACE1 1 3 record(s) selected.可以在上一个查询中找到 BUFFERPOOLID,该查询使您能够看到每个表空间与哪个缓冲池相关联。数据库如何保存表空间的可视化图表既然我们已经描述了表空间和缓冲池是什么以及如何创建它们,那么就让我们研究一下有关如何在数据库中将它们直观地组织起来的示例。图 1. 表空间和缓冲池该数据库有 5 个表空间:一个目录表空间、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 哈佛考试题及答案
- 中级汉语口语(二)知到智慧树答案
- 中级微观经济学(南昌大学)知到智慧树答案
- 土建施工员模拟练习题(附答案)
- 中外石油文化知到智慧树答案
- 机修钳工(设备钳工)试题+答案
- 工厂及企业各工种新员工入职三级安全教育考试题试卷及答案
- 高血压试题及答案3
- 2025电子商务电子合同电子合同电子证据采集与固定合同
- 2025年旅游景区停车场车位使用权转让协议
- 酒店会议服务标准流程作业指导书
- 网络攻防原理与技术 第3版 教案 -第12讲 网络防火墙
- 第一响应人应急培训
- 初中数学七年级上册思维导图
- 中学八年级信息技术Excel-电子表格教案
- 《认识感官》课件
- 工程伦理课程课件
- 秋季传染病预防知识讲座课件
- 055.重症超声在重症相关操作中应用专家共识
- 人教版九年级上册化学第二单元 空气和氧气(单元复习课件)
- 2024小学语文教学及说课课件:二年级上册《田家四季歌》
评论
0/150
提交评论