IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Index non utilisé sur une base


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2002
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2002
    Messages : 203
    Par défaut Index non utilisé sur une base
    Bonjour,
    j'ai 2 bases de données: Une prod, et une qualif qui ont la meme volumétrie de donnée, ainsi que d'architecture.

    Les développeurs m'ont filé une requete bien lourde a analyser.

    Lorsqu'on l'excute sur la qualif, elle tourne niquel, 0.5sec, par contre sur la production, les temps de réponces sont tres long (15-20sec)

    J'ai fais lancé un plan d'execution sur les 2 environnements, et la différence est que sur la qualif il passe par un index, et pas sur la prod.

    J'ai donc vérifié l'index, il est bien valide,
    les stats sont récentes
    j'ai fais un rebuild

    Et il ne passe toujours pas par ce fichu index ....

    La requete possede simplement des jointures INNER JOIN

    L'indexe est sur une table avec 3Million d'enregistrements qui possede 2 champs
    l'indexe est sur ces 2 champs en UNIQUE.
    La jointure correspond bien a ces 2 champs dans l'ordre qu'il faut.

    J'avoue que je seche la (

    Quelqu'un aurait une idée ?

    Voici le bout de requete qui coince
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    AND (lot0_.LOT_OID NOT IN
                   (SELECT lot4_.LOT_OID
                      FROM t.a_LOT lot4_
                           INNER JOIN t.a_LOT_TRAITEMENT listetrait5_
                              ON lot4_.LOT_OID =
                                    listetrait5_.LOT_OID
                           INNER JOIN t.a_TRAITEMENT traitement6_
                              ON listetrait5_.TRAIT_OID =
                                    traitement6_.TRAIT_OID
                     WHERE     traitement6_.TRAIT_TYPE = 'AUTORIS_SP'
                           AND traitement6_.TRAIT_ETAT = 'VALIDE'))

  2. #2
    Membre expérimenté Avatar de dariyoosh
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 236
    Par défaut
    Bonjour,

    Est-ce qu'on peut voir le résultat de DISPLAY PLAN sur les deux environnements, ainsi que la description des tables (CREATE TABLE statements) avec les index définis qui sont censés intervenir dans cette requête?

    ... j'ai 2 bases de données: Une prod, et une qualif qui ont la meme volumétrie de donnée, ainsi que d'architecture ...
    C'est vrai que le fait d'avoir une même volumétrie est un élément qui pourrait (j'emploie bien conditionnel) être une information intéressant mais par contre cette égalité de volumétrie ne nous dit rien sur les valeurs distinctes dans les tables dans chaque environnements, ce qui bien entendu compte en ce qui concerne le calcul des statistiques (à moins que votre base qualif ne soit l'image de la base de production).

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Le-DOC Voir le message
    Bonjour,
    j'ai 2 bases de données: Une prod, et une qualif qui ont la meme volumétrie de donnée, ainsi que d'architecture.
    La Belgique et le Portugal ont la même population en terme de volumétrie. Ce sont toutes des deux démocraties.... Pensez vous qu'ils ont :
    • Un niveau de vie identique ?
    • les mêmes tendances de vote ?
    • une météo similaire ?

    Un plan de requête est décidé en fonction des statistiques (histogrammes) de distribution de la valeur des données... Par conséquence une volumétrie n'a aucune signification en regarde de l'optimiseur pour décider de son plan d'attaque des données....

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2002
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2002
    Messages : 203
    Par défaut
    Bonjour,

    Voici les description de la table + index
    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
    Table MDX2_LOT_TRAITEMENT
    	- LOT_OID VARCHAR2 70 CHAR NOT NULL
    	- TRAIT_OID VARCHAR2 70 CHAR NOT NULL
     
     
     CREATE TABLE "MDX2"."MDX2_LOT_TRAITEMENT" ( "LOT_OID" VARCHAR2(70 CHAR) NOT NULL , "TRAIT_OID" VARCHAR2(70 CHAR) NOT NULL , CONSTRAINT "FK52DC6F11F66CD1BC" FOREIGN KEY ("LOT_OID") REFERENCES "MDX2"."MDX2_LOT" ("LOT_OID") VALIDATE , CONSTRAINT "LOT_TRAIT_UK" UNIQUE ("TRAIT_OID", "LOT_OID") VALIDATE , CONSTRAINT "MDX2_LOT_TRAIT_FK" FOREIGN KEY ("TRAIT_OID") REFERENCES "MDX2"."MDX2_TRAITEMENT" ("TRAIT_OID") VALIDATE ) TABLESPACE "USERS" PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 73728K BUFFER_POOL DEFAULT) LOGGING 
     
     
     
     
    Schema.Index Colonnes indexées Position de colonne 
    MDX2.LOT_TRAIT_IDX_1 LOT_OID   1
                         TRAIT_OID 2 
    MDX2.MDX2_LOT_IX     LOT_OID 1 
    MDX2.MDX2_TRAIT_IX   TRAIT_OID 1 
     
     
    CREATE UNIQUE INDEX "MDX2"."LOT_TRAIT_IDX_1" ON "MDX2"."MDX2_LOT_TRAITEMENT" ("LOT_OID", "TRAIT_OID") TABLESPACE "USERS" PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 99328K BUFFER_POOL DEFAULT) LOGGING LOCAL


    Voici le plan d'execution de la prod:
    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    -------------------------------------------------------------------------------------------------------------------------
    | Id  | Operation                                | Name                 | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
    -------------------------------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT                         |                      |     1 |   447 |       | 26874   (2)| 00:05:23 |
    |   1 |  HASH UNIQUE                             |                      |     1 |   447 |       | 26874   (2)| 00:05:23 |
    |*  2 |   FILTER                                 |                      |       |       |       |            |          |
    |   3 |    NESTED LOOPS                          |                      |     1 |   447 |       | 26873   (2)| 00:05:23 |
    |   4 |     NESTED LOOPS                         |                      |     1 |   381 |       | 26870   (2)| 00:05:23 |
    |*  5 |      HASH JOIN ANTI                      |                      |     1 |   340 |       | 26867   (2)| 00:05:23 |
    |   6 |       TABLE ACCESS BY INDEX ROWID        | MDX2_LOT             |  1344 |   402K|       |    82   (0)| 00:00:01 |
    |*  7 |        INDEX RANGE SCAN                  | LOT_ETAT_IX          |  1344 |       |       |     6   (0)| 00:00:01 |
    |   8 |       VIEW                               | VW_NSO_1             |   433K|    13M|       | 26777   (2)| 00:05:22 |
    |*  9 |        HASH JOIN                         |                      |   433K|    63M|    16M| 26777   (2)| 00:05:22 |
    |  10 |         INDEX FAST FULL SCAN             | SYS_C005742          |   385K|    12M|       |   516   (3)| 00:00:07 |
    |* 11 |         HASH JOIN                        |                      |   433K|    49M|    22M| 22703   (2)| 00:04:33 |
    |* 12 |          INDEX RANGE SCAN                | MDX2_TRAIT_TYETOI_IX |   363K|    18M|       |  3221   (1)| 00:00:39 |
    |  13 |          TABLE ACCESS FULL               | MDX2_LOT_TRAITEMENT  |  3067K|   193M|       |  6903   (2)| 00:01:23 |
    |* 14 |      TABLE ACCESS BY INDEX ROWID         | MDX2_MARCHANDISE     |     2 |    82 |       |     3   (0)| 00:00:01 |
    |* 15 |       INDEX RANGE SCAN                   | MARCHNADISE_LOT_FK   |     2 |       |       |     2   (0)| 00:00:01 |
    |* 16 |     INDEX RANGE SCAN                     | LOT_TRAIT_IDX_1      |    10 |   660 |       |     3   (0)| 00:00:01 |
    |  17 |    NESTED LOOPS                          |                      |     1 |   106 |       |     5   (0)| 00:00:01 |
    |* 18 |     TABLE ACCESS BY INDEX ROWID          | MDX2_LOT             |     1 |    67 |       |     3   (0)| 00:00:01 |
    |* 19 |      INDEX UNIQUE SCAN                   | SYS_C005742          |     1 |       |       |     2   (0)| 00:00:01 |
    |* 20 |     TABLE ACCESS BY INDEX ROWID          | MDX2_ESCALE          | 34221 |  1303K|       |     2   (0)| 00:00:01 |
    |* 21 |      INDEX RANGE SCAN                    | MDX2_ESCALE_OID      |     1 |       |       |     1   (0)| 00:00:01 |
    |  22 |      NESTED LOOPS                        |                      |   109 | 37605 |       |   277   (1)| 00:00:04 |
    |  23 |       MERGE JOIN CARTESIAN               |                      |   109 | 31719 |       |    58   (0)| 00:00:01 |
    |  24 |        NESTED LOOPS                      |                      |    10 |  2250 |       |    28   (0)| 00:00:01 |
    |  25 |         NESTED LOOPS                     |                      |    10 |  1710 |       |     8   (0)| 00:00:01 |
    |  26 |          NESTED LOOPS                    |                      |     1 |   105 |       |     5   (0)| 00:00:01 |
    |* 27 |           TABLE ACCESS BY INDEX ROWID    | MDX2_LOT             |     1 |    66 |       |     3   (0)| 00:00:01 |
    |* 28 |            INDEX UNIQUE SCAN             | SYS_C005742          |     1 |       |       |     2   (0)| 00:00:01 |
    |* 29 |           TABLE ACCESS BY INDEX ROWID    | MDX2_ESCALE          | 34221 |  1303K|       |     2   (0)| 00:00:01 |
    |* 30 |            INDEX RANGE SCAN              | MDX2_ESCALE_OID      |     1 |       |       |     1   (0)| 00:00:01 |
    |* 31 |          INDEX RANGE SCAN                | LOT_TRAIT_IDX_1      |    10 |   660 |       |     3   (0)| 00:00:01 |
    |* 32 |         TABLE ACCESS BY INDEX ROWID      | MDX2_TRAITEMENT      |     1 |    54 |       |     2   (0)| 00:00:01 |
    |* 33 |          INDEX UNIQUE SCAN               | MDX2_TRAITEMENT_PK   |     1 |       |       |     1   (0)| 00:00:01 |
    |  34 |        BUFFER SORT                       |                      |    10 |   660 |       |    56   (0)| 00:00:01 |
    |* 35 |         INDEX RANGE SCAN                 | LOT_TRAIT_IDX_1      |    10 |   660 |       |     3   (0)| 00:00:01 |
    |* 36 |       TABLE ACCESS BY INDEX ROWID        | MDX2_TRAITEMENT      |     1 |    54 |       |     2   (0)| 00:00:01 |
    |* 37 |        INDEX UNIQUE SCAN                 | MDX2_TRAITEMENT_PK   |     1 |       |       |     1   (0)| 00:00:01 |
    |* 38 |        HASH JOIN                         |                      |  1142 |   519K|       |   624   (1)| 00:00:08 |
    |* 39 |         INDEX RANGE SCAN                 | MDX2_TRAIT_TYETOI_IX |  1705 | 92070 |       |    19   (0)| 00:00:01 |
    |  40 |         MERGE JOIN CARTESIAN             |                      |  1143 |   459K|       |   604   (1)| 00:00:08 |
    |  41 |          NESTED LOOPS                    |                      |   109 | 37714 |       |   277   (1)| 00:00:04 |
    |  42 |           MERGE JOIN CARTESIAN           |                      |   109 | 31828 |       |    58   (0)| 00:00:01 |
    |  43 |            NESTED LOOPS                  |                      |    10 |  2260 |       |    28   (0)| 00:00:01 |
    |  44 |             NESTED LOOPS                 |                      |    10 |  1720 |       |     8   (0)| 00:00:01 |
    |  45 |              NESTED LOOPS                |                      |     1 |   106 |       |     5   (0)| 00:00:01 |
    |* 46 |               TABLE ACCESS BY INDEX ROWID| MDX2_LOT             |     1 |    67 |       |     3   (0)| 00:00:01 |
    |* 47 |                INDEX UNIQUE SCAN         | SYS_C005742          |     1 |       |       |     2   (0)| 00:00:01 |
    |* 48 |               TABLE ACCESS BY INDEX ROWID| MDX2_ESCALE          | 34221 |  1303K|       |     2   (0)| 00:00:01 |
    |* 49 |                INDEX RANGE SCAN          | MDX2_ESCALE_OID      |     1 |       |       |     1   (0)| 00:00:01 |
    |* 50 |              INDEX RANGE SCAN            | LOT_TRAIT_IDX_1      |    10 |   660 |       |     3   (0)| 00:00:01 |
    |* 51 |             TABLE ACCESS BY INDEX ROWID  | MDX2_TRAITEMENT      |     1 |    54 |       |     2   (0)| 00:00:01 |
    |* 52 |              INDEX UNIQUE SCAN           | MDX2_TRAITEMENT_PK   |     1 |       |       |     1   (0)| 00:00:01 |
    |  53 |            BUFFER SORT                   |                      |    10 |   660 |       |    56   (0)| 00:00:01 |
    |* 54 |             INDEX RANGE SCAN             | LOT_TRAIT_IDX_1      |    10 |   660 |       |     3   (0)| 00:00:01 |
    |* 55 |           TABLE ACCESS BY INDEX ROWID    | MDX2_TRAITEMENT      |     1 |    54 |       |     2   (0)| 00:00:01 |
    |* 56 |            INDEX UNIQUE SCAN             | MDX2_TRAITEMENT_PK   |     1 |       |       |     1   (0)| 00:00:01 |
    |  57 |          BUFFER SORT                     |                      |    10 |   660 |       |   602   (1)| 00:00:08 |
    |* 58 |           INDEX RANGE SCAN               | LOT_TRAIT_IDX_1      |    10 |   660 |       |     3   (0)| 00:00:01 |
    -------------------------------------------------------------------------------------------------------------------------
     
     
    Predicate Information (identified by operation id):
    ---------------------------------------------------
       5 - access("LOT0_"."LOT_OID"="LOT_OID")
       7 - access("LOT0_"."LOT_ETAT"='VALIDE')
       9 - access("LISTETRAIT5_"."LOT_OID"="LOT4_"."LOT_OID")
      11 - access("LISTETRAIT5_"."TRAIT_OID"="TRAITEMENT6_"."TRAIT_OID")
      12 - access("TRAITEMENT6_"."TRAIT_TYPE"='AUTORIS_SP' AND "TRAITEMENT6_"."TRAIT_ETAT"='VALIDE')
      14 - filter("LISTEMARCH3_"."MARC_ETAT"='VALIDE')
      15 - access("LISTEMARCH3_"."LOT_OID"="LOT0_"."LOT_OID")
      16 - access("LISTETRAIT1_"."LOT_OID"="LOT0_"."LOT_OID")
      18 - filter("LOT7_"."ESC_IN_OID" IS NOT NULL AND "LOT7_"."LOT_ETAT"=:B1 AND ("LOT7_"."LOT_TYPE_TRAFIC"='CONTI'
                  OR "LOT7_"."LOT_TYPE_TRAFIC"='CONTI_CHARG' OR "LOT7_"."LOT_TYPE_TRAFIC"='CONTI_TRANS' OR
                  "LOT7_"."LOT_TYPE_TRAFIC"='IMPORT' OR "LOT7_"."LOT_TYPE_TRAFIC"='TRANSIT'))
      19 - access("LOT7_"."LOT_OID"=:B1)
      20 - filter("ESCALE8_"."ESC_AREA_CODE"='OUEST')
      21 - access("LOT7_"."ESC_IN_OID"="ESCALE8_"."ESC_OID")
      27 - filter("LOT9_"."ESC_OUT_OID" IS NOT NULL AND "LOT9_"."LOT_ETAT"=:B1 AND
                  "LOT9_"."LOT_TYPE_TRAFIC"='EXPORT')
      28 - access("LOT9_"."LOT_OID"=:B1)
      29 - filter("ESCALE14_"."ESC_AREA_CODE"='OUEST')
      30 - access("LOT9_"."ESC_OUT_OID"="ESCALE14_"."ESC_OID")
      31 - access("LISTETRAIT10_"."LOT_OID"=:B1)
      32 - filter("TRAITEMENT11_"."TRAIT_TYPE"='VALID_AG_FRET_DEPART' AND "TRAITEMENT11_"."TRAIT_ETAT"='VALIDE')
      33 - access("LISTETRAIT10_"."TRAIT_OID"="TRAITEMENT11_"."TRAIT_OID")
      35 - access("LISTETRAIT12_"."LOT_OID"=:B1)
      36 - filter("TRAITEMENT13_"."TRAIT_TYPE"='VALID_AG_COQUE_DEPART' AND "TRAITEMENT13_"."TRAIT_ETAT"='VALIDE')
      37 - access("LISTETRAIT12_"."TRAIT_OID"="TRAITEMENT13_"."TRAIT_OID")
      38 - access("LISTETRAIT20_"."TRAIT_OID"="TRAITEMENT21_"."TRAIT_OID")
      39 - access("TRAITEMENT21_"."TRAIT_TYPE"='VALID_AG_FRET_ARRIV' AND "TRAITEMENT21_"."TRAIT_ETAT"='VALIDE')
      46 - filter("LOT15_"."ESC_IN_OID" IS NOT NULL AND "LOT15_"."LOT_TYPE_TRAFIC"='TRANSBO' AND
                  "LOT15_"."LOT_ETAT"=:B1)
      47 - access("LOT15_"."LOT_OID"=:B1)
      48 - filter("ESCALE22_"."ESC_AREA_CODE"='OUEST')
      49 - access("LOT15_"."ESC_IN_OID"="ESCALE22_"."ESC_OID")
      50 - access("LISTETRAIT16_"."LOT_OID"=:B1)
      51 - filter("TRAITEMENT17_"."TRAIT_TYPE"='VALID_AG_FRET_DEPART' AND "TRAITEMENT17_"."TRAIT_ETAT"='VALIDE')
      52 - access("LISTETRAIT16_"."TRAIT_OID"="TRAITEMENT17_"."TRAIT_OID")
      54 - access("LISTETRAIT18_"."LOT_OID"=:B1)
      55 - filter("TRAITEMENT19_"."TRAIT_TYPE"='VALID_AG_COQUE_DEPART' AND "TRAITEMENT19_"."TRAIT_ETAT"='VALIDE')
      56 - access("LISTETRAIT18_"."TRAIT_OID"="TRAITEMENT19_"."TRAIT_OID")
      58 - access("LISTETRAIT20_"."LOT_OID"=:B1)
    C'est la ligne 13 qui m'interesse

    et celui de la qualif
    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    -------------------------------------------------------------------------------------------------------------------
    | Id  | Operation                                  | Name                 | Rows  | Bytes | Cost (%CPU)| Time     |
    -------------------------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT                           |                      |     1 |   416 |  3301   (1)| 00:00:40 |
    |   1 |  HASH UNIQUE                               |                      |     1 |   416 |  3301   (1)| 00:00:40 |
    |*  2 |   FILTER                                   |                      |       |       |            |          |
    |   3 |    NESTED LOOPS                            |                      |  1595 |   647K|   845   (1)| 00:00:11 |
    |   4 |     NESTED LOOPS                           |                      |   172 | 60200 |   328   (0)| 00:00:04 |
    |   5 |      TABLE ACCESS BY INDEX ROWID           | MDX2_LOT             |   107 | 33063 |     8   (0)| 00:00:01 |
    |*  6 |       INDEX RANGE SCAN                     | LOT_ETAT_IX          |   107 |       |     3   (0)| 00:00:01 |
    |*  7 |      TABLE ACCESS BY INDEX ROWID           | MDX2_MARCHANDISE     |     2 |    82 |     3   (0)| 00:00:01 |
    |*  8 |       INDEX RANGE SCAN                     | MARCHNADISE_LOT_FK   |     2 |       |     2   (0)| 00:00:01 |
    |*  9 |     INDEX RANGE SCAN                       | LOT_TRAIT_IDX_1      |     9 |   594 |     3   (0)| 00:00:01 |
    |  10 |    NESTED LOOPS                            |                      |     9 |  1377 |    23   (0)| 00:00:01 |
    |  11 |     NESTED LOOPS                           |                      |     9 |   891 |     5   (0)| 00:00:01 |
    |* 12 |      INDEX UNIQUE SCAN                     | SYS_C005742          |     1 |    33 |     2   (0)| 00:00:01 |
    |* 13 |      INDEX RANGE SCAN                      | LOT_TRAIT_IDX_1      |     9 |   594 |     3   (0)| 00:00:01 |
    |* 14 |     TABLE ACCESS BY INDEX ROWID            | MDX2_TRAITEMENT      |     1 |    54 |     2   (0)| 00:00:01 |
    |* 15 |      INDEX UNIQUE SCAN                     | MDX2_TRAITEMENT_PK   |     1 |       |     1   (0)| 00:00:01 |
    |  16 |      NESTED LOOPS                          |                      |     1 |   109 |     5   (0)| 00:00:01 |
    |* 17 |       TABLE ACCESS BY INDEX ROWID          | MDX2_LOT             |     1 |    69 |     3   (0)| 00:00:01 |
    |* 18 |        INDEX UNIQUE SCAN                   | SYS_C005742          |     1 |       |     2   (0)| 00:00:01 |
    |* 19 |       TABLE ACCESS BY INDEX ROWID          | MDX2_ESCALE          | 34075 |  1331K|     2   (0)| 00:00:01 |
    |* 20 |        INDEX RANGE SCAN                    | MDX2_ESCALE_OID      |     1 |       |     1   (0)| 00:00:01 |
    |  21 |        NESTED LOOPS                        |                      |    86 | 29842 |   224   (0)| 00:00:03 |
    |  22 |         MERGE JOIN CARTESIAN               |                      |    86 | 25198 |    53   (0)| 00:00:01 |
    |  23 |          NESTED LOOPS                      |                      |     9 |  2043 |    26   (0)| 00:00:01 |
    |  24 |           NESTED LOOPS                     |                      |     9 |  1557 |     8   (0)| 00:00:01 |
    |  25 |            NESTED LOOPS                    |                      |     1 |   107 |     5   (0)| 00:00:01 |
    |* 26 |             TABLE ACCESS BY INDEX ROWID    | MDX2_LOT             |     1 |    67 |     3   (0)| 00:00:01 |
    |* 27 |              INDEX UNIQUE SCAN             | SYS_C005742          |     1 |       |     2   (0)| 00:00:01 |
    |* 28 |             TABLE ACCESS BY INDEX ROWID    | MDX2_ESCALE          | 34075 |  1331K|     2   (0)| 00:00:01 |
    |* 29 |              INDEX RANGE SCAN              | MDX2_ESCALE_OID      |     1 |       |     1   (0)| 00:00:01 |
    |* 30 |            INDEX RANGE SCAN                | LOT_TRAIT_IDX_1      |     9 |   594 |     3   (0)| 00:00:01 |
    |* 31 |           TABLE ACCESS BY INDEX ROWID      | MDX2_TRAITEMENT      |     1 |    54 |     2   (0)| 00:00:01 |
    |* 32 |            INDEX UNIQUE SCAN               | MDX2_TRAITEMENT_PK   |     1 |       |     1   (0)| 00:00:01 |
    |  33 |          BUFFER SORT                       |                      |     9 |   594 |    51   (0)| 00:00:01 |
    |* 34 |           INDEX RANGE SCAN                 | LOT_TRAIT_IDX_1      |     9 |   594 |     3   (0)| 00:00:01 |
    |* 35 |         TABLE ACCESS BY INDEX ROWID        | MDX2_TRAITEMENT      |     1 |    54 |     2   (0)| 00:00:01 |
    |* 36 |          INDEX UNIQUE SCAN                 | MDX2_TRAITEMENT_PK   |     1 |       |     1   (0)| 00:00:01 |
    |* 37 |          HASH JOIN                         |                      |   803 |   367K|   507   (1)| 00:00:07 |
    |* 38 |           INDEX RANGE SCAN                 | MDX2_TRAIT_TYETOI_IX |  1481 | 79974 |    24   (0)| 00:00:01 |
    |  39 |           MERGE JOIN CARTESIAN             |                      |   803 |   325K|   483   (1)| 00:00:06 |
    |  40 |            NESTED LOOPS                    |                      |    86 | 30014 |   224   (0)| 00:00:03 |
    |  41 |             MERGE JOIN CARTESIAN           |                      |    86 | 25370 |    53   (0)| 00:00:01 |
    |  42 |              NESTED LOOPS                  |                      |     9 |  2061 |    26   (0)| 00:00:01 |
    |  43 |               NESTED LOOPS                 |                      |     9 |  1575 |     8   (0)| 00:00:01 |
    |  44 |                NESTED LOOPS                |                      |     1 |   109 |     5   (0)| 00:00:01 |
    |* 45 |                 TABLE ACCESS BY INDEX ROWID| MDX2_LOT             |     1 |    69 |     3   (0)| 00:00:01 |
    |* 46 |                  INDEX UNIQUE SCAN         | SYS_C005742          |     1 |       |     2   (0)| 00:00:01 |
    |* 47 |                 TABLE ACCESS BY INDEX ROWID| MDX2_ESCALE          | 34075 |  1331K|     2   (0)| 00:00:01 |
    |* 48 |                  INDEX RANGE SCAN          | MDX2_ESCALE_OID      |     1 |       |     1   (0)| 00:00:01 |
    |* 49 |                INDEX RANGE SCAN            | LOT_TRAIT_IDX_1      |     9 |   594 |     3   (0)| 00:00:01 |
    |* 50 |               TABLE ACCESS BY INDEX ROWID  | MDX2_TRAITEMENT      |     1 |    54 |     2   (0)| 00:00:01 |
    |* 51 |                INDEX UNIQUE SCAN           | MDX2_TRAITEMENT_PK   |     1 |       |     1   (0)| 00:00:01 |
    |  52 |              BUFFER SORT                   |                      |     9 |   594 |    51   (0)| 00:00:01 |
    |* 53 |               INDEX RANGE SCAN             | LOT_TRAIT_IDX_1      |     9 |   594 |     3   (0)| 00:00:01 |
    |* 54 |             TABLE ACCESS BY INDEX ROWID    | MDX2_TRAITEMENT      |     1 |    54 |     2   (0)| 00:00:01 |
    |* 55 |              INDEX UNIQUE SCAN             | MDX2_TRAITEMENT_PK   |     1 |       |     1   (0)| 00:00:01 |
    |  56 |            BUFFER SORT                     |                      |     9 |   594 |   481   (1)| 00:00:06 |
    |* 57 |             INDEX RANGE SCAN               | LOT_TRAIT_IDX_1      |     9 |   594 |     3   (0)| 00:00:01 |
    -------------------------------------------------------------------------------------------------------------------
     
    Predicate Information (identified by operation id):                             
    --------------------------------------------------- 
      6 - access("LOT0_"."LOT_ETAT"='VALIDE')                                      
       7 - filter("LISTEMARCH3_"."MARC_ETAT"='VALIDE')                              
       8 - access("LISTEMARCH3_"."LOT_OID"="LOT0_"."LOT_OID")                       
       9 - access("LISTETRAIT1_"."LOT_OID"="LOT0_"."LOT_OID")                       
      12 - access("LOT4_"."LOT_OID"=:B1)                                            
      13 - access("LISTETRAIT5_"."LOT_OID"=:B1)                                     
      14 - filter("TRAITEMENT6_"."TRAIT_TYPE"='AUTORIS_SP' AND "TRAITEMENT6_"."TRAIT
    _ETAT"='VALIDE')                                                                
     
      15 - access("LISTETRAIT5_"."TRAIT_OID"="TRAITEMENT6_"."TRAIT_OID")            
      17 - filter("LOT7_"."ESC_IN_OID" IS NOT NULL AND "LOT7_"."LOT_ETAT"=:B1 AND   
                  ("LOT7_"."LOT_TYPE_TRAFIC"='CONTI' OR "LOT7_"."LOT_TYPE_TRAFIC"='C
    ONTI_CHARG' OR                                                                  
     
                  "LOT7_"."LOT_TYPE_TRAFIC"='CONTI_TRANS' OR "LOT7_"."LOT_TYPE_TRAFI
    C"='IMPORT' OR                                                                  
     
                  "LOT7_"."LOT_TYPE_TRAFIC"='TRANSIT'))                             
      18 - access("LOT7_"."LOT_OID"=:B1)                                            
      19 - filter("ESCALE8_"."ESC_AREA_CODE"='OUEST')                               
      20 - access("LOT7_"."ESC_IN_OID"="ESCALE8_"."ESC_OID")                        
      26 - filter("LOT9_"."ESC_OUT_OID" IS NOT NULL AND "LOT9_"."LOT_ETAT"=:B1 AND  
                  "LOT9_"."LOT_TYPE_TRAFIC"='EXPORT')                               
      27 - access("LOT9_"."LOT_OID"=:B1)                                            
      28 - filter("ESCALE14_"."ESC_AREA_CODE"='OUEST')                              
      29 - access("LOT9_"."ESC_OUT_OID"="ESCALE14_"."ESC_OID")                      
      30 - access("LISTETRAIT12_"."LOT_OID"=:B1)                                    
      31 - filter("TRAITEMENT13_"."TRAIT_TYPE"='VALID_AG_COQUE_DEPART' AND          
                  "TRAITEMENT13_"."TRAIT_ETAT"='VALIDE')                            
      32 - access("LISTETRAIT12_"."TRAIT_OID"="TRAITEMENT13_"."TRAIT_OID")          
      34 - access("LISTETRAIT10_"."LOT_OID"=:B1)                                    
      35 - filter("TRAITEMENT11_"."TRAIT_TYPE"='VALID_AG_FRET_DEPART' AND           
                  "TRAITEMENT11_"."TRAIT_ETAT"='VALIDE')                            
      36 - access("LISTETRAIT10_"."TRAIT_OID"="TRAITEMENT11_"."TRAIT_OID")          
      37 - access("LISTETRAIT20_"."TRAIT_OID"="TRAITEMENT21_"."TRAIT_OID")          
      38 - access("TRAITEMENT21_"."TRAIT_TYPE"='VALID_AG_FRET_ARRIV' AND "TRAITEMENT
    21_"."TRAIT_ETAT"='VALIDE')                                                     
     
      45 - filter("LOT15_"."ESC_IN_OID" IS NOT NULL AND "LOT15_"."LOT_TYPE_TRAFIC"='
    TRANSBO' AND                                                                    
     
                  "LOT15_"."LOT_ETAT"=:B1)                                          
      46 - access("LOT15_"."LOT_OID"=:B1)                                           
      47 - filter("ESCALE22_"."ESC_AREA_CODE"='OUEST')                              
      48 - access("LOT15_"."ESC_IN_OID"="ESCALE22_"."ESC_OID")                      
      49 - access("LISTETRAIT18_"."LOT_OID"=:B1)                                    
      50 - filter("TRAITEMENT19_"."TRAIT_TYPE"='VALID_AG_COQUE_DEPART' AND          
                  "TRAITEMENT19_"."TRAIT_ETAT"='VALIDE')                            
      51 - access("LISTETRAIT18_"."TRAIT_OID"="TRAITEMENT19_"."TRAIT_OID")          
      53 - access("LISTETRAIT16_"."LOT_OID"=:B1)                                    
      54 - filter("TRAITEMENT17_"."TRAIT_TYPE"='VALID_AG_FRET_DEPART' AND           
                  "TRAITEMENT17_"."TRAIT_ETAT"='VALIDE')                            
      55 - access("LISTETRAIT16_"."TRAIT_OID"="TRAITEMENT17_"."TRAIT_OID")          
      57 - access("LISTETRAIT20_"."LOT_OID"=:B1)
    Enfin, quant je parlais de volumétrie identique, c'etait du fait que la base de qualif était une image a J-5 de la production (dump)

  5. #5
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Salut,

    Tu peux tenter de forcer l'exécution en prod avec des hints.
    Si tu optiens le même plan, tu peux comparer les différences de coût calculé pour voir là où il calcule un gros surcoût en prod.

  6. #6
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Ah, puis @SQLPro, si tu veux coller au contexte, compare la Belgique à la Belgique d'il y a 5 jour.

    Je me permets donc de répondre à tes question, parce que cela semble facile :

    Un niveau de vie identique ?
    => Le niveau de vie d'il y a 5 jours à priori

    les mêmes tendances de vote ?
    => Les tendances de vote d'il y a 5 jours à priori

    une météo similaire ?
    => La météo d'il y a 5 jours à priori...

    Y'a pas de quoi,

  7. #7
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2002
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2002
    Messages : 203
    Par défaut
    J'avoue que j'ai encore du mal avec les hints

    D'apres ce que j'ai comprit, c'est dans le SELECT qu'il faut les mettre, mais l'index se situe dans les jointures INNER JOIN

    @Mohamed.Houri
    J'ai rajouté les prédicate,

    J'essaye de voir pour les E-Rows, et A-Rows
    j'utilise autotrace pour calculer le plan, donc ...

  8. #8
    Membre Expert

    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    536
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 536
    Par défaut
    @Le-DOC

    Le mieux c'est d'avoir les deux plans d'exécution comme vous les avez postés mais en y incluant les Estimations (E-Rows) et (A-Rows).

    Cela donnera déjà un bel aperçu sur les volumes des données à traiter et également une belle vue sur l'état des statistiques dans les deux environnements.

    Aussi, pensez toujours à poster la partie prédicate . Elle contient des informations vitales pour la bonne interprétation du plan d'exécution.

    Si vous postez tout cela quelqu'un pourra certainement vous aider.

    @sqlPro

    contraitement à ce que vous avez avancé, le volume a son importance comme magnifiquement indiqué par jonathan Lewis dans sa philosophie 2

    Philosophie 2
    "Voici une autre idée parmi celles qui sont tellement fondamentales que vous devez toujours les avoir à l’esprit lorsque vous travaillez avec une base de données Oracle

    La stratégie fondamentale incorporée dans l’Optimisateur est basée uniquement sur deux points clés:

    Combien de données vous voulez rapatrier ?
    Où les avez-vous stockées ?
    Si vous tentez d’améliorer la performance d’une requête SQL en jouant avec son contenu jusqu’à ce qu’elle s’exécute assez rapidement, alors vous n’êtes pas sur la bonne voie et vous perdez du temps inutilement.

    Si, par contre, vous débutez votre tâche de ’’Tuning’’ en pensant à la taille du volume de données que vous êtes supposé rapatrier et à la nature de la dispersion aléatoire de ces données, alors vous allez réduire le temps nécessaire à trouver la meilleure manière d’acquérir efficacement ces données."

Discussions similaires

  1. Index non utilisé dans une jointure
    Par lasyan3 dans le forum SQL
    Réponses: 15
    Dernier message: 12/04/2011, 09h06
  2. Index non utilisé dans une requête
    Par tibal dans le forum Administration
    Réponses: 9
    Dernier message: 10/05/2010, 15h29
  3. Pb d'index sur une base Access
    Par chakir dans le forum Bases de données
    Réponses: 1
    Dernier message: 09/03/2006, 12h24
  4. Connexion sur une base Mysql distante (non locale)
    Par externa dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 20/02/2006, 11h34
  5. Problème avec les indexes sur une base de données.
    Par osoudee dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 09/02/2006, 09h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo