Oracle 11g - Comment optimiser lent parallèle insert select?

nous voulons accélérer l'exécution de l'insertion parallèles déclaration ci-dessous. Nous nous attendons à insérer autour de 80 millions de disques et prend environ 2 heures pour le terminer.

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) 

Nous pensons que la mise en cache des résultats de l'existe pas de colonne permettra d'accélérer les insertions. Comment effectuer la mise en cache? Toutes les idées de quelle autre manière à accélérer l'insertion?

Veuillez consulter ci-dessous le plan statistique à partir d'Enterprise Manager. Nous avons également constaté que les états ne sont pas en cours d'exécution en parallèle. Est-ce normal?

Oracle 11g - Comment optimiser lent parallèle insert select?

Edit: btw, la séquence est déjà dans le cache de 1M

l'optimisation de la requête et de l'optimisation de l'insertion sont des choses différentes. afin d'optimiser l'insertion-vous déjà utilisé append nologging - essayez de cache de l'ordre, aussi bien pour gratter un peu plus de temps ALTER SEQUENCE SEQ_RESULT_ID CACHE 1000;
La séquence est déjà dans le cache de 1 million de dollars mais il est encore lent. Plus d'idées?
Le nombre de lignes dans pm et result? Quel est le pourcentage sélectionnez-vous?
h tableau contient 79227256 enregistrements, tandis que la table de résultats contient 24 dossiers. Nous avons la sélection de près de 99% de chaque.
nologging n'est pas un vrai soupçon. Mais cela ne doit pas empêcher la append de travail.

OriginalL'auteur user1928162 | 2013-11-18