DB2及表空间和缓冲池_第1页
DB2及表空间和缓冲池_第2页
DB2及表空间和缓冲池_第3页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、DB2及表空间和缓冲池DB2的表空间和缓冲池对于刚涉足DB2领域的DBA或未来的DBA而言,新数据库的设计和性能选择可能会很令人困惑。在 本文中,我们将讨论DBA要做出重要选择的两个方面:表空间和缓冲池。表空间和缓冲池的设计和调优 会对DB2服务器的性能产生深远的影响,因此我们将着重讨论这些活动.表空间数据库中的所有数据都存储在许多表空间中。可以认为表空间是孩子而数据库是其父母,其中表空间(孩 子)不能有多个数据库(父母)由于表空间有不同用途,因此根据它们的用途和骨理方式将它们分类. 根据用途有五种不同的表空间:目录表空间毎个数据库只有一个目录表空间,它是在发出CREATE DATABASE命

2、令时创建的。 目录表空间被DB2命名为SYSCATSPACE,它保存了系统目录表。总是在创建数据 库时创建该表空间.常规表空间常规表空间保存表数据和索引。它还可以保存诸如大对鼠(Large Object, LOB)之类 的长数据,除非这些数据显式地存储在长表空间中。如果某些表空间是数据库管理的空 间(Database Managed Space, DMS),则可以将表及其索引分别放到笊独的常规表 空间中.我们将在本文后面定义DMS和系统管理的空间(System Managed Space, SMS)之间的区别。每个数据席中必须至少有一个常规表空间。创建数据殊时指定该表 空间的缺省名为USERS

3、PACE1长表空间长表空间用于存储长型或LOB表列,它们必须驻留在DMS表空间中。它们还可以存 储结构化类型的列或素引数据.如果没有定义长表空间,那么将把LOB存储在常规表 空间中.长表空间是可选的,缺省情况下一个都不创建。系统临时表空间系统临时表空间用于存储SQL操作(比如排序、重组表、创建索引和连接表)期间所 需的内部临时数据。每个数据库必须至少有一个系统临时表空间。随数据库创建的系统 临时表空间的缺省名为TEMPSPACE1用户临时表空间用户临时表空间存储已声明的全局临时表。创建数据库时不存在用户临时表空间。至少 应当创建一个用户临时表空间以允许定义已声明的临时表。用户临时表空间是可选的

4、, 缺省情况下一个都不创建。衷空间管理可以用两种不同的方式管理表空间:系统管理的空间(SMS)SMS表空间由操作系统进行管理.容器被定义成常规操作系统文件,并且足通过操作 系统调用访问的。这意味若所有的常规操作系统功能将处理以下内容:操作系统将缓冲I/O;根据操作系统约定分配空间;如有必要就自动扩展表空间但是,不能从SMS表 空间删除容器,并且仅限于将新的容器添加到分区的数据库。前一节中所说明的那三个 缺省表空间都是SMS.数据麻管理的空间(DMS)DMS表空间是由DB2管理的。可以将容器定义成文件(在创建表空间时将把给定的 大小全部分配给它们)或设备。分配方法和操作系统允许多少I/O, DB

5、2就可以停理多 少"0。可以通过使用ALTER TABLESPACE命令来扩展容器。还可以释放未使用的 那部分DMS容器(从V8开始)。下面是一个示例,向您说明该如何増大容器大小(V7和V8都支持此功能):ALTER TABLESPACE TS1RESIZE (FILE '/conts/contO1 2000rDEVICE /dev/rcontl1 2000,FILE ,cont2, 2000)如何创建和査看表空间当您创建数据库时,将创建三个表空间(SYSCATSPACE、TEMPSPACE1和USERSPACE1) 通过 使用DB2命令窗口(Command Window)或

