您的位置:寻梦网首页编程乐园数据库PostgreSQL 7.2 Documentation

17.4. 访问方法支持过程

有时候,策略的信息还不足以让系统决定如何使用某个索引. 一些访问模式就需要附加的一些过程来保证能够工作. 例如,B-tree 访问模式必须能够比较两个键字以决定其中一个是大于,等于, 还是小于另外一个. 类似的还有R-tree访问模式必须能够计算长方形的相交, 并,和大小等.这些操作和 SQL 查询条件里使用的操作符并不对应; 它们是被访问模式的管理性质的过程内部调用的过程.

为了管理所有 PostgreSQL 的访问模式支持的各种各样的过程, pg_am 包含一个字段叫 amsupport . 这个字段记录被某个访问模式支持的过程的个数. 对于 B-tree 这个数字是一 ∶一个接受两个键字并且根据第一个键字是否小于, 等于或大于第二个键字而返回 -1,0,或 +1 的过程. (严格地说,这个过程可疑返回一个负数(< 0),零,或者一个 非零正数(> 0).)

pg_am 里的 amstrategies 条目只是正在讨论的访问模式定义的策略数.用于小于,小于等于等的操作符 没有在 pg_am 里出现.类似的还有 amsupport 只是访问模式需要的支持过程个数.实际的过程在其他地方列出.

顺便说一句, amorderstrategy 字段报告此访问模式是否支持排序的扫描。 零意味着它不支持;如果该访问模式支持排序的扫描, amorderstrategy 就是对应排序操作符的策略过程的数目。例如, B-tree 的 amorderstrategy = 1 ,就是它的"小于"策略数目。