解决方案 »
- 关于ORACLE对大表操作的效率问题
- [急]请教如何将下列行数据转为以逗号分隔的列数据?
- Oracle 中日期显示的问题!!
- oracle如何实现海量数据复制?
- 求解决方案(oracle查询)
- 单个表数据量过大,求解决方案
- 求助:关于user_tables与实际COUNT(*)结果相去甚远
- 求救:本人在linux下oracle10G数据库中用"exp"导出备份出现一下错误。请教高手指导........
- 我用Oracle Database Assistant建立一个数据库a,怎样配置相应的实例呢?
- 非常简单的问题,折腾一下午,求大神!!!
- rman恢复问题,有知道的进来看看
- 为什么同一个方法有时快有时慢呢?oracle 11g
select *
from tab1 e
where exists (select 1
from tab2 pp
where (e.id = pp.id or e.master_id = pp.id)
and pp.type = '1');
1楼的结果集会多出一部分,即存在e.master_id=pp.id and pp.type=1,但是同时存在e.id=pp.id(这几条记录都不满足pp.type=1) 这个部分
为什么需要优化呢,如果是查询缓慢的话,提供下执行计划
把2楼的句子括号里面和外边都可以全部改成inner join,不过效率应该不会很好的。
SELECT *
FROM tab1 e
WHERE e.id IN (SELECT pp.id FROM tab2 pp WHERE pp.type = '1')
UNION ALL
SELECT *
FROM tab1 e
WHERE e.master_id IN (SELECT ppid FROM tab2 pp WHERE pp.type = '1')