选择组织键
在创建或更改 CBT 时,您最多可以指定四个组织密钥;但很少会使用四个密钥。 大多数 CBT 通常最多使用一个、两个或三个键。
作为最佳实践,请检查大型事实表的设计和列,以及针对这些表运行的查询类型。 如果通常只在一个维度(如日期)上运行查询,则可以按日期加载数据,以利用区域地图。 如果您通常按两个维度(例如按storeId和customerID)对表进行查询,CBT 可以帮助提高对该表的查询性能。
组织键必须是可在区域地图中引用的列。 默认情况下,Netezza Performance Server以下数据类型的列创建区域映射:
- 整数(1 字节、2 字节、4 字节和 8 字节)
- 日期
- 时间戳记
此外,如果以下数据类型的列被用作物化视图的 ORDER BY 限制或 CBT 的组织键,Netezza Performance Server还会为其创建区域映射:
- 字符,所有大小,但区域映射中只使用前 8 个字节
- Varchar,所有大小,但在区段图中只使用前 8 个字节
- Nchar,所有大小,但区域图中只使用前 8 个字节
- Nvarchar,所有大小,但在区段图中只使用前 8 个字节
- 数值,数值(18)以下(包括数值(18))的所有大小
- 浮点
- 双
- 布尔值
- 时间
- 含时区的时间
- 时间间隔
创建表格(如使用 CREATE TABLE 命令)或更改表格(如使用 ALTER TABLE 命令)时,需要指定表格的组织键。 定义表的组织键时,Netezza Performance Server不会自动重组记录;而是使用 GROOM TABLE 命令启动重组过程。
使用 ALTER TABLE 可以添加、更改或删除表的组织键。 新增或更改的键立即生效,但必须对表进行梳理,以便根据新键重新组织记录。 如果列被指定为表的组织键,则不能从表中删除该列。