尽管 SAP IQ 16.1 中的新增功能 介绍了所有新增的 SAP IQ 功能,但某些功能可能需要您进行额外操作才能利用新体系结构。
例如,从之前版本升级的客户可能需要更改一些初始兼容性选项或重建宽列以容纳不同的数据类型。新装载引擎将提供更好的性能,但需要更改缺省内存分配以有效地使用所有可用的硬件资源。
连续 NBit 字典压缩取代了 1、2、3 字节字典压缩,作为 16.x 中的缺省列存储机制。除 LOB(字符和二进制)和 BIT 数据类型外的所有数据类型都可能是 NBit 列。
IQ UNIQUE 列约束确定将列装载为 Flat FP 还是 NBit FP。将 IQ UNIQUE
无需使用
大内存表示 SAP IQ 可从操作系统动态请求以供临时使用的最大内存量。由于某些装载操作可能需要比缺省提供的 2 GB 更大的内存,所以根据可用物理内存总量调整控制大内存分配和高速缓存内存分配的启动选项。
一般情况下,大内存需求是分配到 SAP IQ 的总可用物理内存的三分之一。为确保有足够的内存可供主 IQ 存储库和临时 IQ 存储库使用,应设置 -iqlm、-iqtc 和 -iqmc 启动参数,这样每个参数都会接收到 SAP IQ 总可用物理内存的三分之一。
在大多数情况下,应将总物理内存的 80% 分配到 SAP IQ,以避免换出 SAP IQ 进程。调整实际内存分配,以容纳在同一系统中运行的其它进程。例如,在拥有 32 个内核和 128GB 总可用物理内存的计算机上,应将 100GB(大约是总计 128GB 的 80%)分配给 SAP IQ 进程。根据一般规则,要将 -iqlm、-iqtc 和 -iqmc 参数分别设置为 33GB。
请参见 SAP IQ 实用程序指南 中的“-iqlm iqsrv16 服务器选项”和“-iqmc iqsrv16 服务器选项”。
FP 和 HG 索引更改利用新增的列压缩机制并将提高装载性能。
新快速投影 (FP) 索引
利用替换 FP(1)、FP(2) 和 FP(3) 字节字典压缩的新连续 NBit 字典压缩。FP(1)、FP(2) 和 FP(3) 索引将分别切换到 NBit(8)、NBit(16) 和 NBit(24)。
如果 FP_NBIT_IQ15_COMPATIBILITY='OFF',应用到此列的 IQ UNIQUE 约束可确定将列装载为 Flat FP 还是 NBit。
注意 由于 NBit 装载和 Flat 装载使用不同的体系结构,因此无法比较它们的装载性能。
请参见 SAP IQ 管理:数据库 中的“快速投影 (FP) 索引”。
新的分层 HG 索引结构
将装载性能与 HG 索引大小分开。在 15.x 中,装载吞吐量随着 HG 索引中数据量的增加而减少。随着索引的增加,装载相同量的数据会花费更多时间。新的分层结构将装载性能与 HG 索引大小分离以增加吞吐量。
CREATE_HG_WITH_EXACT_DISTINCTS 选项确定新创建的 HG 索引是分层索引还是不分层索引。此选项在所有新 16.1 数据库和所有从 15.x 迁移来的 16.1 数据库中均为 ON。要利用新结构,将该选项设置为 OFF。使用 sp_iqrebuildindex 将不分层 HG 索引转换成分层 HG,反之亦然。
请参见 SAP IQ SQL 参考 中的“CREATE_HG_WITH_EXACT_DISTINCTS 选项”。
新存储过程将返回有关列索引和约束的信息:
RLV 基表以进行读写访问时,SAP IQ 会隐式重建宽度大于 255 个字符的 CHAR、VARCHAR、BINARY 和 VARBINARY 列,以及迁移到 SAP IQ16.1SP 02 的数据库的所有 LONG VARCHAR 和 LONG BINARY 列。 您也可以使用 sp_iqrebuildindexwide 过程显式重建宽列。sp_iqrebuildindexwide 可以按照 table_name、table_owner 和 level 重建宽表。根据参数,此过程可重建 16.0 之前所有宽度大于 255 字节的列、部分或全部标记化 FP、VARCHAR/VARBINARY 列以及数据库中指定表的所有固定 Flat FP。 请参见 SAP IQ SQL 参考 中的“sp_iqrebuildindexwide 过程”。
有些数据库选项未启用,无法利用 16.1 功能。数据库升级后保持有限的兼容性可以为转换现有应用程序提供一定的灵活性。
FP_NBIT_IQ15_COMPATIBILITY
提供与 15.x 中可用支持相似的标记化 FP 支持。缺省情况下,此选项在从 15.x 升级的所有 16.1 数据库中均为 ON,在所有新创建的 16.1 数据库中均为 OFF。
ON,则数据库引擎会使用 MINIMIZE_STORAGE、FP_LOOKUP_SIZE 和 FP_LOOKUP_SIZE_PPM 选项优化列存储。在 16.1 中忽略这些选项。
将此选项设置为 OFF 即可利用 NBit 列压缩。
CREATE_HG_WITH_EXACT_DISTINCTS
确定使用 CREATE INDEX 命令显式创建的新 HG 索引,或通过使用 PRIMARY KEY 或 OREIGN KEY 声明创建或变更表创建的索引是分层索引还是不分层索引。此选项在所有从 15.x 升级的数据库中和所有新创建的 16.1 数据库中均为 ON 16.1。如果此选项为 ON,则所有新 HG 索引均为不分层索引。要利用新分层 HG 索引结构,将该选项设置为 OFF。
使用 sp_iqrebuildindex 将不分层 HG 索引转换成分层 HG,反之亦然。
CREATE_HG_AND_FORCE_PHYSICAL_DELETE
控制 16.1 分层 HG 索引的删除行为。此选项确定 SAP IQ 是立即执行物理删除还是将删除操作推迟到装载过程中执行。
CREATE_HG_AND_FORCE_PHYSICAL_DELETE 缺省设置为 ON,指示 SAP IQ 执行物理删除。
REVERT_TO_V15_OPTIMIZER
REVERT_TO_V15_OPTIMIZER 强制查询优化程序模拟 SAP IQ15.x 行为。缺省情况下,在所有从 15.x 升级的 16.1 数据库中,REVERT_TO_V15_OPTIMIZER ='ON'。缺省情况下,在所有新创建的 SAP IQ16.1 数据库中,REVERT_TO_V15_OPTIMIZER ='OFF'。
如果计划使用 SAP IQ 散列分区功能,请在从 15.x 升级到 16.1 的数据库中设置 REVERT_TO_V15_OPTIMIZER='OFF'。