Optimization levels for SQL in SPL routines
The current optimization level set in an SPL routine affects how the SPL routine is optimized.
The algorithm that a SET OPTIMIZATION HIGH statement invokes is a sophisticated, cost-based strategy that examines all reasonable query plans and selects the best overall alternative. For large joins, this algorithm can incur more overhead than desired. In extreme cases, you can run out of memory.
The alternative algorithm that a SET OPTIMIZATION LOW statement invokes eliminates unlikely join strategies during the early stages, which reduces the time and resources spent during optimization. However, when you specify a low level of optimization, the optimal strategy might not be selected because it was eliminated from consideration during early stages of the algorithm.
For SPL routines
that remain unchanged or change only slightly and that contain complex
SELECT statements, you might want to set the SET OPTIMIZATION statement
to HIGH
when you create the SPL routine.
This optimization level stores the best query plans for the SPL routine.
Then set optimization to LOW
before you execute the SPL routine.
The SPL routine
then uses the optimal query plans and runs at the more cost-effective
rate if reoptimization occurs.