The filter factor of a predicate is a number between 0 and 1 that estimates the proportion of rows in a table for which the predicate is true. For example, suppose that DB2 can determine that column C1 of table T contains only five distinct values: A, D, Q, W and X. In the absence of other information, DB2 estimates that one-fifth of the rows have the value D in column C1. Then the predicate C1='D' has the filter factor 0.2 for table T.
The DB2 optimizer is not always able to determine precise filter factors for a predicate or a set of predicates that are in an SQL statement, even in cases where the statistics for referenced tables are up-to-date. The result is that the optimizer generates access plans that are less than optimal.
For example, the predicate WHERE T1.C1 > ? does not allow the optimizer to estimate exact filter factor during the PREPARE or BIND phases; even if histogram statistics have been collected on C1, the optimizer cannot know what values are possible.
With the Override Selectivity feature, you can get recommendations for replacing the values that the optimizer estimates for filter factors with values that are more accurate. You can even set values of filter factors yourself.
A set of filter factors for an SQL statement constitute a selectivity profile. You can use the Override Selectivity feature to validate selectivity profiles and to deploy them if they are free of errors.
After you override filter factors, either by accepting recommendations or setting them yourself, you can check the set of filter factors for potential errors. Then, you can review the new access plan for the current SQL statement, and even compare it to the original access plan, without first deploying the new selectivity profile. You can also run the Index Advisor on the statement; the advisor will use the new access plan. You can then compare the advisor's recommendations to recommendations that it gave based on the original access plan.
If you want to modify the filter factors more, you can do so, re-validate them, re-test, and then deploy them.