Bonjour,
J'ai une requête qui me retroune des enreg. quand j'essaie de créer une vue sur ce select, il prend bcp (trop) de temps.
Soit le code du select :
J'utilise le programme Toad, il me retourne très rapidement les premières lignes et quand j'essaie de consulter les derniers enreg. J'arrive généralement sur le message "End of channel communication".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 SELECT SD_MVTPRES.STATUS SD_MVTPRES_STATUS ,SD_MVTPRES.DB_ELEMENT_ID SD_MVTPRES_DB_ELEMENT_ID ,SD_MVTPRES.ID SD_MVTPRES_ID ,SD_MVTPRES.SD_MVT_TER_ID SD_MVTPRES_SD_MVT_TER_ID ,SD_MVTPRES.INT_ROLE_EMP_ID SD_MVTPRES_INT_ROLE_EMP_ID ,SD_MVTPRES.INT_ROLE_PAT_ID SD_MVTPRES_INT_ROLE_PAT_ID ,SD_MVTPRES.AS_PRODUIT_ID SD_MVTPRES_AS_PRODUIT_ID ,SD_MVTPRES.DATE_PRESTATION SD_MVTPRES_DATE_PRESTATION ,SD_MVTPRES.SIGNE * SD_MVTPRES.DUREE SD_MVTPRES_DUREE ,SD_MVTPRES.SIGNE * SD_MVTPRES.NOMBRE SD_MVTPRES_NOMBRE ,SD_MVTPRES.SIGNE * SD_MVTPRES.MONTANT SD_MVTPRES_MONTANT ,SD_MVTPRES.SIGNE SD_MVTPRES_SIGNE ,SD_MVTPRES.UNITE_DUREE SD_MVTPRES_UNITE_DUREE ,SD_MVTPRES.EST_AMBULATOIRE SD_MVTPRES_EST_AMBULATOIRE ,SD_MVTPRES.DO_GENRE_DOC_ID SD_MVTPRES_DO_GENRE_DOC_ID ,SD_MVTPRES.CHAINE_ZONES_SAISIES SD_MVTPRES_CHAINE_ZONES_SAISIE ,SD_MVTPRES.TP_TYPE_MAJO_FACT_CI SD_MVTPRES_TP_TYPE_MAJO_FACT_C ,SD_MVTPRES.TP_TYPE_MAJO_SAL_CI SD_MVTPRES_TP_TYPE_MAJO_SAL_CI ,SD_MVTPRES.TP_CAL_ENT_FACT_ID SD_MVTPRES_TP_CAL_ENT_FACT_ID ,SD_MVTPRES.TP_CAL_ENT_SAL_ID SD_MVTPRES_TP_CAL_ENT_SAL_ID ,SD_MVTPRES.SD_CAS_DOS_INTERV_ID SD_MVTPRES_SD_CAS_DOS_INTERV_I ,SD_MVTPRES.NO_DOCUM_VENTE SD_MVTPRES_NO_DOCUM_VENTE ,SD_MVTPRES.VARIANTE_PERIODE SD_MVTPRES_VARIANTE_PERIODE ,INT_IDROLE.NO_ROLE INT_IDROLE_EMP_NO_ROLE ,INT_IDROLE.ABREGE INT_IDROLE_EMP_ABREGE ,INT_IDROLE.NOM_AFFICHE INT_IDROLE_EMP_NOM_AFFICHE ,INT_IDROLE.INT_IDENT_ID INT_IDROLE_EMP_INT_IDENT_ID ,INT_IDROLE.AD_ADR_ID INT_IDROLE_EMP_AD_ADR_ID ,AS_PROD.REFERENCE_INT_1_PIC AS_PROD_REFERENCE_INT_1_PIC ,AS_PROD.REFERENCE_INT_2_PIC AS_PROD_REFERENCE_INT_2_PIC FROM SD_MVT_PRESTATION SD_MVTPRES ,AS_PRODUIT AS_PROD ,INT_IDENT_ROLE INT_IDROLE WHERE AS_PROD.ID=SD_MVTPRES.AS_PRODUIT_ID and INT_IDROLE.ID=SD_MVTPRES.INT_ROLE_EMP_ID;
La table SD_MVT_PRESTATION contient un peu plus de 4 millions de lignes.
Comme la vue est créée sur la totalité des lignes, elle prend beaucoup de temps pour se construire et généralement sa construction n'arrive pas a terme.
Voici le plan d'exécution :
Que dois-je faire afin d'accélérer sa construction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 SELECT SD_MVTPRES.STATUS SD_MVTPRES_STATUS ,SD_MVTPRES.DB_ELEMENT_ID SD_MVTPRES_DB_ELEMENT_ID ,SD_MVTPRES.ID SD_MVTPRES_ID ,SD_MVTPRES.SD_MVT_TER_ID SD_MVTPRES_SD_MVT_TER_ID ,SD_MVTPRES.INT_ROLE_EMP_ID SD_MVTPRES_INT_ROLE_EMP_ID ,SD_MVTPRES.INT_ROLE_PAT_ID SD_MVTPRES_INT_ROLE_PAT_ID ,SD_MVTPRES.AS_PRODUIT_ID SD_MVTPRES_AS_PRODUIT_ID ,SD_MVTPRES.DATE_PRESTATION SD_MVTPRES_DATE_PRESTATION ,SD_MVTPRES.SIGNE * SD_MVTPRES.DUREE SD_MVTPRES_DUREE ,SD_MVTPRES.SIGNE * SD_MVTPRES.NOMBRE SD_MVTPRES_NOMBRE ,SD_MVTPRES.SIGNE * SD_MVTPRES.MONTANT SD_MVTPRES_MONTANT ,SD_MVTPRES.SIGNE SD_MVTPRES_SIGNE ,SD_MVTPRES.UNITE_DUREE SD_MVTPRES_UNITE_DUREE ,SD_MVTPRES.EST_AMBULATOIRE SD_MVTPRES_EST_AMBULATOIRE ,SD_MVTPRES.DO_GENRE_DOC_ID SD_MVTPRES_DO_GENRE_DOC_ID ,SD_MVTPRES.CHAINE_ZONES_SAISIES SD_MVTPRES_CHAINE_ZONES_SAISIE ,SD_MVTPRES.TP_TYPE_MAJO_FACT_CI SD_MVTPRES_TP_TYPE_MAJO_FACT_C ,SD_MVTPRES.TP_TYPE_MAJO_SAL_CI SD_MVTPRES_TP_TYPE_MAJO_SAL_CI ,SD_MVTPRES.TP_CAL_ENT_FACT_ID SD_MVTPRES_TP_CAL_ENT_FACT_ID ,SD_MVTPRES.TP_CAL_ENT_SAL_ID SD_MVTPRES_TP_CAL_ENT_SAL_ID ,SD_MVTPRES.SD_CAS_DOS_INTERV_ID SD_MVTPRES_SD_CAS_DOS_INTERV_I ,SD_MVTPRES.NO_DOCUM_VENTE SD_MVTPRES_NO_DOCUM_VENTE ,SD_MVTPRES.VARIANTE_PERIODE SD_MVTPRES_VARIANTE_PERIODE ,INT_IDROLE.NO_ROLE INT_IDROLE_EMP_NO_ROLE ,INT_IDROLE.ABREGE INT_IDROLE_EMP_ABREGE ,INT_IDROLE.NOM_AFFICHE INT_IDROLE_EMP_NOM_AFFICHE ,INT_IDROLE.INT_IDENT_ID INT_IDROLE_EMP_INT_IDENT_ID ,INT_IDROLE.AD_ADR_ID INT_IDROLE_EMP_AD_ADR_ID ,AS_PROD.REFERENCE_INT_1_PIC AS_PROD_REFERENCE_INT_1_PIC ,AS_PROD.REFERENCE_INT_2_PIC AS_PROD_REFERENCE_INT_2_PIC FROM SD_MVT_PRESTATION SD_MVTPRES ,AS_PRODUIT AS_PROD ,INT_IDENT_ROLE INT_IDROLE WHERE AS_PROD.ID=SD_MVTPRES.AS_PRODUIT_ID and INT_IDROLE.ID=SD_MVTPRES.INT_ROLE_EMP_ID; call count cpu elapsed disk query current rows ------- ------ -------- ---------- ---------- ---------- ---------- ---------- Parse 1 0.00 0.01 0 0 0 0 Execute 1 0.00 0.00 0 0 0 0 Fetch 1 0.03 0.14 215 218 0 25 ------- ------ -------- ---------- ---------- ---------- ---------- ---------- total 3 0.03 0.16 215 218 0 25 Misses in library cache during parse: 1 Optimizer goal: CHOOSE Parsing user id: 62 (ID_SAFJURA) Rows Execution Plan ------- --------------------------------------------------- 0 SELECT STATEMENT GOAL: CHOOSE 0 HASH JOIN 0 TABLE ACCESS GOAL: ANALYZED (FULL) OF 'INT_IDENT_ROLE' 0 TABLE ACCESS GOAL: ANALYZED (BY INDEX ROWID) OF 'SD_MVT_PRESTATION' 0 NESTED LOOPS 0 TABLE ACCESS GOAL: ANALYZED (FULL) OF 'AS_PRODUIT' 0 INDEX (RANGE SCAN) OF 'SD_MVTPRES_AS_PROD_IDX' (NON-UNIQUE)
Merci d'avance.
Partager