在决定是否将表行和/或索引键分段以及决定应该如何在各分段间分布行和键之后,您可决定用于实现此分布的方案。GBase 8s 支持分段间的随机分布以及分段间基于值的分布。
对于智能大对象,您可以在 CREATE TABLE 或 ALTER TABLE 语句的 PUT 子句中指定多个数据库空间以按照循环分布方案分布智能大对象,从而使每个空间中智能大对象数大致相等。
对于 INSERT 语句,数据库服务器对随机数使用散列函数,以确定放入行的分段。对于 INSERT 游标,数据库服务器将第一行放入一个随机分段,将第二行按顺序放入下一个分段,依此类推。如果某个分段满了,那么跳过该分段。
您可以指定剩余分段,用于存放所有不匹配任何其他分段的标准的行,不过剩余分段会降低基于表达式的分布方案的效率。
您可以选择指定剩余分段,用于保留不与任何其他分段条件相匹配的所有行。您还可以选择指定 NULL 分段,用于将缺少数据的行存储在分段键列中(因为其分段表达式是 NULL 或 IS NULL)。
按列表分段存储和按表达式分段存储之间最重要的区别是,每个分段的列表中每个值在相同表或索引的所有分段列表之间必须唯一。
您可以选择将 NULL 分段定义为将缺少数据的行存储在分段键列中,但不支持或不需要任何剩余分段。数据库服务器自动创建新分段来存储具有任何现有分段范围之外的非 NULL 分段键值的行。使用范围表达式定义的分段称为范围分段,数据库服务器在运行时创建的系统定义分段称为时间间隔分段。此类型的分布方案有时称为范围间隔分布策略。