To affect the WHERE
planner SPD index pre-evaluation, specify
%let SPDSIRAT=index-segment-ratio;
The SPDSIRAT= macro
variable specifies a maximum percentage (ratio) for the number of
segments in the hybrid bitmap that must contain the index value before
the WHERE planner should pre-evaluate a segment list.
The segment list enables
the planner to launch threads only for segments that contain the value.
If the value number exceeds the ratio, the planner performs no pre-evaluation.
Instead, the planner launches a thread for each segment in the table.
The SPDSIRAT= macro
variable option can be used to ensure that time spent in pre-evaluation
does not exceed the cost of launching a thread for each segment in
the table. By default SPDSIRAT= is set to 75%. This means that if
an index value is contained in 75% or less of the index segments,
the hybrid bitmap logic will pre-evaluate the value and return a list
of segments to the WHERE clause planner. If more than 75% of the
index segments contain the target index value, the time spent on pre-evaluation
might be more than the time saved by skipping a small number of segments.
For some tables 75% might
not be the optimal setting. To determine a better setting,
run a performance benchmark, adjust the percentage, and rerun the
performance benchmark. Comparing results will show you how the specific
data population that you are querying responds to shifting the index-segment
ratio. The allowable range to adjust the setting value is from 0
to 100, where 0 means never perform WHERE
clause pre-evaluation, and 100 means always perform
WHERE clause pre-evaluation.