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

DB2性能调优手册第一部分要点.pdf

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

深入探讨优化器 与其他编程语言不同,SQL 语言是一种对集合进行操作的编程语言。正是因为这点, 通过使用SQL 语句可以有很多种写法不同但结果集相同的情况。但从性能角度而言,最优 的写法与最差的写法之间却有成千上万倍的差距。所以对SQL语句的编写来讲,完成需求 并不是一件困难的事,但是怎样才能做到尽善尽美,在完成需求的前提下尽可能地提高效率, 充分展现SQL语言的魅力及艺术,这就需要开发人员及DBA 们不断地学习和积累。 作为一名合格的数据库管理员,在很多情况下我们需要对SQL 语句进行详细的诊断分 析,以求让SQL 语句达到最优的性能。面对各种需求,怎样定制合理的 SQL 语句也成了 DBA 和开发人员最头疼的问题之一。如果想在当前的硬件设备及数据分布情况下,针对各 式各样的需求写出性能最佳的SQL 语句,就需要对每条语句的执行计划了如指掌。只有了 解每条语句在DB2 中的执行过程,才能做到有针对性地调优。 有了这个前提,我们就必须深入了解DB2 优化器的机制及原理:当一条SQL 语句传入 到优化器后,首先会经历语法语义检查、SQL语句重写及优化器编译三个过程,然后runtime 会按照生成的执行计划对语句进行执行,如图4-1 所示。 图4-1 优化器内部机制 1 语法语义分析 语法语义分析的过程分为查询解析及语义检查两部分。 1.1 查询解析 SQL 编译器首先会对SQL 语句进行分析以验证其语法是否正确。如果检测到任何语法 错误,那么查询编译器将停止处理,并将相应的错误返回给对应的应用程序。解析完成后, 编译器会创建该SQL 语句的语法结构图并将其存储在语句模型中。简单地讲,就是判断应 用程序发送过来的SQL 语句是否符合语法规范。 1.2 语义检查 编译器确保语句的各个部分之间不存在不一致的情况。例如编译器将验证对YEAR 函 数指定的列是否已被定义为日期数据类型。编译器还会对查询图模型添加行为语义,其中包 括引用约束、表检查约束、触发器和视图作用。查询图模型包含查询的所有语义,其中包括 查询块、子查询、关联、派生的表、表达式、数据类型、数据类型转换、代码页转换和分布 键。 2 SQL 语句重写 在详细讨论SQL 语句重写之前我们需要对SQL语句的基本结构有个清晰准确的了解。 图4-2 SQL语句结构剖析 从图4-2 中可以看到一条普通的查询语句,我们将其分为A、B、C 三部分,各部分含 义如下所述。 A:所返回的字段,其中也包含函数计算及判断等工作; B:需要检索的表及表之间的连接方式,优化器会根据这部分内容判断需要检索哪些数 据及数据之间的连接操作(例如left outer join 或者innerjoin 等); C:需要过滤的条件,也被称作谓词,优化器会根据这部分内容选择最合适的扫描方式 对B 部分的表进行扫描。 由此可见,A 部分主要包含SQL 语句中的相关计算工作;B 部分主要包含连接操作的 选择;而C 部分通常是用来让优化器选择合适的扫描方式。对SQL语句的执行过程而言, 优化器首先会对SQL 语句进行解析,得到需要扫描的表,然后会按照谓词的类型(C 部分) 选择适当的扫描方式,再将这些数据按照合适的方式进行连接(B 部分),最后对连接之后 的结果集进行计算等加工(A 部分)。而对SQL 调优而言,通常我们并不关心具体返回的字 段及对这些字段的相关计算。所以在对SQL 语句进行优化的过程中,我们只需关注B、C 两部分内容即可,也就是表的扫描方式及表之间的连接方式。 在这里我们按照SQL 语句的执行顺序对扫描操作进行详细介绍,之后再来讲解表之间 的连接操作。 2.1 谓词简介 我们将where 子句中的表达式称为谓词。由于不同的谓词会导致优化器选择不同的扫描 方法,所以在了解扫描运算之前需要对各个类型的谓词进行详细讨论。我们根据优化器在处 理行为上的区别将其分为4种谓词类型。通过给性能带来的影响对这些谓词以从小到大的方 式进行排列,分别是索引定界谓词、索引范围谓词、数据范围谓词、剩余谓词。这些谓词在 语句执行过程中由不同的组件进行处理,如图4-3 所示。 图4-3 谓词类型及评估谓词的相关组件 1.索引定界谓词 索引定界谓词在检索数据的过程中可以通过索引来定位其开

文档评论(0)

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

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

1亿VIP精品文档

相关文档