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

Administration Oracle Discussion :

Index sur une colonne VARCHAR2


Sujet :

Administration Oracle

  1. #1
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 224
    Points : 211
    Points
    211
    Par défaut Index sur une colonne VARCHAR2
    Bonjour,


    Je rencontre une difficulté avec un index. Je possède une table avec 11 millions d'environnement. Dans cette table, il y a une colonne de type VARCHAR2 NOT NULL qui possède seulement 1 million d'enregistrement les autres étant null.

    Le problème est le suivant :

    Lorsque des utilsiatuer font une recherche sur ce fameux champ, oracle réalise un full scan sur cette table et mets 10 minutes à retourner le résultat.

    J'ai essayé de créer un index sur la colonne mais cela ne change absolument rien... comment puis-je faire pour que mes utilisateurs puissent faire une recherche sur ce champ en quelques secondes ?

    Merci.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 270
    Points : 342
    Points
    342
    Par défaut
    Citation Envoyé par Milo59000 Voir le message
    Bonjour,


    Je rencontre une difficulté avec un index. Je possède une table avec 11 millions d'environnement. Dans cette table, il y a une colonne de type VARCHAR2 NOT NULL qui possède seulement 1 million d'enregistrement les autres étant null.

    Le problème est le suivant :

    Lorsque des utilsiatuer font une recherche sur ce fameux champ, oracle réalise un full scan sur cette table et mets 10 minutes à retourner le résultat.

    J'ai essayé de créer un index sur la colonne mais cela ne change absolument rien... comment puis-je faire pour que mes utilisateurs puissent faire une recherche sur ce champ en quelques secondes ?

    Merci.
    Si je comprend bien :
    Il y a une table avec 11 millions de lignes.
    Cette table a une colonne not null.
    Il y a une valeur dans 1 million de lignes dans cette colone.
    Donc, il y a 10 millions de ligne dans les quelles une colonne not null est null.

    >> soit la colonne n'est pas si not null que ça, soit la table ne contient pas 11 millions de lignes.

    A par ça, je pense que tu n'as pas lancé les statistiques.

  3. #3
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 224
    Points : 211
    Points
    211
    Par défaut
    Arf... Petite correction, la colonne VARCHAR2 n'est pas de type NOT NULL ^^ cette colonne, contient très peu de valeurs et les utilisateurs réalisent des requêtes avec ce champ en clause WHERE.

    Pour info, cela se réalise via IHM (CRM siebel), les statistiques sont normalement à jour.

    Je vais relancer les statistiques sur la table et sur l'index créé et je vous tiens au courant.

  4. #4
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Il faudrait voir la clause where de la requête pour voir si un index peut être utilisé, ansi que son plan d'exécution, et le nombre d'enregistrements retournés. S'il s'agit de récupérer 9% des enregistrements (1/11) il n'est pas impossible que le full scan soit plus rapide que l'index.
    Cordialement,
    Franck.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 750
    Points : 341
    Points
    341
    Par défaut
    sous sqlplus tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    set timing on
    set autotrace traceonly
    ensuite t'exécute ta requête.
    t'auras le temps d'exécution, le plan d'exécution et quelques stats d'exécution.
    Et tu nous envoi tout ça

  6. #6
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 224
    Points : 211
    Points
    211
    Par défaut
    Alors, voilà le retour sans 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
    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
     Execution Plan
    ----------------------------------------------------------
       0      SELECT STATEMENT Optimizer=FIRST_ROWS (Cost=94695 Card=1 Bytes=2179)
     
       1    0   FILTER
       2    1     NESTED LOOPS (OUTER) (Cost=94695 Card=1 Bytes=2179)
       3    2       NESTED LOOPS (OUTER) (Cost=94694 Card=1 Bytes=2168)
       4    3         NESTED LOOPS (OUTER) (Cost=94693 Card=1 Bytes=2146)
       5    4           NESTED LOOPS (OUTER) (Cost=94692 Card=1 Bytes=2119)
       6    5             NESTED LOOPS (OUTER) (Cost=94691 Card=1 Bytes=2089)
       7    6               NESTED LOOPS (OUTER) (Cost=94690 Card=1 Bytes=2071)
       8    7                 NESTED LOOPS (OUTER) (Cost=94689 Card=1 Bytes=2060)
       9    8                   NESTED LOOPS (OUTER) (Cost=94688 Card=1 Bytes=2047)
      10    9                     NESTED LOOPS (OUTER) (Cost=94687 Card=1Bytes=2034)
      11   10                       NESTED LOOPS (OUTER) (Cost=94686 Card=1 Bytes=2003)
      12   11                         NESTED LOOPS (OUTER) (Cost=94685 Card=1 Bytes=1971)
      13   12                           NESTED LOOPS (OUTER) (Cost=94684 Card=1 Bytes=1951)
      14   13                             NESTED LOOPS (OUTER) (Cost=94683 Card=1 Bytes=1920)
      15   14                               NESTED LOOPS (OUTER) (Cost=94682 Card=1 Bytes=1826)
      16   15                                 NESTED LOOPS (OUTER) (Cost=94681 Card=1 Bytes=1805)
      17   16                                   NESTED LOOPS (OUTER) (Cost=94680 Card=1 Bytes=1748)
      18   17                                     NESTED LOOPS (OUTER) (Cost=94679 Card=1 Bytes=1651)
      19   18                                       NESTED LOOPS (OUTER) (Cost=94678 Card=1 Bytes=1604)
      20   19                                         NESTED LOOPS (OUTER) (Cost=94677 Card=1 Bytes=1501)
      21   20                                           NESTED LOOPS (OUTER) (Cost=94676 Card=1 Bytes=1416)
      22   21                                             NESTED LOOPS (OUTER) (Cost=94675 Card=1 Bytes=1319)
      23   22                                               NESTED LOOPS (OUTER) (Cost=94674 Card=1 Bytes=1243)
      24   23                                                 NESTED LOOPS (OUTER) (Cost=94673 Card=1 Bytes=1229)
      25   24                                                   NESTED LOOPS (OUTER) (Cost=94672 Card=1 Bytes=1190)
      26   25                                                     NESTED LOOPS (OUTER) (Cost=94671 Card=1 Bytes=1119)
      27   26                                                       NESTED LOOPS (OUTER) (Cost=94670 Card=1 Bytes=1101)
      28   27                                                         NESTED LOOPS (OUTER) (Cost=94669 Card=1 Bytes=1043)
      29   28                                                           NESTED LOOPS (OUTER) (Cost=94668 Card=1 Bytes=940)
      30   29NESTED LOOPS (OUTER) (Cost=94667 Card=1 Bytes=803)
      31   30  NESTED LOOPS (OUTER) (Cost=94666 Card=1 Bytes=758)
      32   31    TABLE ACCESS (FULL) OF 'S_EVT_ACT' (Cost=94665 Card=1 Bytes=651)
      33   31    TABLE ACCESS (BY INDEX ROWID) OF 'S_PROJ' (Cost=1 Card=1 Bytes=107)
      34   33      INDEX (UNIQUE SCAN) OF 'S_PROJ_P1' (UNIQUE)
      35   30  TABLE ACCESS (BY INDEX ROWID) OF 'S_PROJITEM' (Cost=1 Card=1 Bytes=45)
      36   35    INDEX (UNIQUE SCAN) OF 'S_PROJITEM_P1' (UNIQUE)
      37   29TABLE ACCESS (BY INDEX ROWID) OF 'S_EVT_ACT_SS' (Cost=1 Card=1 Bytes=137)
      38   37  INDEX (RANGE SCAN) OF 'S_EVT_ACT_SS_U1' (UNIQUE) (Cost=1 Card=1)
      39   28                                                           TABLE ACCESS (BY INDEX ROWID) OF 'S_SUSP_ACT' (Cost=1 Card=1 Bytes=103)
      40   39INDEX (RANGE SCAN) OF 'S_SUSP_ACT_U1' (UNIQUE) (Cost=1 Card=1)
      41   27                                                         TABLE ACCESS (BY INDEX ROWID) OF 'S_SRC' (Cost=1 Card=1 Bytes=58)
      42   41                                                           INDEX (UNIQUE SCAN) OF 'S_SRC_P1' (UNIQUE)
      43   26                                                       TABLEACCESS (BY INDEX ROWID) OF 'S_ORDER' (Cost=1 Card=1 Bytes=18)
      44   43                                                         INDEX (UNIQUE SCAN) OF 'S_ORDER_P1' (UNIQUE)
      45   25                                                     TABLE ACCESS (BY INDEX ROWID) OF 'S_EVT_MAIL' (Cost=1 Card=1 Bytes=71)
      46   45                                                       INDEX(RANGE SCAN) OF 'S_EVT_MAIL_U1' (UNIQUE) (Cost=2 Card=1)
      47   24                                                   TABLE ACCESS (BY INDEX ROWID) OF 'S_OPTY' (Cost=1 Card=1 Bytes=39)
      48   47                                                     INDEX (UNIQUE SCAN) OF 'S_OPTY_P1' (UNIQUE) (Cost=1 Card=1)
      49   23                                                 TABLE ACCESS (BY INDEX ROWID) OF 'S_CONTACT_FNX' (Cost=1 Card=1 Bytes=14)
      50   49                                                   INDEX (RANGE SCAN) OF 'S_CONTACT_FNX_U1' (UNIQUE) (Cost=2 Card=1)
      51   22                                               TABLE ACCESS (BY INDEX ROWID) OF 'S_CONTACT' (Cost=1 Card=1 Bytes=76)
      52   51                                                 INDEX (UNIQUE SCAN) OF 'S_CONTACT_U2' (UNIQUE) (Cost=1 Card=1)
      53   21                                             TABLE ACCESS (BY INDEX ROWID) OF 'S_EVT_MKTG' (Cost=1 Card=1 Bytes=97)
      54   53                                               INDEX (RANGE SCAN) OF 'S_EVT_MKTG_U1' (UNIQUE) (Cost=1 Card=1)
      55   20                                           TABLE ACCESS (BY INDEX ROWID) OF 'S_EVT_CAL' (Cost=1 Card=1 Bytes=85)
      56   55                                             INDEX (RANGE SCAN) OF 'S_EVT_CAL_U1' (UNIQUE) (Cost=1 Card=1)
      57   19                                         TABLE ACCESS (BY INDEX ROWID) OF 'S_SRV_ACT' (Cost=1 Card=1 Bytes=103)
      58   57                                           INDEX (RANGE SCAN) OF 'S_SRV_ACT_U1' (UNIQUE) (Cost=1 Card=1)
      59   18                                       TABLE ACCESS (BY INDEX ROWID) OF 'S_SRV_REQ' (Cost=1 Card=1 Bytes=47)
      60   59                                         INDEX (UNIQUE SCAN)OF 'S_SRV_REQ_P1' (UNIQUE) (Cost=1 Card=1)
      61   17                                     TABLE ACCESS (BY INDEX ROWID) OF 'S_EVT_ACT_FNX' (Cost=1 Card=1 Bytes=97)
      62   61                                       INDEX (RANGE SCAN) OF'S_EVT_ACT_FNX_U1' (UNIQUE) (Cost=2 Card=1)
      63   16                                   TABLE ACCESS (BY INDEX ROWID) OF 'S_FN_APPR' (Cost=1 Card=1 Bytes=57)
      64   63                                     INDEX (UNIQUE SCAN) OF 'S_FN_APPR_P1' (UNIQUE)
      65   15                                 TABLE ACCESS (BY INDEX ROWID) OF 'S_ASSET' (Cost=1 Card=1 Bytes=21)
      66   65                                   INDEX (UNIQUE SCAN) OF 'S_ASSET_P1' (UNIQUE) (Cost=1 Card=1)
      67   14                               TABLE ACCESS (BY INDEX ROWID)OF 'S_ORG_EXT' (Cost=1 Card=1 Bytes=94)
      68   67                                 INDEX (UNIQUE SCAN) OF 'S_ORG_EXT_U3' (UNIQUE) (Cost=1 Card=1)
      69   13                             TABLE ACCESS (BY INDEX ROWID) OF 'S_ORG_EXT' (Cost=1 Card=1 Bytes=31)
      70   69                               INDEX (UNIQUE SCAN) OF 'S_ORG_EXT_U3' (UNIQUE) (Cost=1 Card=1)
      71   12                           TABLE ACCESS (BY INDEX ROWID) OF 'S_ORG_EXT_FNX' (Cost=1 Card=1 Bytes=20)
      72   71                             INDEX (UNIQUE SCAN) OF 'S_ORG_EXT_FNX_P1' (UNIQUE) (Cost=1 Card=1)
      73   11                         TABLE ACCESS (BY INDEX ROWID) OF 'S_ORG_EXT_X' (Cost=1 Card=1 Bytes=32)
      74   73                           INDEX (RANGE SCAN) OF 'S_ORG_EXT_X_U1' (UNIQUE) (Cost=2 Card=1)
      75   10                       TABLE ACCESS (BY INDEX ROWID) OF 'S_ORG_EXT' (Cost=1 Card=1 Bytes=31)
      76   75                         INDEX (UNIQUE SCAN) OF 'S_ORG_EXT_U3' (UNIQUE) (Cost=1 Card=1)
      77    9                     TABLE ACCESS (BY INDEX ROWID) OF 'S_ORG_EXT_X' (Cost=1 Card=1 Bytes=13)
      78   77                       INDEX (RANGE SCAN) OF 'S_ORG_EXT_X_U1' (UNIQUE) (Cost=2 Card=1)
      79    8                   TABLE ACCESS (BY INDEX ROWID) OF 'S_ORG_EXT_X' (Cost=1 Card=1 Bytes=13)
      80   79                     INDEX (RANGE SCAN) OF 'S_ORG_EXT_X_U1' (UNIQUE) (Cost=2 Card=1)
      81    7                 INDEX (UNIQUE SCAN) OF 'S_PARTY_P1' (UNIQUE) (Cost=1 Card=1 Bytes=11)
      82    6               TABLE ACCESS (BY INDEX ROWID) OF 'S_ACT_EMP' (Cost=1 Card=1 Bytes=18)
      83   82                 INDEX (RANGE SCAN) OF 'S_ACT_EMP_F1' (NON-UNIQUE) (Cost=2 Card=1)
      84    5             TABLE ACCESS (BY INDEX ROWID) OF 'S_ACT_EMP' (Cost=1 Card=1 Bytes=30)
      85   84               INDEX (RANGE SCAN) OF 'S_ACT_EMP_U1' (UNIQUE)(Cost=2 Card=1)
      86    4           TABLE ACCESS (BY INDEX ROWID) OF 'S_USER' (Cost=1Card=1 Bytes=27)
      87   86             INDEX (UNIQUE SCAN) OF 'S_USER_U2' (UNIQUE)
      88    3         TABLE ACCESS (BY INDEX ROWID) OF 'S_CONTACT_FNX' (Cost=1 Card=1 Bytes=22)
      89   88           INDEX (RANGE SCAN) OF 'S_CONTACT_FNX_U1' (UNIQUE)(Cost=2 Card=1)
      90    2       INDEX (UNIQUE SCAN) OF 'S_PARTY_P1' (UNIQUE) (Cost=1 Card=1 Bytes=11)
      91    1     NESTED LOOPS (Cost=4 Card=1 Bytes=67)
      92   91       NESTED LOOPS (Cost=3 Card=2 Bytes=112)
      93   92         NESTED LOOPS (Cost=2 Card=2 Bytes=76)
      94   93           TABLE ACCESS (BY INDEX ROWID) OF 'S_CONTACT' (Cost=1 Card=1 Bytes=20)
      95   94             INDEX (UNIQUE SCAN) OF 'S_CONTACT_P1' (UNIQUE) (Cost=2 Card=1)
      96   93           INDEX (RANGE SCAN) OF 'S_OPTY_POSTN_U1' (UNIQUE) (Cost=2 Card=2 Bytes=36)
      97   92         TABLE ACCESS (BY INDEX ROWID) OF 'S_POSTN' (Cost=1 Card=1 Bytes=18)
      98   97           INDEX (RANGE SCAN) OF 'S_POSTN_V1' (NON-UNIQUE) (Cost=1 Card=1)
      99   91       INDEX (UNIQUE SCAN) OF 'S_PARTY_P1' (UNIQUE) (Cost=1 Card=1 Bytes=11)
     
    Statistics
    ----------------------------------------------------------
              0  recursive calls
              0  db block gets
       12940714  consistent gets
        1566002  physical reads
             60  redo size
          14862  bytes sent via SQL*Net to client
           5662  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
              1  rows processed
    Le temps d'exécution est de environ 10 minutes. Comme vous pouvez le voir, il y a un SCAN FULL sur la table S_EVT_ACT qui possède un gros coût (94665).

    Je fais avec l'index.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 750
    Points : 341
    Points
    341
    Par défaut
    envoie nous la requête.
    combien de lignes retourne ta requête ?
    c'est bizarre que dans le plan d'execution la cardinalité estimé est de 1 à chaque fois.y'a t'il des stats dans ta table ou bien fais tu du dynamic_sampling ?

  8. #8
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 224
    Points : 211
    Points
    211
    Par défaut
    La requête retourne 1 ligne, la voici :


    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
    SELECT t31.conflict_id, t31.last_upd, t31.created, t31.last_upd_by, 
           t31.created_by, t31.modification_num, t31.row_id, t31.x_date_debut_reel, 
           t31.x_date_fin_reelle, t31.x_description, t31.acd_log_entry_dt, 
           t30.mrkt_cap_pref_cd, t31.x_mot_cle3, t31.x_nom_or, t31.x_num_ac, 
           t31.x_num_rae, t4.order_num, t27.x_sice_reference, t31.x_remarques, 
           t31.x_sens, t31.x_sens_ecust, t31.x_supprime_flg, t8.name, 
           t27.master_ou_id, t31.x_visible_internaute, t31.acd_call_duration, 
           t27.base_curcy_cd, t31.target_ou_id, t27.loc, t27.name, 
           t31.sra_defect_id, t31.sra_sr_id, t31.agreement_id, t31.alarm_flag, 
           t31.appt_alarm_tm_min, t31.asset_id, t31.billable_flg, t31.src_id, 
           t20.name, t31.creator_login, t31.cost_curcy_cd, t31.name, 
           t31.todo_actl_end_dt, t31.done_flg, t31.appt_start_dt, 
           t31.appt_duration_min, t31.pr_exp_rpt_id, t31.todo_after_dt, t29.name, 
           t29.curcy_cd, t31.opty_id, t31.appt_rept_appt_id, t31.appt_rept_repl_cd, 
           t31.par_evt_id, t31.pct_complete, t31.target_per_addr_id, 
           t31.todo_plan_start_dt, t31.todo_plan_end_dt, t31.prev_act_id, 
           t31.target_per_id, t31.owner_login, t31.owner_per_id, t31.pr_symptom_cd, 
           t11.bl_class_cd, t11.bl_curcy_cd, t31.proj_id, t13.actl_end_dt, 
           t13.actl_start_dt, t13.plan_end_dt, t13.plan_start_dt, t11.name, 
           t11.proj_num, t31.appt_rept_flg, t31.appt_rept_end_dt, 
           t31.appt_rept_type, t15.own_inst_id, t15.integration_id, t21.sr_num, 
           t31.target_ou_addr_id, t31.todo_actl_start_dt, t31.evt_stat_cd, 
           t31.cal_disp_flg, t31.template_flg, t31.todo_cd, t31.cal_type_cd, 
           t31.pr_order_id, t16.entlmnt_id, t18.format_type_cd, t19.ams_act_id, 
           t6.max_capability_lvl, t6.min_capability_lvl, t6.rte_appr_flg, t6.name, 
           t31.caller_type_cd, t25.case_id, t31.subtype_cd, t31.comments, 
           t16.corr_actn_id, t31.appt_end_dt, t31.pymnt_flg, t24.asset_num, 
           t31.owner_ou_id, t31.pr_ful_req_id, t31.pr_prdint_id, t16.prod_cmplnt_id, 
           t19.ams_route_to_cd, t19.sub_type_cd, t25.sgroup_id, t25.suspct_id, 
           t26.pim_appt_flg, t26.sebl_appt_flg, t26.unsprtd_rept_flg, 
           t3.srm_request_id, t3.stage_id, t3.active_flg, t31.pr_prod_cat_id, 
           t1.emp_id, t14.x_montant_impaye, t23.x_mnt_imp_tt_group, 
           t14.x_prio_relance, t27.x_niveau, t21.x_nom_demande, t31.x_nom_activite, 
           t31.x_num_affaire, t27.accnt_flg, t27.bill_pblshr_flg, 
           t14.x_tete_factu_id, t17.name, t27.prtnr_flg, t28.x_mnt_imp_tt_group, 
           t7.login, t10.row_id, t2.row_status, t22.ams_capability_lvl, t9.fst_name, 
           t9.home_ph_num, t5.row_id, t9.last_name, t9.mid_name, t9.work_ph_num, 
           t12.access_lvl_cd, t9.cell_ph_num, t9.fax_ph_num, t25.row_id, 
           t25.modification_num, t25.created_by, t25.last_upd_by, t25.created, 
           t25.last_upd, t25.conflict_id, t25.par_row_id, t19.row_id, 
           t19.modification_num, t19.created_by, t19.last_upd_by, t19.created, 
           t19.last_upd, t19.conflict_id, t19.par_row_id, t18.row_id, 
           t18.modification_num, t18.created_by, t18.last_upd_by, t18.created, 
           t18.last_upd, t18.conflict_id, t18.par_row_id, t16.row_id, 
           t16.modification_num, t16.created_by, t16.last_upd_by, t16.created, 
           t16.last_upd, t16.conflict_id, t16.par_row_id, t15.row_id, 
           t15.modification_num, t15.created_by, t15.last_upd_by, t15.created, 
           t15.last_upd, t15.conflict_id, t15.par_row_id, t26.row_id, 
           t26.modification_num, t26.created_by, t26.last_upd_by, t26.created, 
           t26.last_upd, t26.conflict_id, t26.par_row_id, t3.row_id, 
           t3.modification_num, t3.created_by, t3.last_upd_by, t3.created, 
           t3.last_upd, t3.conflict_id, t3.par_row_id, t2.row_id, t10.row_id, 
           t5.row_id
        FROM siebel.s_act_emp t1, siebel.s_act_emp t2, siebel.s_evt_mktg t3, 
             siebel.s_order t4, siebel.s_party t5, siebel.s_fn_appr t6, 
             siebel.s_user t7, siebel.s_org_ext t8, siebel.s_contact t9, 
             siebel.s_party t10, siebel.s_proj t11, siebel.s_contact_fnx t12, 
             siebel.s_projitem t13, siebel.s_org_ext_x t14, siebel.s_evt_act_ss t15, 
             siebel.s_srv_act t16, siebel.s_org_ext t17, siebel.s_evt_mail t18, 
             siebel.s_evt_act_fnx t19, siebel.s_src t20, siebel.s_srv_req t21, 
             siebel.s_contact_fnx t22, siebel.s_org_ext_x t23, siebel.s_asset t24, 
             siebel.s_susp_act t25, siebel.s_evt_cal t26, siebel.s_org_ext t27, 
             siebel.s_org_ext_x t28, siebel.s_opty t29, siebel.s_org_ext_fnx t30, 
             siebel.s_evt_act t31
        WHERE t27.master_ou_id = t8.par_row_id (+)
          AND t31.pr_order_id = t4.row_id (+)
          AND t19.ams_act_id = t6.row_id (+)
          AND t31.asset_id = t24.row_id (+)
          AND t31.opty_id = t29.row_id (+)
          AND t31.target_ou_id = t27.par_row_id (+)
          AND t31.target_ou_id = t30.row_id (+)
          AND t31.proj_id = t11.row_id (+)
          AND t31.proj_item_id = t13.row_id (+)
          AND t31.src_id = t20.row_id (+)
          AND t31.sra_sr_id = t21.row_id (+)
          AND t31.row_id = t1.activity_id (+)
          AND t31.target_ou_id = t14.par_row_id (+)
          AND t14.x_tete_factu_id = t17.par_row_id (+)
          AND t27.master_ou_id = t23.par_row_id (+)
          AND t14.x_tete_factu_id = t28.par_row_id (+)
          AND t31.row_id = t25.par_row_id (+)
          AND t31.row_id = t19.par_row_id (+)
          AND t31.row_id = t18.par_row_id (+)
          AND t31.row_id = t16.par_row_id (+)
          AND t31.row_id = t15.par_row_id (+)
          AND t31.row_id = t26.par_row_id (+)
          AND t31.row_id = t3.par_row_id (+)
          AND t31.owner_per_id = t2.emp_id (+)
          AND t31.row_id = t2.activity_id (+)
          AND t2.emp_id = t10.row_id (+)
          AND t2.emp_id = t7.par_row_id (+)
          AND t2.emp_id = t22.par_row_id (+)
          AND t31.target_per_id = t5.row_id (+)
          AND t31.target_per_id = t9.par_row_id (+)
          AND t31.target_per_id = t12.par_row_id (+)
          AND t31.x_supprime_flg != 'Y'
          AND t31.appt_rept_repl_cd IS NULL
          AND (t31.template_flg != 'Y'
          AND t31.template_flg != 'P'
          OR  t31.template_flg IS NULL)
          AND (t31.opty_id IS NULL
          OR  t29.secure_flg = 'N'
          OR  t31.opty_id IN (SELECT sq1_t1.opty_id
                   FROM siebel.s_opty_postn sq1_t1, siebel.s_contact sq1_t2, 
                        siebel.s_party sq1_t3, siebel.s_postn sq1_t4
                   WHERE sq1_t4.pr_emp_id = sq1_t2.par_row_id
                     AND sq1_t3.row_id = sq1_t4.par_row_id
                     AND sq1_t1.position_id = sq1_t3.row_id
                     AND sq1_t2.row_id = '1-6SHEHR'))
          AND (t31.priv_flg = 'N'
          OR  t31.priv_flg IS NULL
          OR  t31.owner_per_id = '1-6SHEHR')
          AND t31.x_num_affaire = '24528080'
    	  ;
    Je ne sais pas ce qu'est le dynamic sampling... et oui les stats existent.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 750
    Points : 341
    Points
    341
    Par défaut
    peux tu executer les requêtes suivantes stp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select count(1) from s_evt_act;
    select table_name,num_rows, blocks, empty_blocks, last_analyzed  from user_tables where table_name = 'S_EVT_ACT';

  10. #10
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 224
    Points : 211
    Points
    211
    Par défaut
    Bon les statistiques datent un peu.... :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT count(1) FROM s_evt_act;
    11376194
     
    SELECT table_name,num_rows, blocks, empty_blocks, last_analyzed  FROM dba_tables WHERE table_name = 'S_EVT_ACT';
    TABLE_NAME                       NUM_ROWS     BLOCKS EMPTY_BLOCKS LAST_ANALYZED
    ------------------------------ ---------- ---------- ------------ -------------------
    S_EVT_ACT                        11295737    1553320            0 06/14/2009 10:15:16

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 750
    Points : 341
    Points
    341
    Par défaut
    Quel est le champ VARCHAr2 dont tu parlais ?
    Le 1er message de ton poste expliquait que t'avais juste un select sur une table de 11 millions de lignes avec un predicat sur une colonne VARCHAR2.
    Au final on se retrouve avec une requête de plus de 30 tables.

    Peux tu simplifier la requête de la manière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from s_evt_act where col_varchar = 'TOTO'

  12. #12
    Membre actif Avatar de DAB.cz
    Inscrit en
    Octobre 2006
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 221
    Points : 249
    Points
    249
    Par défaut
    Quelles sont les valeurs de NLS_COMP et NLS_SORT?
    Je crois ANSI et FRANCE...

    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
    SQL> create table rrr (a number, b varchar2 (100));
     
    SQL> insert into rrr (a, b)
      2    select rownum, 'x'||to_char (rownum)
      3      from dual
      4      connect by level <= 100000;
     
    100000 lines inserted.
     
    SQL> create index irrr on rrr (b);
     
    SQL> select a from rrr where b = 'x500';
            A
    ---------
          500
     
    ------------------------------------------------------------------------------------
    | Id  | Operation                   | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    ------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT            |      |     1 |    65 |     2   (0)| 00:00:01 |
    |   1 |  TABLE ACCESS BY INDEX ROWID| RRR  |     1 |    65 |     2   (0)| 00:00:01 |
    |*  2 |   INDEX RANGE SCAN          | IRRR |     1 |       |     1   (0)| 00:00:01 |
    ------------------------------------------------------------------------------------
       2 - access("B"='x500')
       - dynamic sampling used for this statement
     
     
    SQL> alter session set nls_comp = ANSI;
    SQL> alter session set nls_sort = 'CZECH';
     
    SQL> select a from rrr where b = 'x500';
            A
    ---------
          500
     
    --------------------------------------------------------------------------
    | Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    --------------------------------------------------------------------------
    |   0 | SELECT STATEMENT  |      |   989 | 64285 |    58   (6)| 00:00:01 |
    |*  1 |  TABLE ACCESS FULL| RRR  |   989 | 64285 |    58   (6)| 00:00:01 |
    --------------------------------------------------------------------------
       1 - filter(NLSSORT("B",'nls_sort=''CZECH''')=HEXTORAW('7DF5F0F0000101
                  010100') )
       - dynamic sampling used for this statement

  13. #13
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 224
    Points : 211
    Points
    211
    Par défaut
    J'ai créé un index sur la colonne de type VARCHAR2, calculer les statistiques sur la colonne. Lorsque j'exécute la requête via IHM, je récupère la HASH VALUE afin de trouver le plan d'exécution et là ce qui est bizarre, c'est qu'il me sort 2 plans d'exécutions........


    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
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    SQL> select CHILD_NUMBER "CN", ID as "Id", PARENT_ID as "PId", DEPTH as "Dep.", POSITION as "Pos.",
      2  OPERATION, OPTIONS,
      3  OBJECT_OWNER||'.'||OBJECT_NAME as "Object",
      4  COST, CARDINALITY "Card", BYTES, CPU_COST "CPU", IO_COST "IO",
      5  TEMP_SPACE/1048576 "Temp"
      6  from v$sql_plan
      7  where hash_value = 3130332774;
     
     CN   Id  PId Dep. Pos. OPERATION            OPTIONS              Object                               COST     Card      BYTES     CPU      IO    Temp
    --- ---- ---- ---- ---- -------------------- -------------------- ------------------------------ ---------- -------- ---------- ------- ------- -------
      1    0         0    0 SELECT STATEMENT                          .                                   95372
      1    1    0    1    1 FILTER                                    .
      1    2    1    2    1 NESTED LOOPS         OUTER                .                                   95372        1       2179           95372
      1    3    2    3    1 NESTED LOOPS         OUTER                .                                   95371        1       2168           95371
      1    4    3    4    1 NESTED LOOPS         OUTER                .                                   95370        1       2146           95370
      1    5    4    5    1 NESTED LOOPS         OUTER                .                                   95369        1       2119           95369
      1    6    5    6    1 NESTED LOOPS         OUTER                .                                   95368        1       2089           95368
      1    7    6    7    1 NESTED LOOPS         OUTER                .                                   95367        1       2071           95367
      1    8    7    8    1 NESTED LOOPS         OUTER                .                                   95366        1       2060           95366
      1    9    8    9    1 NESTED LOOPS         OUTER                .                                   95365        1       2047           95365
      1   10    9   10    1 NESTED LOOPS         OUTER                .                                   95364        1       2034           95364
      1   11   10   11    1 NESTED LOOPS         OUTER                .                                   95363        1       2003           95363
      1   12   11   12    1 NESTED LOOPS         OUTER                .                                   95362        1       1971           95362
      1   13   12   13    1 NESTED LOOPS         OUTER                .                                   95361        1       1951           95361
      1   14   13   14    1 NESTED LOOPS         OUTER                .                                   95360        1       1920           95360
      1   15   14   15    1 NESTED LOOPS         OUTER                .                                   95359        1       1826           95359
      1   16   15   16    1 NESTED LOOPS         OUTER                .                                   95358        1       1805           95358
      1   17   16   17    1 NESTED LOOPS         OUTER                .                                   95357        1       1748           95357
      1   18   17   18    1 NESTED LOOPS         OUTER                .                                   95356        1       1651           95356
      1   19   18   19    1 NESTED LOOPS         OUTER                .                                   95355        1       1604           95355
      1   20   19   20    1 NESTED LOOPS         OUTER                .                                   95354        1       1501           95354
      1   21   20   21    1 NESTED LOOPS         OUTER                .                                   95353        1       1416           95353
      1   22   21   22    1 NESTED LOOPS         OUTER                .                                   95352        1       1319           95352
      1   23   22   23    1 NESTED LOOPS         OUTER                .                                   95351        1       1243           95351
      1   24   23   24    1 NESTED LOOPS         OUTER                .                                   95350        1       1229           95350
      1   25   24   25    1 NESTED LOOPS         OUTER                .                                   95349        1       1190           95349
      1   26   25   26    1 NESTED LOOPS         OUTER                .                                   95348        1       1119           95348
      1   27   26   27    1 NESTED LOOPS         OUTER                .                                   95347        1       1101           95347
      1   28   27   28    1 NESTED LOOPS         OUTER                .                                   95346        1       1043           95346
      1   29   28   29    1 NESTED LOOPS         OUTER                .                                   95345        1        940           95345
      1   30   29   30    1 NESTED LOOPS         OUTER                .                                   95344        1        803           95344
      1   31   30   31    1 NESTED LOOPS         OUTER                .                                   95343        1        758           95343
      1   32   31   32    1 TABLE ACCESS         FULL                 SIEBEL.S_EVT_ACT                    95342        1        651           95342
      1   33   31   32    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_PROJ                           1        1        107               1
      1   34   33   33    1 INDEX                UNIQUE SCAN          SIEBEL.S_PROJ_P1                                 1
      1   35   30   31    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_PROJITEM                       1        1         45               1
      1   36   35   32    1 INDEX                UNIQUE SCAN          SIEBEL.S_PROJITEM_P1                             1
      1   37   29   30    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_EVT_ACT_SS                     1        1        137               1
      1   38   37   31    1 INDEX                RANGE SCAN           SIEBEL.S_EVT_ACT_SS_U1                  1        1                          1
      1   39   28   29    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_SUSP_ACT                       1        1        103               1
      1   40   39   30    1 INDEX                RANGE SCAN           SIEBEL.S_SUSP_ACT_U1                    1        1                          1
      1   41   27   28    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_SRC                            1        1         58               1
      1   42   41   29    1 INDEX                UNIQUE SCAN          SIEBEL.S_SRC_P1                                  1
      1   43   26   27    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_ORDER                          1        1         18               1
      1   44   43   28    1 INDEX                UNIQUE SCAN          SIEBEL.S_ORDER_P1                                1
      1   45   25   26    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_EVT_MAIL                       1        1         71               1
      1   46   45   27    1 INDEX                RANGE SCAN           SIEBEL.S_EVT_MAIL_U1                    2        1                          2
      1   47   24   25    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_OPTY                           1        1         39               1
      1   48   47   26    1 INDEX                UNIQUE SCAN          SIEBEL.S_OPTY_P1                        1        1                          1
      1   49   23   24    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_CONTACT_FNX                    1        1         14               1
      1   50   49   25    1 INDEX                RANGE SCAN           SIEBEL.S_CONTACT_FNX_U1                 2        1                          2
      1   51   22   23    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_CONTACT                        1        1         76               1
      1   52   51   24    1 INDEX                UNIQUE SCAN          SIEBEL.S_CONTACT_U2                     1        1                          1
      1   53   21   22    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_EVT_MKTG                       1        1         97               1
      1   54   53   23    1 INDEX                RANGE SCAN           SIEBEL.S_EVT_MKTG_U1                    1        1                          1
      1   55   20   21    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_EVT_CAL                        1        1         85               1
      1   56   55   22    1 INDEX                RANGE SCAN           SIEBEL.S_EVT_CAL_U1                     1        1                          1
      1   57   19   20    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_SRV_ACT                        1        1        103               1
      1   58   57   21    1 INDEX                RANGE SCAN           SIEBEL.S_SRV_ACT_U1                     1        1                          1
      1   59   18   19    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_SRV_REQ                        1        1         47               1
      1   60   59   20    1 INDEX                UNIQUE SCAN          SIEBEL.S_SRV_REQ_P1                     1        1                          1
      1   61   17   18    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_EVT_ACT_FNX                    1        1         97               1
      1   62   61   19    1 INDEX                RANGE SCAN           SIEBEL.S_EVT_ACT_FNX_U1                 2        1                          2
      1   63   16   17    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_FN_APPR                        1        1         57               1
      1   64   63   18    1 INDEX                UNIQUE SCAN          SIEBEL.S_FN_APPR_P1                              1
      1   65   15   16    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_ASSET                          1        1         21               1
      1   66   65   17    1 INDEX                UNIQUE SCAN          SIEBEL.S_ASSET_P1                       1        1                          1
      1   67   14   15    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_ORG_EXT                        1        1         94               1
      1   68   67   16    1 INDEX                UNIQUE SCAN          SIEBEL.S_ORG_EXT_U3                     1        1                          1
      1   69   13   14    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_ORG_EXT                        1        1         31               1
      1   70   69   15    1 INDEX                UNIQUE SCAN          SIEBEL.S_ORG_EXT_U3                     1        1                          1
      1   71   12   13    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_ORG_EXT_FNX                    1        1         20               1
      1   72   71   14    1 INDEX                UNIQUE SCAN          SIEBEL.S_ORG_EXT_FNX_P1                 1        1                          1
      1   73   11   12    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_ORG_EXT_X                      1        1         32               1
      1   74   73   13    1 INDEX                RANGE SCAN           SIEBEL.S_ORG_EXT_X_U1                   2        1                          2
      1   75   10   11    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_ORG_EXT                        1        1         31               1
      1   76   75   12    1 INDEX                UNIQUE SCAN          SIEBEL.S_ORG_EXT_U3                     1        1                          1
      1   77    9   10    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_ORG_EXT_X                      1        1         13               1
      1   78   77   11    1 INDEX                RANGE SCAN           SIEBEL.S_ORG_EXT_X_U1                   2        1                          2
      1   79    8    9    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_ORG_EXT_X                      1        1         13               1
      1   80   79   10    1 INDEX                RANGE SCAN           SIEBEL.S_ORG_EXT_X_U1                   2        1                          2
      1   81    7    8    2 INDEX                UNIQUE SCAN          SIEBEL.S_PARTY_P1                       1        1         11               1
      1   82    6    7    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_ACT_EMP                        1        1         18               1
      1   83   82    8    1 INDEX                RANGE SCAN           SIEBEL.S_ACT_EMP_F1                     2        1                          2
      1   84    5    6    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_ACT_EMP                        1        1         30               1
      1   85   84    7    1 INDEX                RANGE SCAN           SIEBEL.S_ACT_EMP_U1                     2        1                          2
      1   86    4    5    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_USER                           1        1         27               1
      1   87   86    6    1 INDEX                UNIQUE SCAN          SIEBEL.S_USER_U2                                 1
      1   88    3    4    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_CONTACT_FNX                    1        1         22               1
      1   89   88    5    1 INDEX                RANGE SCAN           SIEBEL.S_CONTACT_FNX_U1                 2        1                          2
      1   90    2    3    2 INDEX                UNIQUE SCAN          SIEBEL.S_PARTY_P1                       1        1         11               1
      1   91    1    2    2 NESTED LOOPS                              .                                       4        1         67               4
      1   92   91    3    1 NESTED LOOPS                              .                                       3        2        112               3
      1   93   92    4    1 NESTED LOOPS                              .                                       2        2         76               2
      1   94   93    5    1 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_CONTACT                        1        1         20               1
      1   95   94    6    1 INDEX                UNIQUE SCAN          SIEBEL.S_CONTACT_P1                     2        1                          2
      1   96   93    5    2 INDEX                RANGE SCAN           SIEBEL.S_OPTY_POSTN_U1                  2        2         36               2
      1   97   92    4    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_POSTN                          1        1         18               1
      1   98   97    5    1 INDEX                RANGE SCAN           SIEBEL.S_POSTN_V1                       1        1                          1
      1   99   91    3    2 INDEX                UNIQUE SCAN          SIEBEL.S_PARTY_P1                       1        1         11               1
      0    0         0    0 SELECT STATEMENT                          .                                     276
      0    1    0    1    1 FILTER                                    .
      0    2    1    2    1 NESTED LOOPS         OUTER                .                                     276        1       2179             276
      0    3    2    3    1 NESTED LOOPS         OUTER                .                                     275        1       2168             275
      0    4    3    4    1 NESTED LOOPS         OUTER                .                                     274        1       2146             274
      0    5    4    5    1 NESTED LOOPS         OUTER                .                                     273        1       2119             273
      0    6    5    6    1 NESTED LOOPS         OUTER                .                                     272        1       2089             272
      0    7    6    7    1 NESTED LOOPS         OUTER                .                                     271        1       2071             271
      0    8    7    8    1 NESTED LOOPS         OUTER                .                                     270        1       2060             270
      0    9    8    9    1 NESTED LOOPS         OUTER                .                                     269        1       2047             269
      0   10    9   10    1 NESTED LOOPS         OUTER                .                                     268        1       2034             268
      0   11   10   11    1 NESTED LOOPS         OUTER                .                                     267        1       2003             267
      0   12   11   12    1 NESTED LOOPS         OUTER                .                                     266        1       1971             266
      0   13   12   13    1 NESTED LOOPS         OUTER                .                                     265        1       1951             265
      0   14   13   14    1 NESTED LOOPS         OUTER                .                                     264        1       1920             264
      0   15   14   15    1 NESTED LOOPS         OUTER                .                                     263        1       1826             263
      0   16   15   16    1 NESTED LOOPS         OUTER                .                                     262        1       1805             262
      0   17   16   17    1 NESTED LOOPS         OUTER                .                                     261        1       1748             261
      0   18   17   18    1 NESTED LOOPS         OUTER                .                                     260        1       1651             260
      0   19   18   19    1 NESTED LOOPS         OUTER                .                                     259        1       1604             259
      0   20   19   20    1 NESTED LOOPS         OUTER                .                                     258        1       1501             258
      0   21   20   21    1 NESTED LOOPS         OUTER                .                                     257        1       1416             257
      0   22   21   22    1 NESTED LOOPS         OUTER                .                                     256        1       1319             256
      0   23   22   23    1 NESTED LOOPS         OUTER                .                                     255        1       1243             255
      0   24   23   24    1 NESTED LOOPS         OUTER                .                                     254        1       1229             254
      0   25   24   25    1 NESTED LOOPS         OUTER                .                                     253        1       1190             253
      0   26   25   26    1 NESTED LOOPS         OUTER                .                                     252        1       1119             252
      0   27   26   27    1 NESTED LOOPS         OUTER                .                                     251        1       1101             251
      0   28   27   28    1 NESTED LOOPS         OUTER                .                                     250        1       1043             250
      0   29   28   29    1 NESTED LOOPS         OUTER                .                                     249        1        940             249
      0   30   29   30    1 NESTED LOOPS         OUTER                .                                     248        1        803             248
      0   31   30   31    1 NESTED LOOPS         OUTER                .                                     247        1        758             247
      0   32   31   32    1 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_EVT_ACT                      246        1        651             246
      0   33   32   33    1 INDEX                SKIP SCAN            SIEBEL.S_EVT_ACT_NUM_AFFAIRE        21806        1                      21806
      0   34   31   32    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_PROJ                           1        1        107               1
      0   35   34   33    1 INDEX                UNIQUE SCAN          SIEBEL.S_PROJ_P1                                 1
      0   36   30   31    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_PROJITEM                       1        1         45               1
      0   37   36   32    1 INDEX                UNIQUE SCAN          SIEBEL.S_PROJITEM_P1                             1
      0   38   29   30    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_EVT_ACT_SS                     1        1        137               1
      0   39   38   31    1 INDEX                RANGE SCAN           SIEBEL.S_EVT_ACT_SS_U1                  1        1                          1
      0   40   28   29    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_SUSP_ACT                       1        1        103               1
      0   41   40   30    1 INDEX                RANGE SCAN           SIEBEL.S_SUSP_ACT_U1                    1        1                          1
      0   42   27   28    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_SRC                            1        1         58               1
      0   43   42   29    1 INDEX                UNIQUE SCAN          SIEBEL.S_SRC_P1                                  1
      0   44   26   27    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_ORDER                          1        1         18               1
      0   45   44   28    1 INDEX                UNIQUE SCAN          SIEBEL.S_ORDER_P1                                1
      0   46   25   26    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_EVT_MAIL                       1        1         71               1
      0   47   46   27    1 INDEX                RANGE SCAN           SIEBEL.S_EVT_MAIL_U1                    2        1                          2
      0   48   24   25    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_OPTY                           1        1         39               1
      0   49   48   26    1 INDEX                UNIQUE SCAN          SIEBEL.S_OPTY_P1                        1        1                          1
      0   50   23   24    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_CONTACT_FNX                    1        1         14               1
      0   51   50   25    1 INDEX                RANGE SCAN           SIEBEL.S_CONTACT_FNX_U1                 2        1                          2
      0   52   22   23    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_CONTACT                        1        1         76               1
      0   53   52   24    1 INDEX                UNIQUE SCAN          SIEBEL.S_CONTACT_U2                     1        1                          1
      0   54   21   22    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_EVT_MKTG                       1        1         97               1
      0   55   54   23    1 INDEX                RANGE SCAN           SIEBEL.S_EVT_MKTG_U1                    1        1                          1
      0   56   20   21    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_EVT_CAL                        1        1         85               1
      0   57   56   22    1 INDEX                RANGE SCAN           SIEBEL.S_EVT_CAL_U1                     1        1                          1
      0   58   19   20    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_SRV_ACT                        1        1        103               1
      0   59   58   21    1 INDEX                RANGE SCAN           SIEBEL.S_SRV_ACT_U1                     1        1                          1
      0   60   18   19    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_SRV_REQ                        1        1         47               1
      0   61   60   20    1 INDEX                UNIQUE SCAN          SIEBEL.S_SRV_REQ_P1                     1        1                          1
      0   62   17   18    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_EVT_ACT_FNX                    1        1         97               1
      0   63   62   19    1 INDEX                RANGE SCAN           SIEBEL.S_EVT_ACT_FNX_U1                 2        1                          2
      0   64   16   17    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_FN_APPR                        1        1         57               1
      0   65   64   18    1 INDEX                UNIQUE SCAN          SIEBEL.S_FN_APPR_P1                              1
      0   66   15   16    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_ASSET                          1        1         21               1
      0   67   66   17    1 INDEX                UNIQUE SCAN          SIEBEL.S_ASSET_P1                       1        1                          1
      0   68   14   15    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_ORG_EXT                        1        1         94               1
      0   69   68   16    1 INDEX                UNIQUE SCAN          SIEBEL.S_ORG_EXT_U3                     1        1                          1
      0   70   13   14    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_ORG_EXT                        1        1         31               1
      0   71   70   15    1 INDEX                UNIQUE SCAN          SIEBEL.S_ORG_EXT_U3                     1        1                          1
      0   72   12   13    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_ORG_EXT_FNX                    1        1         20               1
      0   73   72   14    1 INDEX                UNIQUE SCAN          SIEBEL.S_ORG_EXT_FNX_P1                 1        1                          1
      0   74   11   12    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_ORG_EXT_X                      1        1         32               1
      0   75   74   13    1 INDEX                RANGE SCAN           SIEBEL.S_ORG_EXT_X_U1                   2        1                          2
      0   76   10   11    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_ORG_EXT                        1        1         31               1
      0   77   76   12    1 INDEX                UNIQUE SCAN          SIEBEL.S_ORG_EXT_U3                     1        1                          1
      0   78    9   10    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_ORG_EXT_X                      1        1         13               1
      0   79   78   11    1 INDEX                RANGE SCAN           SIEBEL.S_ORG_EXT_X_U1                   2        1                          2
      0   80    8    9    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_ORG_EXT_X                      1        1         13               1
      0   81   80   10    1 INDEX                RANGE SCAN           SIEBEL.S_ORG_EXT_X_U1                   2        1                          2
      0   82    7    8    2 INDEX                UNIQUE SCAN          SIEBEL.S_PARTY_P1                       1        1         11               1
      0   83    6    7    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_ACT_EMP                        1        1         18               1
      0   84   83    8    1 INDEX                RANGE SCAN           SIEBEL.S_ACT_EMP_F1                     2        1                          2
      0   85    5    6    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_ACT_EMP                        1        1         30               1
      0   86   85    7    1 INDEX                RANGE SCAN           SIEBEL.S_ACT_EMP_U1                     2        1                          2
      0   87    4    5    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_USER                           1        1         27               1
      0   88   87    6    1 INDEX                UNIQUE SCAN          SIEBEL.S_USER_U2                                 1
      0   89    3    4    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_CONTACT_FNX                    1        1         22               1
      0   90   89    5    1 INDEX                RANGE SCAN           SIEBEL.S_CONTACT_FNX_U1                 2        1                          2
      0   91    2    3    2 INDEX                UNIQUE SCAN          SIEBEL.S_PARTY_P1                       1        1         11               1
      0   92    1    2    2 NESTED LOOPS                              .                                       4        1         67               4
      0   93   92    3    1 NESTED LOOPS                              .                                       3        2        112               3
      0   94   93    4    1 NESTED LOOPS                              .                                       2        2         76               2
      0   95   94    5    1 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_CONTACT                        1        1         20               1
      0   96   95    6    1 INDEX                UNIQUE SCAN          SIEBEL.S_CONTACT_P1                     2        1                          2
      0   97   94    5    2 INDEX                RANGE SCAN           SIEBEL.S_OPTY_POSTN_U1                  2        2         36               2
      0   98   93    4    2 TABLE ACCESS         BY INDEX ROWID       SIEBEL.S_POSTN                          1        1         18               1
      0   99   98    5    1 INDEX                RANGE SCAN           SIEBEL.S_POSTN_V1                       1        1                          1
      0  100   92    3    2 INDEX                UNIQUE SCAN          SIEBEL.S_PARTY_P1                       1        1         11               1
    Bien évidement, il utilise le premier plan d'exécution en FULL Scan... d'ailleurs, je ne comprends pas pourquoi il me fait un SKIP SCAN dans le 2ème plan d'exécution car l'index ne porte que sur cette colonne ?

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 750
    Points : 341
    Points
    341
    Par défaut
    quel est le nom de ce champ dont tu parles tant ?
    Combien de valeurs distinctes pour ce champ ?
    En quelle version d'oracle es-tu ?

  15. #15
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 224
    Points : 211
    Points
    211
    Par défaut
    Ce champ est le X_NUM_AFFAIRE sur lequel la condition est réalisée.
    Ce champ possède 4 000 lignes renseignées sur 11 millions de lignes ce qui fait que dans ce champ, environ 10 996 000 lignes ont la valeur NULL.

    Je suis en 9.2.0.8 (je pensais l'avoir dis... )

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 750
    Points : 341
    Points
    341
    Par défaut
    ok dans ce cas ouvre une fenêtre SQLPLUS et exécute les instructions suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    set timing on
    set autotrace on
    select count(1) from s_evt_act where X_NUM_AFFAIRE = '24528080';
    envoie nous tous les résultats (temps d'execution, explain plan et stats d'execution)

  17. #17
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 224
    Points : 211
    Points
    211
    Par défaut
    Voilà le résultat (très rapide) :

    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
      COUNT(1)
    ----------
             1
     
    Elapsed: 00:00:00.57
     
    Execution Plan
    ----------------------------------------------------------
       0      SELECT STATEMENT Optimizer=CHOOSE (Cost=1 Card=1 Bytes=2)
       1    0   SORT (AGGREGATE)
       2    1     INDEX (RANGE SCAN) OF 'S_EVT_ACT_NUM_AFFAIRE' (NON-UNIQU
              E) (Cost=7 Card=1 Bytes=2)
     
     
     
     
     
    Statistics
    ----------------------------------------------------------
              0  recursive calls
              0  db block gets
              3  consistent gets
              2  physical reads
              0  redo size
            518  bytes sent via SQL*Net to client
            656  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
              1  rows processed

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 750
    Points : 341
    Points
    341
    Par défaut
    bon ba tu vois que ton index est pris en compte.
    maintenant tu fais la même chose avec la requête suivante:
    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
     
    select count(1)
    FROM siebel.s_act_emp t1, siebel.s_act_emp t2, siebel.s_evt_mktg t3, 
             siebel.s_order t4, siebel.s_party t5, siebel.s_fn_appr t6, 
             siebel.s_user t7, siebel.s_org_ext t8, siebel.s_contact t9, 
             siebel.s_party t10, siebel.s_proj t11, siebel.s_contact_fnx t12, 
             siebel.s_projitem t13, siebel.s_org_ext_x t14, siebel.s_evt_act_ss t15, 
             siebel.s_srv_act t16, siebel.s_org_ext t17, siebel.s_evt_mail t18, 
             siebel.s_evt_act_fnx t19, siebel.s_src t20, siebel.s_srv_req t21, 
             siebel.s_contact_fnx t22, siebel.s_org_ext_x t23, siebel.s_asset t24, 
             siebel.s_susp_act t25, siebel.s_evt_cal t26, siebel.s_org_ext t27, 
             siebel.s_org_ext_x t28, siebel.s_opty t29, siebel.s_org_ext_fnx t30, 
             siebel.s_evt_act t31
        WHERE t27.master_ou_id = t8.par_row_id (+)
          AND t31.pr_order_id = t4.row_id (+)
          AND t19.ams_act_id = t6.row_id (+)
          AND t31.asset_id = t24.row_id (+)
          AND t31.opty_id = t29.row_id (+)
          AND t31.target_ou_id = t27.par_row_id (+)
          AND t31.target_ou_id = t30.row_id (+)
          AND t31.proj_id = t11.row_id (+)
          AND t31.proj_item_id = t13.row_id (+)
          AND t31.src_id = t20.row_id (+)
          AND t31.sra_sr_id = t21.row_id (+)
          AND t31.row_id = t1.activity_id (+)
          AND t31.target_ou_id = t14.par_row_id (+)
          AND t14.x_tete_factu_id = t17.par_row_id (+)
          AND t27.master_ou_id = t23.par_row_id (+)
          AND t14.x_tete_factu_id = t28.par_row_id (+)
          AND t31.row_id = t25.par_row_id (+)
          AND t31.row_id = t19.par_row_id (+)
          AND t31.row_id = t18.par_row_id (+)
          AND t31.row_id = t16.par_row_id (+)
          AND t31.row_id = t15.par_row_id (+)
          AND t31.row_id = t26.par_row_id (+)
          AND t31.row_id = t3.par_row_id (+)
          AND t31.owner_per_id = t2.emp_id (+)
          AND t31.row_id = t2.activity_id (+)
          AND t2.emp_id = t10.row_id (+)
          AND t2.emp_id = t7.par_row_id (+)
          AND t2.emp_id = t22.par_row_id (+)
          AND t31.target_per_id = t5.row_id (+)
          AND t31.target_per_id = t9.par_row_id (+)
          AND t31.target_per_id = t12.par_row_id (+)
          AND t31.x_supprime_flg != 'Y'
          AND t31.appt_rept_repl_cd IS NULL
          AND (t31.template_flg != 'Y'
          AND t31.template_flg != 'P'
          OR  t31.template_flg IS NULL)
          AND (t31.opty_id IS NULL
          OR  t29.secure_flg = 'N'
          OR  t31.opty_id IN (SELECT sq1_t1.opty_id
                   FROM siebel.s_opty_postn sq1_t1, siebel.s_contact sq1_t2, 
                        siebel.s_party sq1_t3, siebel.s_postn sq1_t4
                   WHERE sq1_t4.pr_emp_id = sq1_t2.par_row_id
                     AND sq1_t3.row_id = sq1_t4.par_row_id
                     AND sq1_t1.position_id = sq1_t3.row_id
                     AND sq1_t2.row_id = '1-6SHEHR'))
          AND (t31.priv_flg = 'N'
          OR  t31.priv_flg IS NULL
          OR  t31.owner_per_id = '1-6SHEHR')
          AND t31.x_num_affaire = '24528080'
    	  ;

  19. #19
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 224
    Points : 211
    Points
    211
    Par défaut
    Oui, il est pris en compte en SQLPLUS par contre, si on fait la requête via IHM (Siebel), il utilise un FULL Scan.

    Quand l'utilisateur lance sa recherche sur le champ X_NUM_AFFAIRE, on récupère la HASH VALUE de la requête afin de repérer le plan d'exécution et là on se retrouve avec 2 plans d'exécutions (cf 3 posts au-dessus) et utilise le premier qui fait un FULL SCAN...

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 750
    Points : 341
    Points
    341
    Par défaut
    Citation Envoyé par Milo59000 Voir le message
    Oui, il est pris en compte en SQLPLUS par contre, si on fait la requête via IHM (Siebel), il utilise un FULL Scan.
    Peux tu quand même envoyer le résultat sous sqlplus avec le plan d'execution et le temps que ça prend

    Citation Envoyé par Milo59000 Voir le message
    Quand l'utilisateur lance sa recherche sur le champ X_NUM_AFFAIRE, on récupère la HASH VALUE de la requête afin de repérer le plan d'exécution et là on se retrouve avec 2 plans d'exécutions (cf 3 posts au-dessus) et utilise le premier qui fait un FULL SCAN...
    oui mais t'as 2 child number différents.
    Il te faut le champ ADDRESS en plus du hash_value si tu veux savoir quel est le plan utilisé (en 10g c'est plus simple car t'as le champ SQL_ID).
    Comment sais tu que c'est le plan avec le FTS qui est pris en compte?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Index sur une colonne
    Par logiciel_const dans le forum SQL
    Réponses: 4
    Dernier message: 22/06/2011, 14h09
  2. Création d'index sur une colonne TEXT
    Par AyManoVic dans le forum Requêtes
    Réponses: 2
    Dernier message: 03/08/2010, 00h12
  3. Réponses: 1
    Dernier message: 27/07/2009, 16h11
  4. INDEX sur une colonne qui peut être NULL
    Par dorian53 dans le forum Requêtes
    Réponses: 15
    Dernier message: 29/11/2007, 17h13
  5. Index sur une colonne Date
    Par sjaeger dans le forum Oracle
    Réponses: 11
    Dernier message: 10/11/2005, 14h55

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