ORACLE多表连接查询效率
ORACLE多表连接查询效率求助
目前在做 一个查询,需要同时INNER JOIN 多张表,而且每张表都是上10W的数据量
如何对语句进行修改,索引已经加完。
------解决方案--------------------
据说:
INNER JOIN 超过5个,说明你的数据库表设计不合理。
------解决方案--------------------
跟你说下优化规则吧:
1.oracle的处理规则,他是从后面到前面的。所以同一个语句能尽量使数据量变小的条件要放后面,大表放前面。
2.建议你分步处理,使用临时表。
- SQL code
SELECT B.UPLOAD_DATE ,Q.C2_8260_2 ,Q.C6_8169_12 ,Q.C5_8249_11 ,Q.C3_8155_6 ,Q.C3_8155_6 ,N.C2_3039_2 ,T.C2_8028_2 ,T.C2_8028_2 ,D.C1_2380_2 ,R.C1_1154_2 ,W.C3_6314_7 FROM EDIMESSAGE E INNER JOIN UNB B ON B.MSG_ID=E.PK_ID INNER JOIN UNH H ON H.ROOT_ID=B.PK_ID INNER JOIN EQD Q ON Q.MST_ID=H.PK_ID INNER JOIN MEA W ON Q.PK_ID=W.MST_ID INNER JOIN NAD N ON N.MST_ID=H.PK_ID INNER JOIN TDT T ON H.PK_ID=T.MST_ID INNER JOIN RFF R ON R.MST_ID=Q.PK_ID INNER JOIN DTM D ON D.MST_ID=Q.PK_ID WHERE h.C2_0065_2='CODECO'
目前在做 一个查询,需要同时INNER JOIN 多张表,而且每张表都是上10W的数据量
如何对语句进行修改,索引已经加完。
------解决方案--------------------
据说:
INNER JOIN 超过5个,说明你的数据库表设计不合理。
------解决方案--------------------
跟你说下优化规则吧:
1.oracle的处理规则,他是从后面到前面的。所以同一个语句能尽量使数据量变小的条件要放后面,大表放前面。
2.建议你分步处理,使用临时表。