网站大量收购独家精品文档,联系QQ:2885784924

DB2DBA手册讲述.doc

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DB2DBA手册讲述

数据库设计时优化 选择数据页的大小 注意: 在DB2 8版本以下是这样限制 , 每页上最多行不能超过255个。 页大小行大小限制列数限制最大容量4KB400550064GB8 KB81011012128GB16 KB162931012256GB32 KB326771012512GB 如果在页大小为32KB的表空间放行长度为12字节的表,它大约只能每个页的10%, 即(255 x 12字节+91字节开销 )= 3KB。造成空间的浪费。 根据大表选择大页的表空间,小表选择小页的表空间,选择是由数据行的大小估算出来的。 规范化 数据库被规范化后,减少了数据冗余,数据量变小,数据行变窄。这样DB2的每一页可以包括更多行,那么每一区里的数据量更多,从而加速表的扫描,改进了单个表的查询性能。但是,当查询涉及多个表的时候,需要用很多连接操作把信息从各个表中组合在一起,导致更高的CPU和I/O花销。那么,有很多时候需要在规范化和非规范化之间保持平衡,用适当的冗余信息来减少系统开销,用空间代价来换取时间代价。 选择数据类型 对每一属性选择什么样的数据类型很大程度上依据表的要求,但是在不违背表要求的前提下,选择适当的数据类型可以提高系统性能。比如有text列存放一本书的信息,用BLOB而不是character(1024),BLOB存放的是指针或者文件参照变量,真正的文本信息可以放在数据库之外,从而减少数据库存储空间,使得程序运行的速度提高。DB2提供了UDT(User Defined Datatypes)功能,用户可以根据自己的需要定义自己的数据类型。当然我们不提倡大量使用自定义数据类型。使用了用户自定义类型之后,编程时需要进行数据类型的转换,会导致应用性能降低。 选择索引 索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率。现在大多数的数据库产品都采用IBM最先提出的ISAM索引结构。使用索引可以快速、直接、有序的存取数据。索引的建立虽然加快了查询,另一方面却将低了数据更新的速度,因为新数据不仅要增加到表中,也要增加到索引中。另外,索引还需要额外的磁盘空间和维护开销。因此,要合理使用索引: 在经常进行连接,但是没有指定为外键的属性列上建立索引。 在频繁进行排序或分组(即进行group by或order by操作)的列上建立索引。按索引来排序或分组,节约了排序的内存空间 ,可以提高效率。 在条件表达式中经常用到的不同值较多的列上建立检索,在不同值少的列上不要建立索引。 如果待排序的列有多个,可以在这些列上建立复合索引(compound index),即索引由多个字段复合而成。在建立复合索引时,将不同值最多的值放在索引的最前面,依次类推,这样过滤得效率较高。 数据库表空间的建立 表空间和表建立优化事项 固定长度的记录比可变长度的记录要好,因为处理固定长度记录的DB2的代码经过了优化。如果记录是固定长度的,那么它就永远不需要从原来存储的页中被移动出来。然而,可变长度的记录可能增长到不再适合原来页的长度,因此它也就必须被移动到另一页。无论何时记录被顺序访问,都一定会出现一个额外的参考页。DB2 UDB V8中的一个新特性就是当你不确定未来的数据长度增长情况时,允许你根据需要改变列的大小,这样你就可以不再需要创建可变长度的记录。 每页中记录的数量也是需要考虑的内容。DB2提供了一些有关页大小的选项,例如4 KB, 8 KB, 16 KB和32 KB 。 I/O预读 有效的预读可以保持CPU处于忙的工作状态,避免在查询处理中延误时间。预读的数据量用表空间参数 PREFETCHSIZE来表示。这个参数决定“提前读入” 的数据量。 预读有两种类型:同步读和预读。预读是这样一种过程,其中在一次读操作中它读入整个区段。而同步读一次从磁盘仅读入一页(4KB)。 表空间参数 PREFETCHSIZE应当被设置成 EXTENTSIZE的整数倍。当创建表空间时,确定该参数的大小。如果创建表空间时,没有指定任何值时, PREFETCHSIZE将被设置为数据库参数 DFTPREFETCH_SZ 中找到的默认值。该默认值是128KB(324KB)。 应当使用多个容器定义创建表空间,这些容器可以驻留在不同的物理磁盘上,可以平衡Disk IO。然后应当把PREFETCHSEZE设置成 EXTENTSEZE与容器数目之乘积。 区段的大小 如果用户为自己想要创建的表空间规定不同的值,那么他需要使用 CREATE TABLESPACE 语句的EXTENTSEZE选项。 EXTENTSIZE 的取值范围是2至256个4KB页。 如果用户希望按照小的区段将数据剥离到多个容器中,那么就使用较小的区段值。区段的大小对于将要发生的

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档