Effectiveness of fragment elimination
The database server cannot eliminate fragments when you fragment a table with a round-robin distribution scheme. Furthermore, not all expression-based distribution schemes give you the same fragment-elimination behavior.
The following table summarizes the fragment-elimination behavior
for different combinations of expression-based distribution schemes
and query expressions. Partitions in fragmented tables do not affect
the fragment-elimination behavior shown in the following table.
Type of Query (WHERE clause) Expression | Nonoverlapping Fragments on a Single Column | Overlapping or Non-contiguous Fragments on a Single Column | Nonoverlapping Fragments on Multiple Columns |
---|---|---|---|
Range expression | Fragments can be eliminated. | Fragments cannot be eliminated. | Fragments cannot be eliminated. |
Equality expression | Fragments can be eliminated. | Fragments can be eliminated. | Fragments can be eliminated. |
This table shows that the distribution schemes enable fragment elimination, but the effectiveness of fragment elimination is determined by the WHERE clause of the specified query.
For example, consider a table fragmented with the following expression:
FRAGMENT BY EXPRESSION
100 < column_a AND column_b < 0 IN dbsp1,
100 >= column_a AND column_b < 0 IN dbsp2,
column_b >= 0 IN dbsp3
The database server cannot eliminate any fragments from the search
if the WHERE clause has the following expression:
column_a = 5 OR column_b = -50
However, the database server can eliminate the fragment in dbspace dbsp3 if
the WHERE clause has the following expression:
column_b = -50
Furthermore, the database server can eliminate the two fragments
in dbspaces dbsp2 and dbsp3 if the WHERE clause has
the following expression:
column_a = 5 AND column_b = -50
Partitions in fragmented tables do not affect fragment-elimination behavior.