用途函数、标志和值

用途函数、方法和标志定义了存取方法的属性。

下表描述了 sysams 列可能的设置,包括用途函数或方法、标志和值。输入项出现的顺序和对应的 sysams 列相同。
表 1. 用途函数、用途标志和用途值
关键字 说明 类别 缺省值
am_sptype 一个字符,指定主要和辅助存取方法可以从哪一种类型的存储空间访问数据。am_sptype 字符可以具有下列一种设置:
  • 'X' 表示只能访问外部空间的方法。
  • 'S ' 表示只能访问 sbspace 的方法。
  • 'A' 表示能够访问外部空间和 sbspace 的方法。

只有对新的存取方法是有效的。不能用 ALTER ACCESS_METHOD 更改或添加一个 am_sptype 值。不要把 am_sptype 设置为 'D' 或试图在 dbspace 中存储一个虚拟表。

虚拟表接口(C): 'A'
am_defopclass 辅助存取方法的缺省运算符类。在定义运算符类之前,存取方法必须存在,然后在 ALTER ACCESS_METHOD 语句中设置这个值。
am_keyscan 如果设置了标志,它表示 am_getnext 返回辅助存取方法的索引键行。如果查询只选择索引键的列,数据库服务器不读取表而是使用辅助方法在共享存储器的索引键行。 标志 没有设置
am_unique 如果辅助存取方法支持检查单键,设置此标志 标志 没有设置
am_cluster 如果主或辅助存取方法支持表的集群,设置此标志 标志 没有设置
am_rowids 如果主或辅助存取方法可以从指定地址检索行,设置此标志 标志 没有设置
am_readwrite 如果辅助存取方法支持数据交换,设置此标志。如果没有设置缺省设置,表示虚拟表是只读的。如果应用程序要写数据,为 C 虚拟表接口设置此标志,避免产生下列问题:
  • INSERT 、DELETE、UPDATE 或 ALTER FRAGMENT 语句导致 SQL 错误。
  • 不执行函数 am_insertam_deleteam_update
标志 没有设置
am_parallel 数据库服务器设置此标志以表示哪一个用途函数或方法可以在主或辅助存取方法中并行执行。如果设置,十六进制am_parallel 位图包含一个或多个下列位设置:
  • 1 位设置为可并行扫描。
  • 2 位设置为可并行删除。
  • 4 位设置为可并行修改。
  • 8 位设置为可并行插入。

Java™ Virtual-Table Interface 中不支持插入、删除和修改。

标志 没有设置
am_expr_pushdown 启用使用参数描述符的标志 标志 没有设置
am_costfactor 数据库服务器把这个值乘以 am_scancost 用途函数或方法返回给主或辅助存取方法的成本。从 0.1 到 0.9 的 am_costfactor 值把成本减少到 am_scancost 计算得到的值的几分之一。 1.1 或更大的 am_costfactor 值增加 am_scancost 1.0
am_create 和用来创建虚拟表或虚拟索引的用户定义函数或方法(UDR)名相关联的关键字 任务
am_drop 和用来删除虚拟表或虚拟索引的 UDR 名相关联的关键字 任务
am_open 和用来使分片、extspace 或 sbspace 可用的 UDR 名相关联的关键字 任务
am_close 和反向 am_open 实行的初始化的 UDR 名相关联的关键字 任务
am_insert 和用来插入行或索引输入项的 UDR 名相关联的关键字 任务
am_delete 和用来删除行或索引输入项的 UDR 名相关联的关键字 任务
am_update 和用来修改行或索引输入项的 UDR 名相关联的关键字 任务
am_stats 和用来建立基于存储空间值分布的统计信息的 UDR 名相关联的关键字 任务
am_scancost 和用来计算限定及检索数据成本的 UDR 名相关联的关键字 任务
am_check 和用来测试表的物理结构或执行索引的完整性检查的 UDR 名相关联的关键字 任务
am_beginscan 和用来建立扫描的 UDR 名相关联的关键字 任务
am_endscan 和用来反向建立 am_beginscan 初始化的 UDR 名相关联的关键字 任务
am_rescan 和用来扫描前一次扫描的下一项以完成一次连接或子查询的 UDR 名相关联的关键字 任务
am_getnext 和扫描满足查询的下一项需要的 UDR 名相关联的关键字 任务
am_getbyid 和从指定物理地址取回数据的 UDR 名相关联的关键字;am_getbyid 只可用于存取方法 任务
am_truncate 和删除虚拟表所有行(主存取方法)或删除虚拟索引所有对应键(辅助存取方法)的 UDR 名相对应的关键字 任务
下面的规则应用于 CREATE ACCESS_METHOD 和 ALTER ACCESS_METHOD 语句的用途选项规范::
  • 要在一个语句中指定多个用途选项,用逗号分隔。
  • CREATE ACCESS_METHOD 语句必须指定和 am_getnext 关键字对应的用户定义的函数或方法名。

    ALTER ACCESS_METHOD 语句不能删除与 am_getnext 对应的函数或方法,但是可以修改它。

  • ALTER ACCESS_METHOD 语句不能添加、删除或修改 am_sptype 值。
  • 只能用 ALTER ACCESS_METHOD 语句指定 am_defopclass 值。

    在分配缺省运算符类之前,必须首先使用 CREATE ACCESS_METHOD 语句注册一个辅助存取方法。