Indexation des champs

Bonjour,

j'ai une base de données Oracle et j'ai une application ou ya des requetes pour faire des recherche sur la base.

je voudrai optimiser ces recherches en indexant les champs de la base. Quelles sont les critères pour choisir les champs qu'on doit indexer.

Merci.

P.S: Je suis un nouveau membre les amis.
Configuration: Windows 2000
Internet Explorer 6.0

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour freeman,

    En fait, il n'existe pas de règle absolue, cela dépend de tes requêtes et du nombre d'enregistrements dans ta table.
    Si tu veux que je te donne un exemple concret, donne ta table en clair (c-à-d le nom des colonnes ainsi que leur type), la (ou les requêtes) sur cette table et également le nombre d'enregistrements.
    A plus et bienvenu sur CCM.
    1. Bonjour,
      Dans ce cas, tu devrais avoir une clé primaire (et probablement unique) sur la colonne ID_ENTREPRISE pour ta table PP_entreprise, et une autre clé primaire sur la colonne ID_ENTREPRISE pour ta table PP_ENT_COMPORTE mais si tu avais aussi inclus dans ton post la table PP_ENT_COMPORTE afin de vérifier si tu dois utiliser une clé primaire ou non?
      Il ne faut pas créer des clés pour toutes les requêtes, car le nombre de clé sur une table influence le temps mis pour créer de nouveaux enregistrements.
      A plus
      1. Bonjour,

        Je ne te comprends pas bien, ta clé primaire est un index (ID_ENTREPRISE)
        Tu peux également mettre un index (ID_ENTREPRISE,TYPE_ENT,ID_PP) sur ta table PP_ENT_COMPORTE
        cela devrait optimiser les requêtes ayant comme condition
        ID_ENTREPRISE = ... et ENT_ID = .. et ID_PP = .. ou
        ID_ENTREPRICE = ... et ENT_ID = ..
        mais pas une requête ayant comme condition
        ID_PP = ..
        Dans ce cas, tu devrais mettre un autre index sur (ID_PP)

        A plus
        1. Re christounet je te remercie pour ton interet
          alors je te donne un exemple dune table k g ds la base et sur lakelle japplik une requete
          Nom table: PP_Entreprise
          Champs Type Null

          ID_Entreprise Number No
          Nom_Entreprise Varchar2(50) Yes
          ADDR_ENTREPRISE VARCHAR2(80) YES
          VILLE_ENTREPRISE VARCHAR2(30) YES
          FAX_ENTREPRISE VARCHAR2(20) YES
          TYPE_ENTREPRISE VARCHAR2(2) YES
          QUALIFIE_ENTREPRISE VARCHAR2(3) YES
          COMMANTAIRE_ENTR... VARCHAR2(200) YES
          ID_MEDECIN NUMBER YES
          EN_COURS_DE_MODIF VARCHAR2(8) YES

          et j'ai la requete suivante sur VB6

          sql = "select NOM_ENTREPRISE " & _
          "from PP_ENTREPRISE, PP_ENT_COMPORTE " & _
          "where PP_ENTREPRISE.ID_ENTREPRISE = PP_ENT_COMPORTE.ID_ENTREPRISE " & _
          "and TYPE_ENT = 'EE' " & _
          "and ID_PP = " & idPP

          J'espere que c'est assé clair.
          1. Re,

            mon probleme ce n'est pas la clé primaire c'est plutot comment choisir le champs a indexer.

            A+