首页 > Oracle > Oracle 函数索引的妙用!
2014
03-02

Oracle 函数索引的妙用!

函数索引大家可能都有接触,而且在一些特殊的地方也比较常用,我这里也不对函数索引作过多的介绍,简单的来看2个例子:

上面个例子可能再简单不过,索引不存储null值,所以如果创建一般的索引,那这个查询sql是不会走索引的,这里可以用到nvl函数,来创建函数索引:

按照如上的办法,创建一个nvl函数索引,然后简单的修改一下sql,那这里就可以走索引了,这里还有另一种办法,可能大家用得不是很多,看如下创建索引的方式:

通过创建组合索引的方式,这里就不管object_id是否为空,都可以存储到索引当中了。

下面我们来看另外一个例子,虽然大家都知道了索引的扫描方式,在使用索引的时候,还是要注意该选择什么样是索引扫描合适,我们来看一下一个简单的sql:

在test表中,owner<>’SYS’的只有一条数据,sql选择了索引扫描方式,但是却选择了IFFS,这样整个索引都会扫描,这里能不能走index  range scan呢,我们来看下面一个索引的创建方式:

我这里也创建了一个函数索引,这样sql在扫描的时候,就会选择index range scan了,可以看到这两个执行计划中的一致读,选择index range scan方式扫描的一致读比选择iffs方式的一致读少很多。因为表中owner不等于SYS的数据很少,回表也很快。

最后编辑:
作者:Jerry
一个积极向上的小青年,热衷于分享--Focus on DB,BI,ETL

Oracle 函数索引的妙用!》有 15 条评论

  1. 百度SEO 说:

    第一次来你网站,博客不错哦,赞一个。求认识,求回访。www.aiyw.net

  2. seo培训 说:

    第一次来~不错~

  3. 我不是来抢沙发的,也不是来打酱油的。

  4. 很久没有过来了,今天过来看一看!

  5. 内涵段子 说:

    网站不错,雁过留痕,欢迎互访!

  6. 谢谢博主分享,很实用!

留下一个回复

你的email不会被公开。