如果使用循环分布方案对表进行分段,那么数据库服务器不能消除分段。而且,不是所有基于表达式的分布方案都提供了相同的分段消除行为。
查询(WHERE 子句)表达式的类型 | 单个列上的非重叠分段 | 单个列上的重叠或非邻接分段 | 多个列上的非重叠分段 |
---|---|---|---|
范围 表达式 | 分段可以消除。 | 分段不能消除。 | 分段不能消除。 |
等式表达式 | 分段可以消除。 | 分段可以消除。 | 分段可以消除。 |
此表说明了分布方案可启用分段消除,但是分段消除的有效性取决于指定查询的 WHERE 子句。
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
column_a = 5 OR column_b = -50
column_b = -50
column_a = 5 AND column_b = -50
分段表中的分区不会影响分段消除行为。