如下语句,已经咨询很多高手,现在已经强制索引了
表有200万数据select /*+ index (表,索引名)*/ a.*,b.Name from A a left join B b where a.code=b.code where rownum=1但是速度还是非常慢,如果把left join 改为 inner join,就非常快,但是这里只能用left join ,相同的语句在sqlserver中运行仅仅需要几毫秒select top 1 a.*,b.Name from A a left join B b where a.code=b.code where rownum=1
不知道还需要如何该呀??
表有200万数据select /*+ index (表,索引名)*/ a.*,b.Name from A a left join B b where a.code=b.code where rownum=1但是速度还是非常慢,如果把left join 改为 inner join,就非常快,但是这里只能用left join ,相同的语句在sqlserver中运行仅仅需要几毫秒select top 1 a.*,b.Name from A a left join B b where a.code=b.code where rownum=1
不知道还需要如何该呀??
解决方案 »
- SQL 難題?求教高手?
- oracle的blob建索引进行全文检索 中文查询不到, 英文可以
- 请问net8配置的概要文件中的"Oracle Advanced Security"
- 不知道这两个Select语句有何作用?我第一次见到.
- 查远程数据库,建了同义词,却发现奇慢呀,救命呀
- 在csdn发表了三篇新的文章,高兴,送分,同时希望大家提些好的选题。
- 为什么我的服务里面没有监听器?
- 急救!我想在SQL Plus里写import导入数据的语句,如何写呢?
- 如何修改system的密码
- in与exists 的问题。。。
- ORACLE如何获取字符型的逻辑表达式的值
- sql高手进来看看如何用sql实现舍位平衡?(带测试数据)
试试
select top 1 a.*,b.Name from A a left join B b on a.code=b.code
where rownum=1
select /*+ index (表,索引名)*/ a.*,b.Name from A a left join B b on a.code=b.code where rownum=1
确实没走索引,但是按照 各位所讲的加 /*+ index (表,索引名)*/ ,发现也没有走那个索引,为啥呢???
你的select结果集中 数据太多了,已经占据了表的40%以上的数据了,所以不走索引走表扫描了吧!