调优联邦查询
2008-09-17 16:31:35 来源:WEB开发网昵称统计信息
DB2 II 服务器不把处理放到远程服务器上执行的最常见的一个原因是,在远程数据源上,关于对象的统计信息是过时的,或者根本不存在。当创建昵称时,远程数据源的统计信息被检索并插入到 DB2 II 本地编目中。通过对昵称进行 NNSTAT 存储过程,可以从远程数据源刷新统计信息。然而,这种方法不能保证远程统计信息是最新的。对于将要更新的统计信息,在使用 CREATE NICKNAME 或 NNSTAT 命令将刷新后的统计信息传播到 DB2 II 服务器之前,必须在远程对象的源上执行 Runstats 实用程序(或在远程数据源上与之等效的实用程序)。
为了使远程服务器信息尽可能准确,DB2 II 8.2 允许按照设定的时间间隔调度 NNSTAT 命令。将来的版本可能会自动地按设定的频率判断一个远程对象的统计信息是否已发生变化,并更新 DB2 II 编目中的统计信息。
DB2 II 服务器选项
您还可以使用另外一组参数来影响叠加处理的行为:服务器对象选项。使用表 1 中的选项将远程数据源的属性(如字符串排序序列)告知联邦服务器。
当您提供更多关于远程数据源的信息时,就是在帮助优化器理解,到远程数据源的叠加处理可能更为高效。例如,将 CPU-RATIO 选项设为 0.1 表明远程服务器的能力是本地 DB2 II 服务器十倍那么强。只要没有函数方面的问题,得到上述信息的优化器很可能会选择叠加尽可能多的处理。
另一个会影响叠加行为的参数是 db2-maximal-pushdown。优化器的缺省行为是根据最低预估成本(db2-maximal-pushdown = 'N')估计叠加的机会大小。把 db2-maximal-pushdown 参数设为 'Y' 将改变优化器的估计标准,而更加重视网络传输量。如果是这样设置,那么该选项将导致优化器偏好本地 DB2 II 服务器与远程数据源之间网络通信量较少的策略。您可以使用这个选项,通过改变优化器决策矩阵中的一个核心参数,来比较查询的性能。
更多精彩
赞助商链接