select l.shipid, l.shiplockid, l.upordown, s.shipspeed from LockCheckin l, ship s where l.LockCheckinid not in (select LockCheckinid from SCHEDULEEXECS) and l.shipid=s.shipid(+) order by shiplockid这是小弟写的sql,其中LockCheckin 和 SCHEDULEEXECS 都是百万级,偶尔会达到千万级的表,小弟知道not in的效率非常之差,详情大神们看看如何能提高数据查询效率
解决方案 »
- ora-14137问题,急!在线等。
- 为什么我用pl/sql中创建的oracle存储过程都是VALID的 都不能使用
- 【求助】请问pl/sql的SQL_windows中同时能执行多少条DML语句;
- 动态列扩展的衍生问题
- 100分求:为什么我的pl/sql developer查询出来的中文全部变为“靠”
- 请问高人:定时间每隔一个月运行一次存储过程,时间那段如何计算( DBMS—JOB。SUBMIT(:JOBNO,‘PROCEDURE—NAME’,SYSDATE,‘SYSDA
- insert into语句
- 小問題一個﹐望高手解答﹗
- 怎样查询当前插入的记录序号?
- 急!请帮忙指点一个SQL语句的优化问题
- oracle数据库表内数据迁移问题(思路)
- Win2008 R2如何安装Oracle 10G R2 RAC?
--LockCheckin中的shipid,LockCheckinid建立聯合索引
--ship中的shipid建立索引
--SCHEDULEEXECS中的LockCheckinid建立索引
--這些只是為了測試速度,測完後再恢復為你之前的
select l.shipid, l.shiplockid, l.upordown, s.shipspeed
from LockCheckin l, ship s
where l.shipid=s.shipid(+)
and not exists (select 1 from SCHEDULEEXECS where SCHEDULEEXECS.LockCheckinid=l.LockCheckinid)
order by shiplockid