oracle 走指定索引,oracle 指定索引

表中如果创建多个索引, 测试发现使用不同索,查询效率有较大差别。 我们希望使用某个更快的索引, 这个时候需要指定索引,以明确告诉oracle使用更快的索引。

oracle指定索引语法:  /*+index(t ind_name)*/

“t”: 为表的别名, 如果查询语句中有表别名,这里必须使用表别名, 如果没有表别名,则直接使用表名

“ind_name”: 要使用的索引名称。

需要将指定索引的语句写在查询语句的最前面, 放在中间可能无法生效。

测试:

不指定索引时, oracle自己选择一个索引来使用。 如下图, 默认情况下使用了ind_class_name索引

select t.class_name, t.rowid from t_user t where  t.name='x' and t.class_name='x';

8db8f9cd530677960d3a11ce3575c74f.png

通过指定索引, 明确使用其他索引, 如下图,使用了ind_name索引

select  /*+index(t ind_name)*/ t.class_name, t.rowid from t_user t where  t.name='x' and t.class_name='x';

8a6681d24ef65d654b2daef7a4677615.png

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值