Firebird Documentation IndexFirebird 2.0.6 Release NotesEnhancements to Indexing → Selectivity Maintenance per Segment
Firebird Home Firebird Home Prev: Improved Index CompressionFirebird Documentation IndexUp: Enhancements to IndexingNext: Firebird Index Structure from ODS11 Onward

Selectivity Maintenance per Segment

D. Yemanov, A. Brinkman

Index selectivities are now stored on a per-segment basis. This means that, for a compound index on columns (A, B, C), three selectivity values will be calculated, reflecting a full index match as well as all partial matches. That is to say, the selectivity of the multi-segment index involves those of segment A alone (as it would be if it were a single-segment index), segments A and B combined (as it would be if it were a double-segment index) and the full three-segment match (A, B, C), i.e., all the ways a compound index can be used.

This opens more opportunities to the optimizer for clever access path decisions in cases involving partial index matches.

The per-segment selectivity values are stored in the column RDB$STATISTICS of table RDB$INDEX_SEGMENTS. The column of the same name in RDB$INDICES is kept for compatibility and still represents the total index selectivity, that is used for a full index match.

Prev: Improved Index CompressionFirebird Documentation IndexUp: Enhancements to IndexingNext: Firebird Index Structure from ODS11 Onward
Firebird Documentation IndexFirebird 2.0.6 Release NotesEnhancements to Indexing → Selectivity Maintenance per Segment