使用 oncheck -ci 和 oncheck -cI 命令检查键值顺序和与指定表相关联的所有索引的水平和垂直节点链接的一致性。
oncheck -cI 选项还检查索引中与 rowid 相关联的键值是否与该行中的键值相同。-cI 选项不在功能检索上交叉检查数据。
如果未指定索引,该选项检查所有的索引。如果未指定表,该选项检查数据库中所有的表。
相同的 -ci 修复选项可以与 -cI 一起使用。如果 oncheck -ci 或 oncheck -cI 检测到不一致,那么它会提示您确认修复该问题索引。如果指定了 -y (是)选项,那么自动修复索引。如果指定了 -n (否)选项,那么报告该问题,但不进行修复;不出现任何提示。
validating indexes......
该消息显示 oncheck 正在检查的索引的名称。
oncheck -cI -n stores_demo:customer
oncheck -cI -n stores_demo:customer#zip_ix
Validating indexes for multipart:gbasedbt.t1... Index idx_t1 Index fragment partition part_1 in DBspace dbs1 Index fragment partition part_2 in DBspace dbs1 Index fragment partition part_3 in DBspace dbs1 Index fragment partition part_4 in DBspace dbs1 Index fragment partition part_5 in DBspace dbs1
缺省情况下,当您使用 oncheck -ci 或 oncheck -cI 选项检查索引时,数据库服务器不在表上放置共享锁,除非该表使用页锁定。要绝对确保完全的索引检查,可以在执行 oncheck -ci 或 oncheck -cI 时使用 -x 选项。使用 -x 选项, oncheck 在表上放置共享锁,这样其他用户就不能在检查完成之前执行更新、插入或删除。有关在 oncheck -ci 和 oncheck -cI 中使用 -x 选项的更多信息,请参阅 使用 -x 开启锁 。
当在外部索引上执行 oncheck 时,用户定义的存取方法负责检查和修复索引。如果使用用户定义存取方法的索引无法找到该存取方法,那么数据库服务器报告错误。oncheck 实用程序不会修复外部索引中的不一致。对于包含多种索引类型的表,不应使用 oncheck -cI。
oncheck 实用程序在检查索引时需要排序空间 。所需排序的空间量与需要创建索引的空间量大小相同。有关计算所需临时空间量的更多信息,请参阅 估计用于索引构建的临时空间。如果您收到该错误 "no free disk space for sort" ,您必须重新预估所需的临时空间量并使其可用。
有关索引的更多信息,请参阅 B-Tree 索引页的结构 。