6、UNIX命令行创建一个名为MYDB的数据库,连接至 该数据库,然后列出表空间:CREATE DATABASE MYDBCONNECT TO MYDBLIST TABLESPACES下面显示了 LIST TABLESPACES命令的输出。清单1. LIST TABLESPACES命令的输出Tablespaces for Current DatabaseTablespace IDNameTypeContentsStateDetailed explanation:NormalTablespace IDNameTypeContents=0=SYSCATSPACE=System managed spac

7、e=Any data=0x0000=1=TEMPSPACE1=System managed space=System Temporary dataState0x0000NormalTablespace IDNameTypeContentsStateDetailed explanation:Normal=2=USERSPACE1=System managed space=Any data=0x0000上面所示的这三个表空间是通过CREATE DATABASE命令自动创建的.用户可以通过在该命令中包含 决空间说明来覆盖缺省的表空间创建,但是在创建数据库时必须创建一个目杲表空间和至少一个常规表空 间

8、,以及至少一个系统临时表空间.通过使用CREATE DATABASE命令或以后使用CREATE TABLESPACE命令,可以创建更多的所有类型的表空间(目录表空间除外)。容器每个表空间都有一个或多个容器.車申一次,您可以认为容器是孩子,而表空间是其父母。每个容器只能 属于一个表空间,但是一个表空间可以拥有许多容器可以将容器添加到DMS麦空间,或者从DMS表 空间中删除容器,而且可以更改容器的大小只能将容器添加到某个分区中分区数据库上的SMS表空间, 在添加之前该分区还未给表空间分配容器.添加新的容器时,将启动一个自动的重新均衡操作以便将数据 分布到所有容器上.重新均衡操作不会妨碍对数据库的并

9、发访问.表空间设宦可以在创建表空间时给它们指定许多设置,或者也可以稍后使用ALTER TABLESPACE语句时指定其设 置.页大小(Page size)定义表空间所使用的页大小.所支持的大小为4K、8K、16K和32K.页大小根据下 表限定了可放到表空间中的表的行长度和列数:页大小行大小限制列数限制最大容绘4KB4 00550064 GB8KB8 1011 012128 GB16 KB16 2931 012256 GB32 KB32 6771 012512 GB表1.页大小的含义扩展块大小(Extent size)指定在跳到下一个容器之的将写到当的容器中的页数.存储数据时数据库管理器反复循

10、环使用所有容器。该参数只有在表空间中有多个容器时才起作用。预取大小(Prefetch size)指定当执行数据预取时将从表空间读取的页数。预取操作在査询引用所需的数据之前读 入这些数据,这样一来査询就不必等待执行I/O 了.当数据库管理器确定顺序I/O是 适当的,并且确定预取操作可能有助于提高性能时,它就选择预取操作。开销(Overhead)和传送速率(Transfer rate)这些值用于确定査询优化期间的I/O成本.这两个值的测最单位都是亳秒,而且它们应 当分别是所有容器开销和传送速率的平均值.开销是与I/O控制器活动、磁盘寻道时间 和旋转延迟时间相关联的时间。传送速率是将一个页渎入内存所

