重建列索引。
若要重建缺省 FP 索引以外的索引,请指定索引名。无论 FP_NBIT_IQ15_COMPATIBILITY 设置如何,sp_iqrebuildindex 行为均相同。
sp_iqrebuildindex (, ) 注意第三方参考文档介绍不受支持的 sp_iqrebuildindex 语法。请注意,在索引子句中指定表名将产生错误:sp_iqrebuildindex
index CREATE TABLE 语句中,IQ UNIQUE (count) 表示给定列中所能容纳的不同值的估计数量。不同值的数量会影响查询速度和存储要求。 MERGEALL 和 RETIER 是特定于 HG 索引操作的关键字: sp_iqrebuildindex ('<table name>', 'index <index name> [ MERGEALL | RETIER ]') 如果从 HG 索引的某操作中忽略 MERGEALL 或 RETIER,则 sp_iqrebuildindex 将截断 HG 索引并根据列数据重建整个索引。 MERGEALL 可合并分层 HG 索引的所有层,并且将内容移动到相应的层中:sp_iqrebuildindex ('<table name>', 'index <index name> MERGEALL') 该合并可以确保在分层 HG 索引中只含有一个活动的子索引。如果有很多删除记录(如 sp_iqindexmetadata 所示),则 MERGEALL 操作可以减少分层索引的查询访问时间。只有在使用 index 子句并且指定索引为 HG 索引时才支持 MERGEALL。 RETIER 是特定于 HG 索引的关键字,可将 HG 索引的格式从不分层的 HG 更改为分层的 HG,或将分层的 HG 更改为不分层的 HG:sp_iqrebuildindex ('<table name>', 'index <index name> RETIER')RETIER 切换 HG 索引的格式: RETIER 将分层 HG 索引转换为单个的不分层 HG 索引。禁用分层元数据,并且只维护一个子索引。 RETIER 将不分层的 HG 索引转换成分层 HG 索引,并将包含所有数据的单个子索引推送到相应层中。 MERGEALL 和 RETIER 仅在以下情况下受支持:使用 index 子句并且指定的索引为 HG 索引。
必须指定关键字 column 和 index。 这些关键字不区分大小写。
注意此过程不支持 TEXT 索引。要重建 TEXT 索引,必须删除并重新创建该索引。
您必须具有系统过程的 EXECUTE 特权。 您还必须具有以下一种:
INSERT ANY TABLE 系统特权
INSERT 特权
如果指定列名,sp_iqrebuildindex 会为该列重建缺省 FP 索引;不需要索引名。除列名之外,如果您还指定由 SAP IQ 分配的缺省 FP 索引名,则 sp_iqrebuildindex 将返回一个错误。
在数据类型 LONG VARCHAR(CLOB) 的列中,sp_iqrebuildindex 将重建 WD 索引。
含有 IQ UNIQUE
如果您使用 Flat FP 索引重建列,并且列不包含 IQ UNIQUE ON 和基数超过计数,则为平面列指定
通过 sp_iqrebuildindex 缺省接口,用户可根据现有的 FP 索引重建整个 HG 索引。sp_iqrebuildindex 重新读取所有 FP 索引列值并创建 HG 索引。但是,这样会保留层大小、连续装载大小等所有元数据。
重建列
sp_iqrebuildindex 'emp1', 'column dept_id'或:
call sp_iqrebuildindex ('empl1', 'column dept_id')创建列 c1 的平面 FP 索引:
CREATE TABLE mytable (c1 int IQ UNIQUE (0))将缺省索引 Flat FP 转换为估计非重复计数为 1024 的索引 Nbit :
sp_iqrebuildindex 'mytable', 'column c1 1024'或:
call sp_iqrebuildindex ('mytable', 'column c1 1024')注意 在大型 HG 索引上运行 sp_iqrebuildindex 时,用户将发现性能临时下降。