真是谢谢各位了。 我看了一下EXPLAIN PLAN:QUERY PLANS -------------------------------------------------------------------------------- SELECT STATEMENT cost=1919 SORT GROUP BY MERGE JOIN SORT JOIN HASH JOIN TABLE ACCESS FULL T_s3 HASH JOIN TABLE ACCESS FULL T_s4 NESTED LOOPS INDEX FULL SCAN PK_T_f1 PARTITION RANGE ITERATOR INDEX RANGE SCAN PK_T_a FILTER SORT JOIN TABLE ACCESS FULL T_s2这里,数据量最大的T_a已经被INDEX RANGE SCAN。还有什么好招吗?
用EXPLAIN PLAN检查一下执行路径先
我看了一下EXPLAIN PLAN:QUERY PLANS
--------------------------------------------------------------------------------
SELECT STATEMENT cost=1919
SORT GROUP BY
MERGE JOIN
SORT JOIN
HASH JOIN
TABLE ACCESS FULL T_s3
HASH JOIN
TABLE ACCESS FULL T_s4
NESTED LOOPS
INDEX FULL SCAN PK_T_f1
PARTITION RANGE ITERATOR
INDEX RANGE SCAN PK_T_a
FILTER
SORT JOIN
TABLE ACCESS FULL T_s2这里,数据量最大的T_a已经被INDEX RANGE SCAN。还有什么好招吗?
已经有分区了。问题的关键在于符合条件的记录数超过30万条,有时甚至会超过400万条。真诚的谢谢大家,请再帮帮我!
可是四年没写了,有点手生,有点好了伤疤忘了疼。我被这个该死的速度害惨了,有点病急乱投医。但是我仍然抱有一点幻想:
如果用PL/SQL,那么我只要对T_a进行一次INDEX RANGE SCAN ,不用做很多次
HASH JOIN。是不是有道理呢?!唉,还是不能偷懒!等我写完PL/SQL再同大家讨论吧!
有愿意帮我写的人吗?我愿意给500分,当然要没有错误才行!还可以还价呀!不过一定要快!