一个表的查询有办法同时用上两个索引吗? 表test大概2000万数据,column A,B,C如果我的查询条件包含A,BA,B都分别建有索引,但没有权限建A,B的联合索引,有没有办法在查询的时候先用A的索引再用B得索引? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看看执行计划,在SQL*PLUS下用SQL>SET AUTOT ONOracle自动优化查询语句,两个索引的无论先使用哪一个所用的时间应该是一样的。 如果楼主要强制使用A索引再用B索引,可以加提示HINT假设在A列建的索引名为index_aselect /*+ index(a index_a) */ from test where a=valuea and b=valueb; 谢谢您的解答,不过这样只是使用了A的索引,没使用B的,如果用hints 把A,B的索引放上去B的索引不能生效 两个索引都用,效率往往更低,所以,oracle不提供这样的方式 嗯,如果用A,B的联合索引会极大的提高效率,不过因为表比较大,对磁盘空间有影响,所以不能建。其实是想知道下能不能在不建联合索引的情况下,把A,B的索引都用上 使用多个索引,方法很多,你可以比较以下:1)hints: /*+ index(a i1 i2) */2)hints: INDEX_JOIN(hash join)3)hints: and_equal(merge join 算法),在oracle 10g中已经淘汰4)hints: INDEX_COMBINE(bitmap join算法)以上提示都有限制,请查询相关资料后再使用. Oracle创建表的疑问 oracle的2个监听问题:一个本地、一个服务器 oracle 行转列 oracle删除特定重复记录 请问哪儿有.net对oracle开发的基础教程? 请问一条找最大值的sql语句 帮个忙,请看一下里面的内容.我想把两个时间段给显示出来,怎么办? 一个任务问题 转移数据库的创建!!!!(分数可以再加) 两个结构相同的表中数据进行比较 hibernate 与 Oracle 触发器 疑惑 oracle sql语句优化
SQL>SET AUTOT ONOracle自动优化查询语句,两个索引的无论先使用哪一个所用的时间应该是一样的。
假设在A列建的索引名为index_aselect /*+ index(a index_a) */
from test
where a=valuea and b=valueb;
谢谢您的解答,不过这样只是使用了A的索引,没使用B的,如果用hints 把A,B的索引放上去B的索引不能生效
1)hints: /*+ index(a i1 i2) */
2)hints: INDEX_JOIN(hash join)
3)hints: and_equal(merge join 算法),在oracle 10g中已经淘汰
4)hints: INDEX_COMBINE(bitmap join算法)
以上提示都有限制,请查询相关资料后再使用.