南大通用GBase8s 常用SQL语句(五十七)

南大通用GBase8s 常用SQL语句(五十七)
1.1CREATE OPCLASS 语句
使用 CREATE OPCLASS 语句为辅助存取方法创建运算符类。
该语句是 SQL ANSI/ISO 标准的扩展。
语法

元素 描述 限制 语法
opclass 在此处声明的新的运算符类的名称 在数据库内的运算符类中必须是唯一的 标识符
sec_acc_method 新的运算符类与其关联的辅助存取方法 必须已经存在且必须 sysams 表中注册 标识符
support_function 辅助存取方法需要的支持函数 必须以存取方法所期望的顺序列出 标识符
用法
运算符类是支持用于查询优化和构建索引的与辅助存取方法的运算符集合。辅助存取方法(有时称为 索引存取方法)是构建、存取和操作索引结构(如 B-tree 、R-tree 或 DataBlade 模块提供的索引结构)的一组数据库服务器函数。
数据库服务器提供 B-tree 和 R-tree 辅助存取方法。更多关于 btree 辅助存取方法的信息,请参阅 缺省运算符类 。
当需要下列之一时定义一个新的运算符类:
索引为数据使用与缺省运算符类提供的顺序不同的顺序
与任何现有运算符类不同的一个运算符集合,这些运算符类与特殊的辅助存取方法相关联
如果您包含了可选的 IF NOT EXISTS 关键字,且指定名称的运算符类已经当前数据库中注册过,则数据库服务器不采取任何行动(而非向应用程序发送异常)。
必须具有 Resource 权限或者必须是 DBA 才可创建运算符类。运算符类的实际名称是 SQL 标识符。当创建运算符类时,opclass 名称必须在数据库内是唯一的。
在兼容 ANSI 的数据库中创建运算符类时,owner.opclass 组合必须在数据库中是唯一的。所有者名称是区分大小写的。如果不在 owner 名称旁边添加引号(或者设置 ANSIOWNER 环境变量),则运算符类索引者名称以大写字母存储。
以下 CREATE OPCLASS 语句为 btree 辅助存取方法创建称为 abs_btree_ops 的新的运算符类:
CREATE OPCLASS abs_btree_ops FOR btree
STRATEGIES (abs_lt, abs_lte, abs_eq, abs_gte, abs_gt)
SUPPORT (abs_cmp);
一个运算符类有两种运算符类函数:
策略函数
在 CREATE OPCLASSS 语句的 STRATEGY 子句中指定运算符类的策略函数。在先前的 CREATE OPCLASS 代码示例中,abs_btree_ops 运算符类有 5 个策略函数。
支持函数
在 SUPPORT 子句中指定运算符类的支持函数。在先前的 CREATE OPCLASS 代码示例中,abs_btree_ops 运算符类有 1 个支持函数。
STRATEGIES 子句
策略函数是用户可以在 DML 语句内调用以对指定数据类型起作用的函数。查询优化器使用策略函数确定给定的索引是否能够用以处理查询。
如果查询包含 UDF 或某个有索引的列,并且如果查询中的限制操作符与 STRATEGIES 子句中的任何函数都匹配,则查询优化器将考虑使用此索引进行查询。更多查询计划的信息,请参阅 GBase 8s 性能指南 。
当创建新的运算符类时,STRATEGIES 子句将为辅助存取方法标识策略函数。每个策略规范都列出策略函数的名称(以及可选的,它的参数的数据类型)。必须以辅助存取方法所期望的顺序列出这些函数。关于 B-tree 索引的和 R-tree 索引的缺省运算符类的策略运算符特顺序,请参阅 GBase 8s 用户定义的例程和数据类型开发者指南 。
策略规范
STRATEGIES 关键字引入一个逗号分隔的,新运算符类的函数名或函数特征符列表。此列表中的每个元素被称为策略规范并有如下的语法:
策略规范

元素 描述 限制 语法
input_type 策略函数的输入参数的数据类型,您要为该策略函数使用特定的辅助存取方法 策略函数接受两个输入参数,并且可以有一个可选的输入参数 数据类型
output_type 策略函数的可选输出参数的数据类型 副作用索引的可选输出参数 数据类型
strategy_function 与指定的运算符类相关联的策略函数 必须以指定的辅助存取方法所期望的顺序列出 标识符
每个策略函数都是一个外部函数。CREATE OPCLASS 语句不验证您指定名称的用户定义的函数是否存在。但是,对于要使用策略函数的辅助存取方法,外部函数必须:
在共享库中编译
用 CREATE FUNCTION 语句在数据库中注册
(可选)除了策略函数名称外还可以指定其特征。策略函数需要两个输入参数和一个可选的输出参数。要指定函数特征符,请指定:
为策略函数的两个输入参数的每一个都指定一个输入数据类型,从而该策略函数可使用它们
(可选)为策略函数的输出参数指定一个输出数据类型
可以指定 UDT 和内置数据类型。如果不指定函数特征符,则数据库服务器假设每个策略函数采用两个相同数据类型的参数并返回一个 BOOLEAN 值。
对边界效果数据的索引
边界效果数据是策略函数在包含该策略函数的查询后返回的附加值。例如,图像 DataBlade 模块可能使用模糊索引搜索图像数据。索引根据图像与搜索条件的接近程序对它们进行排序。数据库服务器返回等级值作为对于合格图像的边界效果数据 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值