Oracle 11g - Jak wybrać optymalizację powolnego równoległego wstawiania?
chcemy przyspieszyć przebieg równoległej instrukcji wstawiania poniżej. Spodziewamy się wstawić około 80 milionów rekordów i ukończenie tego zajmuje około 2 godzin.
INSERT /*+ PARALLEL(STAGING_EX,16) APPEND NOLOGGING */ INTO STAGING_EX (ID, TRAN_DT,
RECON_DT_START, RECON_DT_END, RECON_CONFIG_ID, RECON_PM_ID)
SELECT /*+PARALLEL(PM,16) */ SEQ_RESULT_ID.nextval, sysdate, sysdate, sysdate,
'8a038312403e859201405245eed00c42', T1.ID FROM PM T1 WHERE STATUS = 1 and not
exists(select 1 from RESULT where T1.ID = RECON_PM_ID and CREATE_DT >= sysdate - 60) and
UPLOAD_DT >= sysdate - 1 and (FUND_SRC_TYPE = :1)
Uważamy, że buforowanie wyników kolumny nieistniejącej przyspieszy wstawianie. Jak wykonać buforowanie? Jakieś pomysły, jak inaczej przyspieszyć wkładkę?
Zobacz poniżej statystyki statystyk z Enterprise Manager. Zauważyliśmy również, że stwierdzenia nie są prowadzone równolegle. Czy to normalne?
Edytuj: btw, sekwencja jest już buforowana do 1M