赞
踩
表中如果创建多个索引, 测试发现使用不同索,查询效率有较大差别。 我们希望使用某个更快的索引, 这个时候需要指定索引,以明确告诉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';
通过指定索引, 明确使用其他索引, 如下图,使用了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';
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。