返回首页

gbase数据、南大通用产品文档:GBase8sCREATE ACCESS_METHOD 语句

更新日期:2024年09月11日

使用 CREATE ACCESS_METHOD 语句在 sysams 系统目录表中注册新的主或辅
助存取方法。
该语句是 SQL ANSI/ISO 标准的扩展。
语法

元素
描述
限制
语法
access
method
此处为新的存取方
法声明的名称
在 sysams 系统目录表的存取方
法名称中必须是唯一的
标识符

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 205
用法
CREATE ACCESS_METHOD 语句将用户定义的存取方法添加到数据库。要创建
存取方法,必须指定目的函数(或目的方法)、目的标志或目的值作为存取方法
的属性,并将关键字(基于 sysams 系统目录表中列名)与 UDR 相关联。您必
须具有 DBA 或 Resource 权限才能创建存取方法。
有关设置目标选项的信息,包含所有函数关键字的列表,请参阅用途选项。
PRIMARY 关键字为虚拟表指定用户定义的主存取方法。SECONDARY 关键字为
虚拟索引指定创建用户定义的辅助存取方法。SECONDARY 关键字(和创建虚拟
索引)在 Java™ Virtual-Table Interface 中不受支持。
以下语句创建了名为 T_tree 的辅助存取方法:
CREATE SECONDARY ACCESS_METHOD T_tree
(
am_getnext = ttree_getnext,

. . .
am_unique,
am_cluster,
am_sptype = 'S'
);
在前面的示例中,在目标选项列表中的 am_getnext 关键字与 ttree_getnext( )
UDR 关联作为满足查询而扫描下一项的方法的名称。该示例指示了 T_tree 辅助
存取方法支持唯一键和集群,并驻留在 sbspace 中。
任何目标函数任务中与 CREATE ACCESS_METHOD 语句相关联的 UDR(例
如,之前示例中 ttree_getnext( ) 和 am_getnext 的关联),必须已经由
CREATE FUNCTION 语句(或者具有等同功能的语句,例如:CREATE
PROCEDURE FROM))在数据库中注册过。
以下语句创建驻留在外部空间的名为 am_tabprops 的主存取方法。
CREATE PRIMARY ACCESS_METHOD am_tabprops
(
am_open = FS_open,
am_close = FS_close,
am_beginscan = FS_beginScan,

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 206
am_create = FS_create,
am_scancost = FS_scanCost,
am_endscan = FS_endScan,
am_getnext = FS_getNext,
am_getbyid = FS_getById,
am_drop = FS_drop,
am_truncate = FS_truncate,
am_rowids,
am_sptype = 'x'
);
如果包含可选的 IF NOT EXISTS 关键字,且该指定名称的存取方法已将存在于
当前数据库中,则数据库服务器不采取操作(而不是向此应用程序发送异常)。

创建与终止 GCCI 环境变量
创建 GCCI 环境变量
Environment 类是 GCCI 程序的基础类,所有的 GCCI 对象的建立都是依计
Environment 对象来创建的,
所以 Environment 对象的建立必须放在第一位,

且也必须是最后一个被终止的。例如:首先创建一个 Environment 对象 env,然
后通过 env 创建一个 Connection 对象 conn,conn 是连接了数据库的对象;终
止 时,却反过来先终止对象 conn,再终止对象 env。具体 Environment 对象
的创建 方法如下所示:
Environment *env = Environment::createEnvironment();
注意:createEnvironment()方法有以下几个参数模式: 1.在线程环境中运行分为
互斥线程(THREADEC_MUTEXED)、并行线程
(THREADEC_UMMUTEXED)。 2.使用对象(OBJECT)。 3.利用共享数据结构
(SHARED)。 终止 GCCI 环境变量



Environment 对象的终止必须是放在最后一位,即等所有其它 GCCI 对象被终
止完后再终止 Environment 对象。终止 Environment 对象的方法如下所示:
Environment::terminateEnvironment(env);

synchronous_commit
参数说明:设置当前事务的同步方式。
该参数属于USERSET 类型参数,请参考表15-1 中对应设置方法进行设置。
通常情况下,一个事务产生的日志的同步顺序如下:
1.
主机将日志内容写入本地内存。
2.
主机将本地内存中的日志写入本地文件系统。
3.
主机将本地文件系统中的日志内容刷盘。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
1197
4.
主机将日志内容发送给备机。
5.
备机接受到日志内容,存入备机内存。
6.
备机将备机内存中的日志写入备机文件系统。
7.
备机将备机文件系统中的日志内容刷盘。
8.
备机回放日志,完成对数据文件的增量更新。
取值范围:枚举类型

on:表示主机事务提交需要等待备机将对应日志刷新到磁盘。

off:表示主机事务提交无需等待主机自身将对应日志刷新到磁盘,通常也称为异
步提交。

local:
表示主机事务提交需要等待主机自身将对应日志刷新到磁盘,
通常也称为本
地提交。

remote_write:表示主机事务提交需要等待备机将对应日志写到文件系统(无需刷
新到磁盘)。

remote_receive:表示主机事务提交需要等待备机接收到对应日志数据(无需写入
文件系统)。

remote_apply:表示主机事务提交需要等待备机完成对应日志的回放操作。

true:同on。

false:同off。

yes:同on。

no:同off。

1:同on。

0:同off。

2:同remote_apply。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
1198
默认值:on