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

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2002
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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
    Points : 86
    Points
    86
    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'))
    dbsanté: Ma première application Android consacré au suivi médical totalement déconnecté.
    Score Assistant: Dans un tout autre registre, une application pour compter les points de plus de 80 jeux !
    N'hésitez pas a les télécharger !!

  2. #2
    Membre averti 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
    Points : 334
    Points
    334
    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).
    Cordialement,
    Dariyoosh

  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 760
    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 760
    Points : 52 541
    Points
    52 541
    Billets dans le blog
    5
    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 régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2002
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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
    Points : 86
    Points
    86
    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)
    dbsanté: Ma première application Android consacré au suivi médical totalement déconnecté.
    Score Assistant: Dans un tout autre registre, une application pour compter les points de plus de 80 jeux !
    N'hésitez pas a les télécharger !!

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

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    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.

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

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

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    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,

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  7. #7
    Membre expérimenté

    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
    Points : 1 359
    Points
    1 359
    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."
    Bien Respectueusement
    www.hourim.wordpress.com

    "Ce qui se conçoit bien s'énonce clairement"

  8. #8
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2002
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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
    Points : 86
    Points
    86
    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 ...
    dbsanté: Ma première application Android consacré au suivi médical totalement déconnecté.
    Score Assistant: Dans un tout autre registre, une application pour compter les points de plus de 80 jeux !
    N'hésitez pas a les télécharger !!

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

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Si tu veux tenter les hints, c'est effectivement dans le select :

    /*+ use_nl(tablea, tableb) index(tableb tonindex*/

    Je préfère tenter en premier lieu cette approche, car tu as la chance d'avoir un point de repère, à quelques jours et à l'éventuelle différence de config prod vs qualif près....

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  10. #10
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Avant tout je jetterais un œil sur le paramétrage de l’optimiseur sur les deux bases pour m’assurer qu’il est identique.

  11. #11
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2002
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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
    Points : 86
    Points
    86
    Par défaut
    les parametres de l'optimiseur sont les meme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    optimizer_dynamic_sampling           integer     2                              
    optimizer_features_enable            string      10.2.0.1                       
    optimizer_index_caching              integer     0                              
    optimizer_index_cost_adj             integer     100                            
    optimizer_mode                       string      ALL_ROWS                       
    optimizer_secure_view_merging        boolean     TRUE
    Les seul différences se situent au niveau SGA et PGA

    La qualif a 800Mo de PGA et 2Go de SGA sur un max de 4
    La prod est tres mal réglée: 200Mo de PGA, et 1Go de SGA au taquet.

    j'ai déja modifié les réglages de la SGA de ce coté la, mais je ne peux pas redémarrer la base en semaine.

    Pensez vous qu'une db mal réglée au niveau mémoire peut influer sur l'utilisation ou non d'un index ?
    dbsanté: Ma première application Android consacré au suivi médical totalement déconnecté.
    Score Assistant: Dans un tout autre registre, une application pour compter les points de plus de 80 jeux !
    N'hésitez pas a les télécharger !!

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

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Oui, sans aucun doute !
    Cependant, j'aurais plutôt imaginé que ça agisse dans l'autre sens... (moins de mémoire = moins de place pour faire des hash join, alors que nl join + index ne consomme pas de mémoire additionnelle)

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  13. #13
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2002
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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
    Points : 86
    Points
    86
    Par défaut
    ok
    faut t'il ajouter du PGA aussi a votre avis ?
    dbsanté: Ma première application Android consacré au suivi médical totalement déconnecté.
    Score Assistant: Dans un tout autre registre, une application pour compter les points de plus de 80 jeux !
    N'hésitez pas a les télécharger !!

  14. #14
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Il y a une différence importante entre les coûts de la requête dans les deux environnements (26874 vers 3301) et il y a aussi des différences importantes dans le nombre de lignes de ramenées (Rows) dans les deux plans. Faite une comparaison entre la volumétrie des tables utilisées par la requête entre les deux bases.

  15. #15
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2002
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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
    Points : 86
    Points
    86
    Par défaut
    Voici le plan d'execution de la qualif avec les données fraiches du jour.

    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
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    -------------------------------------------------------------------------------------------------------------------------                                       
    | Id  | Operation                                | Name                 | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |                                       
    -------------------------------------------------------------------------------------------------------------------------                                       
    |   0 | SELECT STATEMENT                         |                      |     1 |   448 |       | 28569   (1)| 00:05:43 |                                       
    |   1 |  HASH UNIQUE                             |                      |     1 |   448 |       | 28569   (1)| 00:05:43 |                                       
    |*  2 |   FILTER                                 |                      |       |       |       |            |          |                                       
    |   3 |    NESTED LOOPS                          |                      |     1 |   448 |       | 28568   (1)| 00:05:43 |                                       
    |   4 |     NESTED LOOPS                         |                      |     1 |   382 |       | 28565   (1)| 00:05:43 |                                       
    |*  5 |      HASH JOIN RIGHT ANTI                |                      |     1 |   341 |  9632K| 28561   (1)| 00:05:43 |                                       
    |   6 |       VIEW                               | VW_NSO_1             |   219K|  7061K|       | 23223   (1)| 00:04:39 |                                       
    |*  7 |        HASH JOIN                         |                      |   219K|    31M|    16M| 23223   (1)| 00:04:39 |                                       
    |   8 |         INDEX FAST FULL SCAN             | SYS_C005742          |   386K|    12M|       |   627   (1)| 00:00:08 |                                       
    |*  9 |         HASH JOIN                        |                      |   219K|    25M|  3696K| 20398   (1)| 00:04:05 |                                       
    |* 10 |          INDEX RANGE SCAN                | MDX2_TRAIT_TYETOI_IX | 57257 |  3019K|       |   515   (1)| 00:00:07 |                                       
    |  11 |          TABLE ACCESS FULL               | MDX2_LOT_TRAITEMENT  |  3066K|   193M|       |  8351   (1)| 00:01:41 |                                       
    |  12 |       TABLE ACCESS BY INDEX ROWID        | MDX2_LOT             | 64445 |    18M|       |  3892   (1)| 00:00:47 |                                       
    |* 13 |        INDEX RANGE SCAN                  | LOT_ETAT_IX          | 64445 |       |       |   174   (1)| 00:00:03 |                                       
    |* 14 |      TABLE ACCESS BY INDEX ROWID         | MDX2_MARCHANDISE     |     2 |    82 |       |     4   (0)| 00:00:01 |                                       
    |* 15 |       INDEX RANGE SCAN                   | MARCHNADISE_LOT_FK   |     4 |       |       |     2   (0)| 00:00:01 |                                       
    |* 16 |     INDEX RANGE SCAN                     | LOT_TRAIT_IDX_1      |    12 |   792 |       |     3   (0)| 00:00:01 |                                       
    |  17 |    NESTED LOOPS                          |                      |     1 |   107 |       |     5   (0)| 00:00:01 |                                       
    |* 18 |     TABLE ACCESS BY INDEX ROWID          | MDX2_LOT             |     1 |    68 |       |     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          | 17933 |   682K|       |     2   (0)| 00:00:01 |                                       
    |* 21 |      INDEX UNIQUE SCAN                   | OEM_OPTI_ESC_OID_IX  |     1 |       |       |     1   (0)| 00:00:01 |                                       
    |  22 |      NESTED LOOPS                        |                      |   140 | 48300 |       |   348   (0)| 00:00:05 |                                       
    |  23 |       MERGE JOIN CARTESIAN               |                      |   140 | 40740 |       |    68   (0)| 00:00:01 |                                       
    |  24 |        NESTED LOOPS                      |                      |    12 |  2700 |       |    32   (0)| 00:00:01 |                                       
    |  25 |         NESTED LOOPS                     |                      |    12 |  2052 |       |     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          | 17933 |   682K|       |     2   (0)| 00:00:01 |                                       
    |* 30 |            INDEX UNIQUE SCAN             | OEM_OPTI_ESC_OID_IX  |     1 |       |       |     1   (0)| 00:00:01 |                                       
    |* 31 |          INDEX RANGE SCAN                | LOT_TRAIT_IDX_1      |    12 |   792 |       |     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                       |                      |    12 |   792 |       |    66   (0)| 00:00:01 |                                       
    |* 35 |         INDEX RANGE SCAN                 | LOT_TRAIT_IDX_1      |    12 |   792 |       |     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                         |                      |  1653 |   753K|       |  1284   (1)| 00:00:16 |                                       
    |  39 |         MERGE JOIN CARTESIAN             |                      |  1653 |   666K|       |   768   (0)| 00:00:10 |                                       
    |  40 |          NESTED LOOPS                    |                      |   140 | 48580 |       |   348   (0)| 00:00:05 |                                       
    |  41 |           MERGE JOIN CARTESIAN           |                      |   140 | 41020 |       |    68   (0)| 00:00:01 |                                       
    |  42 |            NESTED LOOPS                  |                      |    12 |  2724 |       |    32   (0)| 00:00:01 |                                       
    |  43 |             NESTED LOOPS                 |                      |    12 |  2076 |       |     8   (0)| 00:00:01 |                                       
    |  44 |              NESTED LOOPS                |                      |     1 |   107 |       |     5   (0)| 00:00:01 |                                       
    |* 45 |               TABLE ACCESS BY INDEX ROWID| MDX2_LOT             |     1 |    68 |       |     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          | 17933 |   682K|       |     2   (0)| 00:00:01 |                                       
    |* 48 |                INDEX UNIQUE SCAN         | OEM_OPTI_ESC_OID_IX  |     1 |       |       |     1   (0)| 00:00:01 |                                       
    |* 49 |              INDEX RANGE SCAN            | LOT_TRAIT_IDX_1      |    12 |   792 |       |     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                   |                      |    12 |   792 |       |    66   (0)| 00:00:01 |                                       
    |* 53 |             INDEX RANGE SCAN             | LOT_TRAIT_IDX_1      |    12 |   792 |       |     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                     |                      |    12 |   792 |       |   766   (0)| 00:00:10 |                                       
    |* 57 |           INDEX RANGE SCAN               | LOT_TRAIT_IDX_1      |    12 |   792 |       |     3   (0)| 00:00:01 |                                       
    |* 58 |         INDEX RANGE SCAN                 | MDX2_TRAIT_TYETOI_IX | 57257 |  3019K|       |   515   (1)| 00:00:07 |                                       
    -------------------------------------------------------------------------------------------------------------------------                                       
     
    Predicate Information (identified by operation id):                             
    ---------------------------------------------------                             
     
       2 - filter( EXISTS (SELECT /*+ */ 0 FROM "MDX2"."MDX2_ESCALE" "ESCALE8_","MDX
    2"."MDX2_LOT" "LOT7_" WHERE                                                     
                  "LOT7_"."LOT_OID"=:B1 AND "LOT7_"."ESC_IN_OID" IS NOT NULL AND "LO
    T7_"."LOT_ETAT"=:B2 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') AND "LOT7_"."ESC_IN_OID"="ESC
    ALE8_"."ESC_OID" AND                                                            
                  "ESCALE8_"."ESC_AREA_CODE"='OUEST') OR  EXISTS (SELECT /*+ */ 0 FR
    OM "MDX2"."MDX2_ESCALE"                                                         
                  "ESCALE14_","MDX2"."MDX2_TRAITEMENT" "TRAITEMENT13_","MDX2"."MDX2_
    LOT_TRAITEMENT"                                                                 
                  "LISTETRAIT12_","MDX2"."MDX2_TRAITEMENT" "TRAITEMENT11_","MDX2"."M
    DX2_LOT_TRAITEMENT"                                                             
                  "LISTETRAIT10_","MDX2"."MDX2_LOT" "LOT9_" WHERE "LOT9_"."LOT_OID"=
    :B3 AND "LOT9_"."ESC_OUT_OID" IS NOT NULL AND                                   
     
                  "LOT9_"."LOT_TYPE_TRAFIC"='EXPORT' AND "LOT9_"."LOT_ETAT"=:B4 AND 
    "LISTETRAIT10_"."LOT_OID"=:B5 AND                                               
     
                  "LISTETRAIT10_"."TRAIT_OID"="TRAITEMENT11_"."TRAIT_OID" AND "TRAIT
    EMENT11_"."TRAIT_TYPE"='VALID_AG_FRET_DEPART'                                   
     
                  AND "TRAITEMENT11_"."TRAIT_ETAT"='VALIDE' AND "LISTETRAIT12_"."LOT
    _OID"=:B6 AND                                                                   
     
                  "LISTETRAIT12_"."TRAIT_OID"="TRAITEMENT13_"."TRAIT_OID" AND "TRAIT
    EMENT13_"."TRAIT_TYPE"='VALID_AG_COQUE_DEPART'                                  
     
                  AND "TRAITEMENT13_"."TRAIT_ETAT"='VALIDE' AND "LOT9_"."ESC_OUT_OID
    "="ESCALE14_"."ESC_OID" AND                                                     
     
                  "ESCALE14_"."ESC_AREA_CODE"='OUEST') OR  EXISTS (SELECT /*+ */ 0 F
    ROM "MDX2"."MDX2_ESCALE"                                                        
     
                  "ESCALE22_","MDX2"."MDX2_TRAITEMENT" "TRAITEMENT21_","MDX2"."MDX2_
    LOT_TRAITEMENT"                                                                 
     
                  "LISTETRAIT20_","MDX2"."MDX2_TRAITEMENT" "TRAITEMENT19_","MDX2"."M
    DX2_LOT_TRAITEMENT"                                                             
     
                  "LISTETRAIT18_","MDX2"."MDX2_TRAITEMENT" "TRAITEMENT17_","MDX2"."M
    DX2_LOT_TRAITEMENT"                                                             
     
                  "LISTETRAIT16_","MDX2"."MDX2_LOT" "LOT15_" WHERE "LOT15_"."LOT_OID
    "=:B7 AND "LOT15_"."ESC_IN_OID" IS NOT NULL                                     
     
                  AND "LOT15_"."LOT_TYPE_TRAFIC"='TRANSBO' AND "LOT15_"."LOT_ETAT"=:
    B8 AND "LISTETRAIT16_"."LOT_OID"=:B9 AND                                        
     
                  "LISTETRAIT16_"."TRAIT_OID"="TRAITEMENT17_"."TRAIT_OID" AND "TRAIT
    EMENT17_"."TRAIT_TYPE"='VALID_AG_FRET_DEPART'                                   
     
                  AND "TRAITEMENT17_"."TRAIT_ETAT"='VALIDE' AND "LISTETRAIT18_"."LOT
    _OID"=:B10 AND                                                                  
     
                  "LISTETRAIT18_"."TRAIT_OID"="TRAITEMENT19_"."TRAIT_OID" AND "TRAIT
    EMENT19_"."TRAIT_TYPE"='VALID_AG_COQUE_DEPART'                                  
     
                  AND "TRAITEMENT19_"."TRAIT_ETAT"='VALIDE' AND "LISTETRAIT20_"."LOT
    _OID"=:B11 AND                                                                  
     
                  "TRAITEMENT21_"."TRAIT_ETAT"='VALIDE' AND "TRAITEMENT21_"."TRAIT_T
    YPE"='VALID_AG_FRET_ARRIV' AND                                                  
     
                  "LISTETRAIT20_"."TRAIT_OID"="TRAITEMENT21_"."TRAIT_OID" AND "LOT15
    _"."ESC_IN_OID"="ESCALE22_"."ESC_OID" AND                                       
     
                  "ESCALE22_"."ESC_AREA_CODE"='OUEST'))                             
       5 - access("LOT0_"."LOT_OID"="LOT_OID")                                      
       7 - access("LISTETRAIT5_"."LOT_OID"="LOT4_"."LOT_OID")                       
       9 - access("LISTETRAIT5_"."TRAIT_OID"="TRAITEMENT6_"."TRAIT_OID")            
      10 - access("TRAITEMENT6_"."TRAIT_TYPE"='AUTORIS_SP' AND "TRAITEMENT6_"."TRAIT
    _ETAT"='VALIDE')                                                                
     
      13 - access("LOT0_"."LOT_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_TR
    AFIC"='CONTI_TRANS' OR                                                          
     
                  "LOT7_"."LOT_TYPE_TRAFIC"='IMPORT' OR "LOT7_"."LOT_TYPE_TRAFIC"='T
    RANSIT'))                                                                       
     
      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_TYPE_TRAFIC"='E
    XPORT' AND                                                                      
     
                  "LOT9_"."LOT_ETAT"=:B1)                                           
      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 "TRAITEMEN
    T11_"."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 "TRAITEME
    NT13_"."TRAIT_ETAT"='VALIDE')                                                   
     
      37 - access("LISTETRAIT12_"."TRAIT_OID"="TRAITEMENT13_"."TRAIT_OID")          
      38 - access("LISTETRAIT20_"."TRAIT_OID"="TRAITEMENT21_"."TRAIT_OID")          
      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("LISTETRAIT16_"."LOT_OID"=:B1)                                    
      50 - filter("TRAITEMENT17_"."TRAIT_TYPE"='VALID_AG_FRET_DEPART' AND "TRAITEMEN
    T17_"."TRAIT_ETAT"='VALIDE')                                                    
     
      51 - access("LISTETRAIT16_"."TRAIT_OID"="TRAITEMENT17_"."TRAIT_OID")          
      53 - access("LISTETRAIT18_"."LOT_OID"=:B1)                                    
      54 - filter("TRAITEMENT19_"."TRAIT_TYPE"='VALID_AG_COQUE_DEPART' AND "TRAITEME
    NT19_"."TRAIT_ETAT"='VALIDE')                                                   
     
      55 - access("LISTETRAIT18_"."TRAIT_OID"="TRAITEMENT19_"."TRAIT_OID")          
      57 - access("LISTETRAIT20_"."LOT_OID"=:B1)                                    
      58 - access("TRAITEMENT21_"."TRAIT_TYPE"='VALID_AG_FRET_ARRIV' AND "TRAITEMENT
    21_"."TRAIT_ETAT"='VALIDE')
    Ouais, en fait ... c'etait la fraicheur qui était en cause ....

    Mais j'avoue que je ne comprend pas malgres tout pourquoi il n'utilise pas/plus les indexes
    dbsanté: Ma première application Android consacré au suivi médical totalement déconnecté.
    Score Assistant: Dans un tout autre registre, une application pour compter les points de plus de 80 jeux !
    N'hésitez pas a les télécharger !!

  16. #16
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Ça serait également intéressant d'avoir la requête complète.

  17. #17
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par Le-DOC Voir le message
    ...
    Mais j'avoue que je ne comprend pas malgres tout pourquoi il n'utilise pas/plus les indexes
    La réponse est simple: parce qu'il considère (calcule) que l'utilisation d'un 'index coûte plus.

  18. #18
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    Citation Envoyé par mnitu Voir le message
    La réponse est simple: parce qu'il considère (calcule) que l'utilisation d'un 'index coûte plus.
    Pour être précis, dans votre cas la table est sur 2 colonnes, l'index aussi, donc pas de raison de prendre l'index plutôt que la table s'il n'apporte rien.
    Or, si la volumétrie augmente d'un côté mais pas de l'autre de la jointure, il peut décider de changer l'ordre d'accès.

    Dans ce cas, créer l'index "inversé" (en inversant l'ordre des colonnes) peut avoir un bon résultat (il faut tester, bien sûr).

  19. #19
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par Rei Ichido Voir le message
    ...Dans ce cas, créer l'index "inversé" (en inversant l'ordre des colonnes) peut avoir un bon résultat (il faut tester, bien sûr).
    J'avoue à ne pas avoir compris votre proposition dans ce cas. Il est vrai que parfois changer l'ordre des colonnes dans un index peut rendre l'index plus intéressant pour l'optimiseur si son "clustering factor" s'améliore mais est-ce à ça que vous avez pensez ?

  20. #20
    Membre expérimenté

    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
    Points : 1 359
    Points
    1 359
    Par défaut
    Citation Envoyé par Rei Ichido Voir le message
    Dans ce cas, créer l'index "inversé" (en inversant l'ordre des colonnes) peut avoir un bon résultat (il faut tester, bien sûr).
    J'avoue également que je n'ai pas bien saisi le rôle de l'inversion des colonnes de l'index dans ce cas où les deux colonnes sont utilisées dans la where clause et que les prédicats sur ces deux colonnes sont des égalités.
    Bien Respectueusement
    www.hourim.wordpress.com

    "Ce qui se conçoit bien s'énonce clairement"

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