调优联邦查询
2008-09-17 16:31:35 来源:WEB开发网核心提示: 基本调优任务对任何性能低下的 SQL 语句进行调优都需要一种有条不紊的方法,毫无计划地更改参数只能让每一次做出的更改难于判断效果,调优联邦查询(2),如果某一次更改对性能起了反作用,那么您需要知道应该退回到哪一次更改,EXPLAIN 命令的输出是判断优化器是否将为查询使用“叠加
基本调优任务
对任何性能低下的 SQL 语句进行调优都需要一种有条不紊的方法。毫无计划地更改参数只能让每一次做出的更改难于判断效果。如果某一次更改对性能起了反作用,那么您需要知道应该退回到哪一次更改。
不管调优什么 SQL,都应该执行以下任务:
评估当前性能,并记录到文档。
与创建查询的人会谈,并得出合理的性能预期。
建立查询的业务目标。
对于来自生产系统的查询,获得一个 Explain 计划。
如果可行的话,在测试系统上重建环境,并重新运行查询。
对于与查询相关的所有表,确信最近在这些表上执行了 Runstats 或与之等价的远程命令。
确保各个表的重组,以匹配它们的集群索引。
查找 WHERE 子句中索引列上的 SQL 函数,这些函数可能导致优化器忽略了索引。
确保在 WHERE 子句中尽可能使用索引列。
查找笛卡儿积(Cartesian products)。
跟踪每一项更改的效果,每次跟踪一项。
联邦调优任务
由于联邦查询连接到了不同的数据源,调优的第一步是将查询分解为两部分:本地和远程。本地部分使用驻留在 DB2 II 服务器上的对象,而远程部分使用驻留在远程主机上的对象。通过这种方式划分联邦查询,有助于判断影响性能问题的根源。
DB2 II 服务器中的所有联邦对象在 syscat.tables 编目表中都是以昵称(TYPE=N)的形式标识的。也可以通过 EXPLAIN 命令识别查询中的联邦对象,该命令将显示 DB2 II 引擎选择的全局访问计划。EXPLAIN 命令的输出是判断优化器是否将为查询使用“叠加(push-down)”处理(即在远程服务器上执行的处理)的惟一途径。DB2 II 使用来自包装器、服务器和昵称对象的信息,来判断什么任务可以叠加到远程服务器。
更多精彩
赞助商链接