欢迎来到天天文库
浏览记录
ID:15388151
大小:70.00 KB
页数:7页
时间:2018-08-03
《db2的表空间和缓冲池》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、DB2的表空间和缓冲池对于刚涉足DB2领域的DBA或未来的DBA而言,新数据库的设计和性能选择可能会很令人困惑。在本文中,我们将讨论DBA要做出重要选择的两个方面:表空间和缓冲池。表空间和缓冲池的设计和调优会对DB2服务器的性能产生深远的影响,因此我们将着重讨论这些活动。表空间数据库中的所有数据都存储在许多表空间中。可以认为表空间是孩子而数据库是其父母,其中表空间(孩子)不能有多个数据库(父母)。由于表空间有不同用途,因此根据它们的用途和管理方式将它们分类。根据用途有五种不同的表空间:目录表空间每个数据库只有一个目录表空间,它是在发出CREATEDATABASE命令时创
2、建的。目录表空间被DB2命名为SYSCATSPACE,它保存了系统目录表。总是在创建数据库时创建该表空间。常规表空间常规表空间保存表数据和索引。它还可以保存诸如大对象(LargeObject,LOB)之类的长数据,除非这些数据显式地存储在长表空间中。如果某些表空间是数据库管理的空间(DatabaseManagedSpace,DMS),则可以将表及其索引分别放到单独的常规表空间中。我们将在本文后面定义DMS和系统管理的空间(SystemManagedSpace,SMS)之间的区别。每个数据库中必须至少有一个常规表空间。创建数据库时指定该表空间的缺省名为USERSPACE1
3、。长表空间长表空间用于存储长型或LOB表列,它们必须驻留在DMS表空间中。它们还可以存储结构化类型的列或索引数据。如果没有定义长表空间,那么将把LOB存储在常规表空间中。长表空间是可选的,缺省情况下一个都不创建。系统临时表空间系统临时表空间用于存储SQL操作(比如排序、重组表、创建索引和连接表)期间所需的内部临时数据。每个数据库必须至少有一个系统临时表空间。随数据库创建的系统临时表空间的缺省名为TEMPSPACE1。用户临时表空间用户临时表空间存储已声明的全局临时表。创建数据库时不存在用户临时表空间。至少应当创建一个用户临时表空间以允许定义已声明的临时表。用户临时表空间
4、是可选的,缺省情况下一个都不创建。表空间管理可以用两种不同的方式管理表空间:系统管理的空间(SMS)SMS表空间由操作系统进行管理。容器被定义成常规操作系统文件,并且是通过操作系统调用访问的。这意味着所有的常规操作系统功能将处理以下内容:操作系统将缓冲I/O;根据操作系统约定分配空间;如有必要就自动扩展表空间。但是,不能从SMS表空间删除容器,并且仅限于将新的容器添加到分区的数据库。前一节中所说明的那三个缺省表空间都是SMS。数据库管理的空间(DMS)DMS表空间是由DB2管理的。可以将容器定义成文件(在创建表空间时将把给定的大小全部分配给它们)或设备。分配方法和操作系
5、统允许多少I/O,DB2就可以管理多少I/O。可以通过使用ALTERTABLESPACE命令来扩展容器。还可以释放未使用的那部分DMS容器(从V8开始)。下面是一个示例,向您说明该如何增大容器大小(V7和V8都支持此功能):ALTERTABLESPACETS1RESIZE(FILE'/conts/cont0'2000,DEVICE'/dev/rcont1'2000,FILE'cont2'2000)如何创建和查看表空间当您创建数据库时,将创建三个表空间(SYSCATSPACE、TEMPSPACE1和USERSPACE1)。通过使用DB2命令窗口(CommandWindow
6、)或UNIX命令行,创建一个名为MYDB的数据库,连接至该数据库,然后列出表空间:CREATEDATABASEMYDBCONNECTTOMYDBLISTTABLESPACES下面显示了LISTTABLESPACES命令的输出。清单1.LISTTABLESPACES命令的输出TablespacesforCurrentDatabaseTablespaceID=0Name=SYSCATSPACEType=SystemmanagedspaceContents=AnydataState=0x0000Detailedexplanation:NormalTablespaceID=1N
7、ame=TEMPSPACE1Type=SystemmanagedspaceContents=SystemTemporarydataState=0x0000Detailedexplanation:NormalTablespaceID=2Name=USERSPACE1Type=SystemmanagedspaceContents=AnydataState=0x0000Detailedexplanation:Normal上面所示的这三个表空间是通过CREATEDATABASE命令自动创建的。用户可以通过在该命令中包含表空间说明来覆盖缺省的表空间
此文档下载收益归作者所有