选择分布方案时,必须考虑数据平衡的难易程度,是否希望消除分段,以及数据跳过功能的效果。
表 1 比较循环分布方案和基于表达式的分布方案。
分布方案 | 数据平衡的难易程度 | 分段消除 | 数据跳过 |
---|---|---|---|
循环法 | 自动。随时间平衡数据。 | 数据库服务器无法消除分段。 | 在使用数据跳过特性时,无法确定事务的完整性是否受到损害。 然而,可以插入到使用循环来分段的表。 |
基于表达式的 | 需要具有数据分发方面的知识。 | 如果表达式中使用了一列或两列,那么数据库服务器可以为那些具有范围表达式或等式表达式的查询消除分段。 | 在使用数据跳过特性时,您可以确定事务的完整性是否受到损害。 如果这些行的相应分段不可用,那么无法插入行。 |
基本上,循环方案提供了最容易而且最可靠的方法来平衡数据。然而,如果使用循环分布,您就无法知道某个行位于哪个分段,而且数据库服务器也无法消除分段。
如果计划基于某个列(例如日期)的值定期添加或删除大量数据,您可以在分布方案中使用该列。 然后可以使用 alter fragment attach 和 alter fragment detach 语句在表中循环数据。
有关更多信息,请参阅提高连接和分离分段的操作的性能。
在某些情况下,合适的索引方案可以巧妙的解决特定分布方案的性能问题。 有关更多信息,请参阅将索引分段的策略。