11、必肅的时间量.它们的 缺省值分别是24.1和0.9.可以根据硬件规格计算这些值。CREATE TABLESPACE 语句的示例下列语句将创建一个常规表空间.所讨论的所有设賈都是为了进行说明.CREATE TABLESPACE USERSPACE3PAGESIZE 8KMANAGED BY SYSTEMUSING ('d:usp3_cony fe: usp3_cont21, ff :usp3_cont3r)EXTENTSIZE 64PREFETCHSIZE 32BUFFERPOOL BP3OVERHEAD 24.1 TRANSFERRATE 0.9如何査看农空间的属性和容器指定LIST

12、TABLESPACES命令的SHOW DETAIL选项将显示其它信息:LIST TABLESPACES SHOW DETAIL淸单2显示了 USERSPACE1表空间的输出。缺省情况下,将列出创建数据库时所创建的那三个表空间。清单 2 LIST TABLESPACES SHOW DETAIL 命令的输出Tablespaces for Current DatabaseTablespace IDNameTypeContentsState=2=USERSPACE1=System managed space=Any data=0x0000Detailed explanation:NormalUseab

13、le 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 Containe

14、rs for Tablespace 2Container ID= 0Name= C:DB2NODE0000SQL00004SQLT0002 0Type= Path该命令将列出指定表空间中的所有容器.如上所示的路径指向容器物理上所在的位遐.缓冲池一个缓冲池足与单个数据库相关联的,可以被多个表空间使用。当考虑将缓冲池用于一个或多个表空间时, 必须保证表空间页大小和缓冲池页大小对于缓冲池所“服务”的所有表空间而言都是一样的.一个表空间只 能使用一个缓冲池.创建数据阳时,会创建一个名为IBMDEFAULTBP的缺省缓冲池,所有的表空间都共享该缓冲池。可以 使用CREATE BUFFERPOOL语句添加

15、更多的缓冲池.缓冲池的缺省大小是BUFFPAGE数据库配置 参数所指定的大小,但是可以通过在CREATE BUFFERPOOL命令中指定SIZE关键字来覆盖该缺省 值.足够的缓冲池大小是数据库拥有良好性能的关键所在,因为它可以减少磁盘I/O这一最耗时的操作. 大型缓冲池还会对査询优化产生影响,因为更多的工作可在内存中完成.基于块的缓冲池V8允许您留出缓冲池的一部分(最高可达98%)用于基于块的预取操作.基于块的I/O可以通过将块 读入相邻的内存区而不是将它分散装入单独的页,来提高预取操作的效率。每个缓冲池的块大小必须相同, 并且由BLOCKSIZE参数进行控制.该值等于块的大小(单位为页),从

16、2到256,缺省值为32扩展存储器DB2不将扩展存储器用于缓冲区。但是,可以用扩展存储器來高速缓存内存页,使得从内存移出页变得 更快。CREATE BUFFERPOOL 语句的示例下面是CREATE BUFFERPOOL语句的一个示例:CREATE BUFFERPOOL BP3SIZE 2000PAGESIZE 8K该缓冲池被分配给上面的CREATE TABLESPACE示例上的USERSPACE3,并且在创建表空间之前创 建该缓冲池。请注意,缓冲池和表空间的页大小都是8K,两者是相同的.如果您在创建缓冲池之后创建 表空间,则可以省去CREATE TABLESPACE语句中的BUFFER PO

17、OL BP3语法。相反,可以使用 ALTER TABLESPACE命令将缓冲池添加到现有的表空间:ALTER TABLESPACE USERSPACE3 BUFFERPOOL BP3如何査看缓冲池属性通过査询SYSCAT.BUFFERPOOLS系统视图可以列出缓冲池信息:SELECT * FROM SYSCATBUFFERPOOLSBPNAMEBUFFERPOOLID NGNAMENPAGES PAGESIZE ESIBMDEFAULTBP1 -2504096 N1 record(s) selected要找出哪个缓冲池被分配给了表空间,请运行下面这个査询:SELECT TBSPACE, BUF

18、FERPOOLID FROM SYSCAT.TABLESPACESTBSPACEBUFFERPOOLIDSYSCATSPACE1TEMPSPACE11USERSPACE113 record(s) selected.可以在上一个査询中找到BUFFERPOOLID,该査询使您能够看到每个表空间与哪个缓冲池相关联。数据库如何保存表空间的可视化图表既然我们已经描述了表空间和缓冲池是什么以及如何创建它们,那么就让我们研究一下有关如何在数据库 中将它们直观地组织起来的示例。图1.表空间和缓冲池DatabaseSYSCATSPACEUSERSPAGE1JSEFSPACE2LAR3ESPACE1SYSTEM1CatalogRegularRegularLargesystem tefnporaryPAESIZENKPAGESIZENKHAGLtiLL-4KPAG=SIZE=?2KPAGESIZE=32K该数据库有5个表空间:一个目录表空间.两个常规表空间、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论