SYSINDICES

sysindices 系统目录表描述数据库中的索引。它存储所有索引的 LOW 方式统计信息,且对在数据库中定义的每个索引包含一行。

表 1. sysindices 系统目录表列.

类型 解释
idxname VARCHAR(128) 索引的名称
owner VARCHAR(32) 索引所有者的名称(系统目录表的用户 gbasedbt 和数据库表的 username
tabid INTEGER 表的唯一标识代码
idxtype CHAR(1) 唯一性状态
  • U = 需要唯一值
  • D = 允许重复
集群 CHAR(1) 集群或非集群状态(C = 集群)
levels SMALLINT 树的层数
leaves FLOAT 叶的数目
nunique FLOAT 第一列中唯一键的数目
clust FLOAT 集群的程度;较小的数字对应较大的集群。最大值是表中的行数,最小值是表中的数据页数。对表运行 UPDATE STATISTICS 之前,此列是空白的。
nrows FLOAT 表中的估计行数(在对表运行 UPDATE STATISTICS 之前为零)
indexkeys INDEXKEYARRAY 索引键的内部表示法。列最多可有三个字段,格式为:procid, (col1,col2, . . . , coln), opclassid,其中 1 < n < 341
amid INTEGER 实现此索引的访问方法的唯一标识代码。(对于 sysams 表中的访问方法,值 = am_id。)
amparam LIST(VARCHAR(255)) 用于定制 amid 访问方法行为的参数列表
collation CHAR(32) 创建索引时使用其整理顺序的数据库语言环境
pagesize INTEGER 存储此索引的页面的大小(以字节计)
nhashcols SMALLINT FOT 索引中散列的列数
nbuckets SMALLINT 森林树 (FOT) 索引中子树(存储区)数
ustlowts DATETIME YEAR TO FRACTION 上次记录的索引统计信息的日期和时间
ustbuildduration INTERVAL HOUR TO FRACTION(5) 计算索引统计信息所需的时间
nupdates FLOAT 表的更新数
ndeletes FLOAT 表的删除数
ninserts FLOAT 表的插入数
fextsize INT 索引的第一个扩展数据块的大小 (KB)
nextsize INT 索引的下一个扩展数据块的大小 (KB)

只有在运行了 UPDATE STATISTICS 语句后,影响现有索引的更改才会在此系统目录表中反映出来。

indexkeys 列中的字段具有以下有效值:
  • procid(在 sysprocedures 中)仅为对表列定义的函数的返回值的函数索引存在。
  • 第二个字段中列 (col1, col2, ... , coln) 的列表标识被定义索引的列。最大值与语言相关:对于 SPL 或 Java™ UDR,最大为 341;对于 C UDR,最大为 102。
  • opclassid 标识数据库服务器用于构建和搜索索引的辅助访问方法。这与访问方法的 sysopclasses.opclassid 值相同。

对索引的分发统计信息最近一次重新计算以来,有关该索引的 sysindices 制表 DML 操作中 nupdatesndeletesninserts 列的信息,请参阅在 SYSDISTRIB 系统目录表中具有相同名称的三个列的描述。

fextsize 列显示可选 EXTENT SIZE 子句在定义索引的 CREATE INDEX 语句中所指定的、用户定义的第一个扩展数据块大小(以千字节计)。同样,nextsize 列显示可选 NEXT SIZE 子句在 CREATE INDEX 语句中所指定的、用户定义的下一个扩展数据块大小(以千字节计)。如果创建索引时省略了对应的 EXTENT SIZE 或 NEXT SIZE 子句,那么上述每个列会显示值零 (0)。

如果定义新索引的 CREATE INDEX 语句不包括任何显式扩展数据块大小规范,那么数据库服务器会自动计算第一个和下一个扩展数据块大小,但 fextsizenextsize 列值会设置为 0

建立了 tabid 列的索引并且此索引允许重复值。idxnameownertabid 列只允许唯一值。