SPL 例程中 SQL 的优化级别

SPL 例程中设置的当前优化级别将影响 SPL 例程的优化方式。

SET OPTIMIZATION HIGH 语句所调用的算法是一种先进的、基于成本的策略,它检查所有合理的查询计划并选择总体来讲最佳的计划。对于大型连接,此算法产生的开销可能比预计要多。 极端情况下,您可能会耗尽内存。

SET OPTIMIZATION LOW 语句调用的备用算法在早期阶段就消除了不可能的连接策略,这样可以减少优化过程中的时间和资源消耗。但是,当您指定了较低级别的优化时,由于在算法早期阶段最佳策略可能已被消除,因此可能无法选中最佳策略。

对于保持不变或仅仅稍微变化的 SPL 例程和包含复杂 SELECT 语句的 SPL 例程,您在创建该例程时可能希望将 SET OPTIMIZATION 语句设置为 HIGH。该优化级别将存储 SPL 例程的最佳的查询计划。 然后将优化设置为 LOW,再执行 SPL 例程。SPL 例程然后将使用最佳的查询计划,并且如果重新优化发生,那么将以更节约成本的方式运行计划。