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

Access Discussion :

[Access] Optimisation performance requête - Index [Infos]


Sujet :

Access

  1. #1
    Membre averti

    Profil pro
    Inscrit en
    Mai 2004
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 236
    Points : 310
    Points
    310
    Par défaut [Access] Optimisation performance requête - Index
    Bonjour,

    Je travaille actuellement sur une application ACCESS qui comporte des tables assez conséquentes en terme de nombre d'enregistrements ( + 400 000 ). Je dois effectuer des traitements sur ces tables pour élaborer divers statistiques et je cherche des conseils pour optimiser le temps de ces requêtes.

    - Est-ce qu'une requête d'insertion ou d'update est plus rapide lorsqu'elle comporte une sous requête dont le critère de recherche est indexé ?
    - Vaut-il mieux utiliser le terme EXISTS ou IN en terme de rapidité de recherche ?
    - Quelles sont les solutions pour contourner les sous requêtes ? Si oui est-ce vraiment plus rapide en terme de temps ?


    Merci d'avance de toutes vos réponses.

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Mai 2004
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 236
    Points : 310
    Points
    310
    Par défaut
    Personne d'inspiré par des questions de performance
    J'uppe le sujet au cas où une gentille personne voyant de la lumière arrive à apporter un début de réponse.

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Points : 1 148
    Points
    1 148
    Par défaut
    Salut,

    je cherche moi aussi à optimiser les performances mais sur des tables beaucoup plus petites.

    Je me demande aussi pour les sous-requête. Une méthode est de faire une jointure (ça peut remplacer le EXISTS si tu n'as pas de critères dessus)...je suis toujours à la recherche de solution.
    Neilos

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    une des solutions est une horreur conceptuelle (à priori) c'est la table à plat(abandon du modèle relationnel et toutes les données dans la même table)

    cela donne avec une indexation judicieuse et un tri poussé lors de l'écriture des perfomances remarquables

    on crée une base contenant la table à plat pour des calculs importants
    et des traitements compliqués puis on rapatrie les données retraitées
    Elle est pas belle la vie ?

  5. #5
    Membre averti

    Profil pro
    Inscrit en
    Mai 2004
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 236
    Points : 310
    Points
    310
    Par défaut
    Qu'appelles-tu une indexation judicieuse ?

  6. #6
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Citation Envoyé par random
    une des solutions est une horreur conceptuelle (à priori) c'est la table à plat(abandon du modèle relationnel et toutes les données dans la même table)

    cela donne avec une indexation judicieuse et un tri poussé lors de l'écriture des perfomances remarquables

    on crée une base contenant la table à plat pour des calculs importants
    et des traitements compliqués puis on rapatrie les données retraitées
    Random a raison dans certains cas, la création d'une ou plusieurs tables temporaires "à plat" et des indexations permettent de gagner du temps.
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  7. #7
    Membre averti

    Profil pro
    Inscrit en
    Mai 2004
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 236
    Points : 310
    Points
    310
    Par défaut
    Est-ce qu'Access gère vraiment bien les index ? (surtout ceux qui sont autres que clé primaire ) .

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    oui access gère bien les index
    et même très bien
    Elle est pas belle la vie ?

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    Citation Envoyé par fdraven
    Qu'appelles-tu une indexation judicieuse ?
    je nomme indexation judicieuse index sur tous les champs utilisés pour les tris

    plus indexation combinée pour les champs utilisés en association
    Elle est pas belle la vie ?

  10. #10
    Membre averti

    Profil pro
    Inscrit en
    Mai 2004
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 236
    Points : 310
    Points
    310
    Par défaut
    Je viens de lire dans un des tutoriels de ce forum qu' un EXISTS est plus rapide en terme de performance qu' IN. Quelqu'un en connait-il la raison ?

  11. #11
    Membre averti

    Profil pro
    Inscrit en
    Mai 2004
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 236
    Points : 310
    Points
    310
    Par défaut
    Nouvelle question:

    1) ex : insert into table1 Select ... Where Exists ( select * From table2 Where table2.champ1 = table1.champ1 And table2.champ2 = table1.champ2...);

    Vaut-il mieux créer un index sur chaque partie du champs de la sous requête ou créer 2 index ( regroupant champ1 et champé) ? pour obtenir des meilleurs performances au niveau du temps d'exécution de la requête.

    2) Quelle est la différence entre un index CLUSTERED et un index NONCLUSTERED ?

    En espérant que quelqu'un est un début de réponse. Merci d'avance

  12. #12
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    Citation Envoyé par fdraven
    Nouvelle question:


    2) Quelle est la différence entre un index CLUSTERED et un index NONCLUSTERED ?
    un index non clustérisé est comme un annuaire je cherche Dupont
    son adresse est 27 rue de la grange aux loups à nantes où je me rends et ainsi de suite pour dupont 122 rue de Siam Brest (j'ai évité paris brest pour des questions de tour de taille)

    avec un index clustérisé dupont va habiter avec tous les dupo..... rue de la grange aux loups , j'irais donc du 27 au 122

    remplace les adresses par des clusters(portion contigue) de disque dur et imagine le gain de temps
    Elle est pas belle la vie ?

Discussions similaires

  1. [11gR2] Recherche conseil d'optimisation de requête : index possible
    Par prgasp77 dans le forum Oracle
    Réponses: 3
    Dernier message: 15/01/2015, 17h20
  2. Optimisation de requête et index
    Par Hypnocrate dans le forum Langage SQL
    Réponses: 7
    Dernier message: 28/11/2010, 11h02
  3. Positionnement d'index pour optimiser une requête
    Par Monstros Velu dans le forum Développement
    Réponses: 14
    Dernier message: 17/02/2010, 16h53
  4. Optimisation de requête, quel index ?
    Par compu dans le forum Requêtes
    Réponses: 4
    Dernier message: 23/10/2008, 00h07
  5. Réponses: 4
    Dernier message: 07/10/2008, 14h16

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