我想寻求有关SQL调优的帮助。我需要优化现有的生产SQL查询,以在不占用高速缓存的情况下有效运行。
我试图在数据库表中插入“ from”部分,然后从那里插入源,但是合并该查询的工作使其运行明显变慢。
这是预更改:
FROM ( SELECT /*+ FULL(A) FULL(B) PARALLEL(A,10) PARALLEL(B,10) */
A.*, B.CCNA, B.CCNA_NAME
FROM TMP2 A, CNA B
WHERE A.DOCUMENT_NUMBER = B.DOCUMENT_NUMBER(+)
) A,
(SELECT /*+ FULL(A) FULL(B) PARALLEL(A,10) PARALLEL(B,10) */
A.*, B.STATE
FROM (
SELECT /*+ FULL(A) FULL(B) PARALLEL(A,10) PARALLEL(B,10) */
A.*, B.USOC
FROM TMP1 A, COSS B
WHERE A.SERV_ITEM_ID = B.SERV_ITEM_ID(+)
) A,
STATE B
WHERE A.SERV_ITEM_ID = B.SERV_ITEM_ID(+)) B
WHERE A.DOCUMENT_NUMBER = B.DOCUMENT_NUMBER(+)
这是发布后更改:
FROM TMP_TMP2 A,
TMP_TMP1_B B
WHERE A.DOCUMENT_NUMBER = B.DOCUMENT_NUMBER(+);
“ from”部分是相同的,我只是将postchange分配到了表中。 请在此处查看完整的代码:https://drive.google.com/open?id=1KAoupkleVySjYqX_sVDdWMETfc8JlOXR