[计算机]DB2数据库优化.pptVIP

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[计算机]DB2数据库优化

DB2数据库优化 经分项目组:严辉 DB2 统计信息保持最新 如果没有存储在 DB2 系统目录中的统计信息,优化器在优化任何事物时都会遇到困难。这些统计信息向优化器提供了与正在被优化的 SQL 语句将要访问的表状态相关的信息。存储在系统目录中的统计信息的类型包括: 关于 表的信息,包括总的行数、关于压缩的信息和总页数; 关于 列的信息,包括列的离散值的数量和存储在列中的值的分布范围; 关于 表空间的信息,包括活动页面的数量; 索引的当前状态,包括是否存在索引、索引的组织(叶子页的数量和级别的数量)、索引键的离散值的数量以及是否群集索引; 关于表空间和索引节点组或分区的信息。 当执行 RUNSTATS 或 RUN STATISTICS 实用程序时,统计信息就会填充 DB2 系统目录。您可以从控制中心(Control Center)、批处理作业或通过使用命令行处理器来调用该实用程序。一定要确保在适当的时候积累统计信息,尤其是在生产环境中。 RUNSTATS语法 表: db2 RUNSTATS ON TABLE 表名 索引: db2 RUNSTATS ON TABLE 表名 FOR INDEXES ALL 表和索引: db2 RUNSTATS ON TABLE 表名 AND INDEXES ALL 增强的统计信息 表: db2 RUNSTATS ON TABLE 表名 WITH DISTRIBUTION 索引: db2 RUNSTATS ON TABLE 表名 FOR DETAILED INDEXES ALL 表和索引: db2 RUNSTATS ON TABLE 表名 WITH DISTRIBUTION AND DETAILED INDEXES ALL 常用例子 RUNSTATS ON TABLE TR1ADMIN.MID_GSM_VOICE_CDR_000 ON KEY COLUMNS WITH DISTRIBUTION ON ALL COLUMNS AND SAMPLED DETAILED INDEXES ALL ALLOW READ ACCESS TABLESAMPLE BERNOULLI (1) REPEATABLE (1) SET PROFILE NONE 分布键 分布键是一列(或一组列),用来确定存储特定数据行的数据库分区。分布键是使用 CREATE TABLE 语句在表上定义的。如果没有为分布在数据库分区组中的多个数据库分区中的表空间中的表定义分布键,在缺省情况下将会根据主键的第一列创建分布键。若未指定主键,则缺省分布键是在该表中定义的第一个非长型字段列。(长型包括所有长型数据类型和所有大对象(LOB)数据类型)。如果正在与单一分区数据库分区组相关的表空间中创建表,且您希望有分布键,则必须显式定义该分布键。缺省情况下,不会创建该分布键。 当定义分布键时,应该考虑以下几点: 不支持创建只包含长型数据类型(LONG VARCHAR、LONG VARGRAPHIC、BLOB、CLOB 或 DBCLOB)的多分区表。 不能改变分布键定义。 分布键应该包括最频繁连接的列。 分布键应该由经常参与 GROUP BY 子句的列组成。 任何唯一键或主键必须包含所有分布键列。 索引 索引是行位置的列表,按一个或多个指定列的内容来排序。 索引通常用于加速对表的访问。 创建索引的一些准则包括: 在适当地方定义主键和唯一索引。 创建关于查询用来连接表(Join 谓词)的任何列的索引。 创建关于基于常规基础从中搜索特定值的任何列的索引。 创建关于通常用在 ORDER BY 子句中的列的索引。 确保使用了仅检索您需要的数据的谓词。例如,确保谓词的选择性值表示您想要返回的那部分表。 当创建多列索引时,索引的第一列应该为查询中的谓词最常用的那一列。 确保索引造成的磁盘和更新维护的开销不会太高。 根据查询所使用的列建立多列索引 对于一个特定的查询,可以为某一个表所有出现在查询中的列建立一个联合索引,包括出现在 select 子句和条件语句中的列。但简单的建立一个覆盖所有列的索引并不一定能有效提高查询,因为在多列索引中列的顺序是非常重要的。这个特性是由于索引的 B+ 树结构决定的。一般情况下,要根据谓词的选择度来排列索引中各列的位置,选择度大的谓词所使用的列放在索引的前面,把那些只存在与 select 子句中的列放在索引的最后。 select add_date from temp.customer where city = WASHINGTON and cntry_code = USA; 在 temp.customer 上建立 (city,cntry_code,add_

文档评论(0)

ctuorn0371 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档