设置 DB2_REDUCED_OPTIMIZATION 注册表变量
如果设置优化类无法充分缩短应用程序的编译时间,那么请尝试设置 DB2_REDUCED_OPTIMIZATION 注册表变量。
与设置优化类相比,此注册表变量提供了对优化器搜索空间的更多控制权。 此注册表变量允许您请求使用精简优化功能或者严格按照指定的优化类来使用优化功能。 如果减少所使用的优化技术的数目,那么还将减少优化期间耗用的时间和资源。
尽管可以减少优化期间的时间和资源耗用量,但这也会增大生成非最佳查询存取方案的风险。
首先,尝试将此注册表变量设置为 YES。 如果优化类为 5(缺省值)或更低,那么优化器将禁用某些优化技术,这些技术可能会耗用大量的准备时间和资源,但通常无法生成更好的查询存取方案。 如果优化类正好是 5,那么优化器将精简或禁用其他一些技术,这可以进一步缩短优化时间和资源耗用量,但是也将进一步增大生成非最佳查询存取方案的风险。 对于低于 5 的优化类,其中某些技术可能并非在任何情况下都有效。 但是,如果它们有效,那么它们将保持有效。
如果 YES 设置未充分缩短编译时间,那么请尝试将此注册表变量设置为整数值。 效果与 YES 相同,对于在类 5 上优化的动态预编译查询,有以下其他行为。 如果任何查询块中的连接总数超过此设置,那么优化器将切换为贪婪连接枚举,而不是禁用其他优化方法。 结果是,将在类似于优化类 2 的级别优化查询。