WEB开发网
开发学院数据库DB2 利用优化概要文件进行 SQL 调优 阅读

利用优化概要文件进行 SQL 调优

 2010-08-13 00:00:00 来源:WEB开发网   
核心提示:优化概要文件概述在现代数据库系统中,SQL 优化是非常重要的工作,利用优化概要文件进行 SQL 调优,其结果直接决定了数据库的性能,当今主流的数据库产品,就会按着这个优化概要文件中所指定的规则,来生成其执行计划,其优化器都采用了基于成本分析的方法来对 SQL 语句进行优化,希望得到效率最高的执行计划

优化概要文件概述

在现代数据库系统中,SQL 优化是非常重要的工作,其结果直接决定了数据库的性能。当今主流的数据库产品,其优化器都采用了基于成本分析的方法来对 SQL 语句进行优化,希望得到效率最高的执行计划。所谓基于成本分析的优化,简而言之就是优化器根据数据的统计信息,来计算出各种可选执行计划的成本,从而选取成本最低的,即最优的执行计划。然而由于各种条件所限,有时数据库中并不具有全部且准确的统计信息,或者在一些特定的情况下,基于统计分析的优化并不能得到真正的最优的执行计划,那么用户就可以应用本篇文章中所要讲到的方法,利用 SQL 优化概要文件,来让优化器生成指定规则的执行计划,从而绕开优化器自带的基于成本分析的优化。

DB2 的这种调优方式,和 Oracle 数据库的 Hint 机制相对应,都是数据库系统提供给用户的可以直接指定执行计划的方式。但相对于 Oracle 的 Hint 机制来说,DB2 的优化概要文件配置更灵活,它即可以针对某一具体的数据表来指定其访问方式,也可以针对一条特定的 SQL 语句,来指定其最终的执行计划,而且并不像 Oracle Hint 机制一样需要改动 SQL 语句本身。

具体来讲,就是用户按着 DB2 提供的指定格式,来编写一个 XML 文件,针对某张特定的数据表或者 SQL 语句,来指定其具体的执行计划细节。清单 1 里是一个简单的示例,这个示例会被应用到第三章的案例分析中。该示例针对给定的 SQL 语句,指定了一条具体的优化规则,指定表 t1 和 t2 之间采用 Hash Join 的连接方式,同时利用 t1 作为小表来建立 Hash Table,视 t2 为大表来进行匹配操作,用户把这个 XML 文件导入到指定的工具表中,并通过设置环境变量使其生效,那么之后,优化器对于这样的 SQL 语句,就会按着这个优化概要文件中所指定的规则,来生成其执行计划,细节将会在第三章中详述。

1 2 3 4 5 6  下一页

Tags:利用 优化 概要

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接