The database server uses an arbitrary rule to define nonoverlapping
fragments based on multiple columns.
The following figures show an example of nonoverlapping fragments
on two columns. Figure 1: Example of nonoverlapping fragments on two columns
...
FRAGMENT BY EXPRESSION
0<a AND a<=10 AND b IN ('E', 'F', 'G') IN dbsp1,
0<a AND a<=10 AND b IN ('H', 'I', 'J') IN dbsp2,
10<a AND a<=20 AND b IN ('E', 'F', 'G') IN dbsp3,
10<a AND a<=20 AND b IN ('H', 'I', 'J') IN dbsp4,
20<a AND a<=30 AND b IN ('E', 'F', 'G') IN dbsp5,
20<a AND a<=30 AND b IN ('H', 'I', 'J') IN dbsp6;
Figure 2: Schematic example of nonoverlapping fragments on two columns
If you use this type of distribution scheme, the database server
can eliminate fragments on an equality search but not a range search.
This capability can still be useful because all INSERT operations
and many UPDATE operations perform equality searches. Avoid using
a REMAINDER clause in the expression. If you use a REMAINDER clause,
the database server cannot always eliminate the remainder fragment.
This alternative is acceptable if you cannot obtain sufficient
granularity using an expression based on a single column.