压缩索引文件的结构(.idx)

请参阅

压缩索引头记录

字节偏移 说明
00 - 03 指向根结点的指针
04 - 07 指向自由结点列表的指针(如果不存在,则为 – 1 )
08 - 11 保留供内部使用
12 - 13 关键字长度
14 索引选项(下列某一数值或它们的和)
1–唯一索引
8–索引包含 FOR 子句
32 –压缩索引格式
64 –复合索引标头
15 索引签名
16 - 19 保留供内部使用
20 - 23 保留供内部使用
24 - 27 保留供内部使用
28 - 31 保留供内部使用
32 - 35 保留供内部使用
36 - 501 保留供内部使用
502 - 503 升序或降序
0 = 升序
1 =降序
504 - 505 保留供内部使用
506 - 507 FOR 表达式池长度1
508 - 509 保留供内部使用
510 - 511 关键字表达式池长度1
512 - 1023 关键字表达式池(未编译)
1 该信息追踪关键字表达式池中使用的空间。

压缩索引内部结点记录

字节偏移 说明
00 - 01 结点属性(下列某一数值或它们的和):
a.0 – 索引结点
b.1 – 根结点
c.2 – 叶结点
02 - 03 现有关键字的数目(0,1 或更多)
04 - 07 当前结点的左结点指针(在同一层次上;如果不存在,则为 - 1)
08 - 11 当前结点的右结点指针(在同一层次上;如果不存在,则为 - 1)
12 - 511 最多有 500 个字符,其中包括关键字长度的值,用四字节的十六进制数表示(按照一般的自左而右的格式存储):
此结点总是包含索引关键字、记录编号及内联索引指针2。
字节 02 - 03 指定的数决定键值/四字节十六进制数组合出现的次数。

压缩索引外部结点记录

00 - 01 结点属性(下列某一数值或它们的和):
0 – 索引结点
1 – 根结点
2 – 叶结点
02 - 03 现有关键字的数目(0,1 或更多)
04 - 07 当前结点的左结点指针(在同一层次上;如果不存在,则为 - 1)
08 - 11 当前结点的右结点指针(在同一层次上;如果不存在,则为 - 1)
12 - 13 结点上可用的自由空间
14 - 17 记录号掩码
18 重复字节计数掩码
19 后缀字节计数掩码
20 用作记录号的比特位数
21 用作重复计数的比特位数
22 用作后缀计数的比特位数
23 包含记录号、重复计数及后缀计数的字节数
24 - 511 索引关键字的信息2
2 每项均由记录号、重复字节计数及后缀字节计数组成,并且都为压缩形式。关键字文本放置在结点的逻辑末尾,向后起作用,适用于当前的各个关键字项。