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

Décisions SGBD Discussion :

Performance et tri


Sujet :

Décisions SGBD

  1. #1
    Membre à l'essai
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Avril 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2004
    Messages : 18
    Points : 19
    Points
    19
    Par défaut Performance et tri
    Bonjour,
    Je me pose actuellement une question sur les perf des bases de données (notemment Oracle dans le cas ou elles n'auraient pas toutes la même approche) : un collègue m'affirme que si l'on effectue des tris dans une requête, il est préférable de mettre un index sur la/les colonne(s) à trier afin d'améliorer les temps de réponses.
    Pour moi, les index doivent être mis sur les colonnes faisant partie des conditions. Les tris ne sont pas correler aux index.
    Qui a raison ?

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Si les conditions font que l'on ramène 5 lignes sur 100 000 000, l'index sur la colonne à trier ne sert pas à grand chose, alors que l'index sur les colonnes entrant dans les conditions risque d'être bien utile.

    Si les conditions font que l'on ramène 99 999 990 lignes sur 100 000 000 l'index sur les conditions ne sert pas à grand chose alors que l'index sur le tri sera sans doute très utile (surtout si toutes les colonnes ramenées sont dans cet index)
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  3. #3
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    Le tri va générer une table de travail triée... qui n'est pas nécessaire à générer si l'index existe déjà, puisque celui-ci est trié !
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    l'index n'a d'intérêt que si il permet d'éviter un TABLE ACCESS

  5. #5
    Membre à l'essai
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Avril 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2004
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    Désolé Fred_D mais je ne comprens pas ta remarque...
    Mon souci est de savoir si quand j'affiche le resultat d'une recherche dans une page web, il faut que je mette un index sur chaque colonne de résultat triable (auquel cas, je ne permettrai un tri que sur quelques colonnes) ou si je peux rendre toutes les colonnes triables sans perte de perf.
    Pour moi, il me semble que c'est plutot la solution 2 puisque le système refait la même requet en modifiant juste un "asc" par un "desc"...
    Qu'en est-il ?

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Lorsqu'Oracle cherche les données il passe par un plan d'exécution et accéde par des indexes et/ou les tables. Si l'index contient toutes les colonnes utilisées dans la requête alors Oracle n'a pas besoin d'aller dans la table (TABLE ACCESS) puisque l'index contient ce qu'il faut.

    Voila pour moi le seul cas où l'index intervient dans le tri

Discussions similaires

  1. Optimiser les performances try/catch ?
    Par KiLVaiDeN dans le forum Langage
    Réponses: 4
    Dernier message: 14/01/2014, 13h47
  2. performance enter try ou test
    Par c+cool dans le forum Langage
    Réponses: 3
    Dernier message: 29/06/2009, 10h28
  3. Comparaison des performances des algorithmes de tri
    Par biba13 dans le forum Pascal
    Réponses: 2
    Dernier message: 09/05/2007, 20h28
  4. [VBA]performance de combinaison,tri et élimination doublons
    Par tangjuncn dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 16/03/2007, 23h52
  5. [Performances]Filtre et tri en relation avec DB
    Par stoukou dans le forum Général Java
    Réponses: 6
    Dernier message: 19/09/2005, 11h46

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