应用域索引

应用域索引(application domain index)即Oracle所谓的可扩展索引(extensible indexing)。利用应用域索引,你可以创建自己的索引结构,使之像Oracle提供的索引一样工作。有人使用你的索引类型发出一个CREATE INDEX语句时,Oracle会运行你的代码来生成这个索引。如果有人分析索引来计算统计信息,Oracle会执行你的代码来生成统计信息(采用你要求的存储格式)。Oracle解析查询并开发查询计划时,如果查询计划中可能使用你的索引,Oracle会问你:这个函数的计算不同的计划时会有怎样的开销。简单地说,利用应用域索引,你能实现数据库中原本没有的一个新的索引类型。例如,如果你开发一个软件来分析数据库中存储的图像,而且生成了关于图像的信息(如图像中的颜色),就可以创建你自己的图像(image)索引。向数据库中增加图象时,会调用你的代码,从图像中抽取颜色,并将其存储在某个地方(你想存储图像索引的任何地方)。查询时,用户请求所有“蓝色图像”时,Oracle就会在合适的时候从索引提供答案。

对此最好的例子是Oracle自己的文本索引(text index)。这个索引用于对大量的文本项提供关键字搜索。可以如下创建一个简单的文本索引:

scott@ORCL>create index myindex on t(year)
  2  indextype is ctxsys.context
  3  /

索引已创建。

这个索引的创建者向SQL语言中引入了一些文本运算符,接下来使用这些文本运算符:

create index myindex on mytable(docs)
indextype is ctxsys.context
/

这个索引的创建者向SQL语言中引入了一些文本运算符,接下来使用这些文本运算符:

select * from mytable where contains( docs, 'some words' ) > 0;

它甚至能对如下的命令做出响应:

begin
 dbms_stats.gather_index_stats( user, 'MYINDEX' );
 end;
/

 

转载于:https://my.oschina.net/u/1862478/blog/1925865

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值