你套用了两个EXISTS,当然慢啦。你用下面的这个试一试。
SELECT COUNT(*)
FROM
(SELECT UNIQUE T1.PK --(Primary Key)
FROM T_CL_CUST T1,T_BILL_PLAN T2,V_BILL_PLAN T3
WHERE T1.CALL_LIST_ID = T2.CALL_LIST_ID AND T3.TASK_ID = 0000040142 AND T2.PLAN_SEQ = T3.PLAN_SEQ)
SELECT COUNT(*)
FROM
(SELECT UNIQUE T1.PK --(Primary Key)
FROM T_CL_CUST T1,T_BILL_PLAN T2,V_BILL_PLAN T3
WHERE T1.CALL_LIST_ID = T2.CALL_LIST_ID AND T3.TASK_ID = 0000040142 AND T2.PLAN_SEQ = T3.PLAN_SEQ)
解决方案 »
- 视图问题
- 配置oracle10 和sqlserver2000之间的透明网关 ora-28545:连接代理时 Net8诊断到错误
- 请教 PL/SQL ORA-01461 仅可以为插入LONG列的LONG值赋值
- 动态sql中使用forall bulk的问题
- Oracle中一次同时提交多条sql的问题
- 有什么好的方法测试sql语句的运行时间??
- 如何删除一个监听器及配置一个监听器,急急!在线等候!
- SQL查询条件的问题
- 想问问大家,需要什么样的oracle图书,已经出版的图书中,大家觉得哪些书出的比较好,对自己的工作有帮助?
- 关于查询组合数的SQL
- 在oracle创建数据库表的时候出了错,不知道错在那里?请指点,在线急
- TAB问题
还有,你可以把你的对各个表的限制,放到各个表里面去,看看执行效果呢。SELECT COUNT(*)
FROM
(SELECT UNIQUE T1.PK --(Primary Key)
FROM T_CL_CUST T1,T_BILL_PLAN T2,
(select * from V_BILL_PLAN where TASK_ID = 0000040142 ) T3
WHERE T1.CALL_LIST_ID = T2.CALL_LIST_ID AND T2.PLAN_SEQ = T3.PLAN_SEQ)