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

DB2 Discussion :

Problème de lenteur de Requete DB2


Sujet :

DB2

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Problème de lenteur de Requete DB2
    Bonjour à tous,

    Je viens de commencer à développer sur DB2.
    Par contre je travaille sur un serveur Windows 2008 R2 (sous Visual Studio 2010), et la base de données DB2 est installée sur un serveur Windows 2003 R2.

    Je vous énonce mon problème.
    J'ai une table qui fait 103 champs et ma clé primaire fait 14 champs.
    (Oui ce n'est pas très optimisé mais "Ordre du chef de Projet")
    Juste une requête "SELECT * FROM <ma_table>" et le temps d'exécution dépasse les 10 secondes.

    Merci pour vos infos.
    Cordialement,
    NB.


    Autres infos :
    -> la clé formée est un ensemble de champs de type VARCHAR(50).
    -> les autres champs sont de type LONG VARCHAR;
    JE NE SUIS PAS EN MESURE DE VOUS ENVOYER MA TABLE : Secret Pro.

  2. #2
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    votre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM maTable
    Doit surement vous générer un flux de retour important (Lecture complete de la table + renvoi de toutes les données + affichage dans votre client).

    Conseils : Eviter de selectionner toutes vos colonnes (*) si vous le pouvez (Mais bon avec 103 colonnes, je dois bien admettre que ca ne doit pas etre facile), limitez vos résultats par des clauses restrictives, indexez correctement les colonnes.

    Bon courage

  3. #3
    Membre éclairé Avatar de Peut-êtreUneRéponse
    Homme Profil pro
    IT Specialist - IBM Z
    Inscrit en
    Décembre 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : IT Specialist - IBM Z
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 548
    Points : 802
    Points
    802
    Par défaut
    SELECT * sans prédicat ?

    Je pense que tu n'as pas besoin ramener toutes les colonnes et toutes les lignes de ta table.

    Nommes les colonnes utiles dans le select et rajoute une clause where indexée, ce sera déjà un bon début


    [EDIT] duplicate avec @Yannika bzh


    .

  4. #4
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Je suis obligé de renvoyer toutes mes colonnes.

    Dans mon code je les utilise toutes donc ....
    Oui c'est une chose barbare mais bon.

    J'ai trouvé une solution en laissant ma clé dans une table (avec clé primaire un ID auto-incrémenté) et dans une autre tous mes champs.

    C'est beaucoup plus rapide au traitement.

    Merci pour vos réponses.

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    j'vois pas bien le rapport là oO

    Votre volumétrie entre les 2 tables n'as pas changé, et une pk c'est une contrainte d'unicité qui est surement indexée (je ne connais pas assez db2 LUW pour avoir un avis net)....


    Bref par contre dans votre table en question, n'avez-vous pas des redondances de données (ceci peut alterer énormément les perfs ...)?

    Qu'est-ce qui justifie une clef primaire de 14 colonnes ?

  6. #6
    Membre régulier Avatar de rgomes
    Homme Profil pro
    IT Developer JAVA Senior
    Inscrit en
    Juin 2004
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : IT Developer JAVA Senior
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2004
    Messages : 128
    Points : 76
    Points
    76
    Par défaut
    Tu peux peut être essayé de faire un "bulk load" :

    1 - 1er filtre
    int[] ids = select ID from bigtable where.....

    2 - Bulk load
    select * from bigtable where id in (...ids...)

Discussions similaires

  1. Problème pour créer une requete SQL pour DB2
    Par cnidaire dans le forum DB2
    Réponses: 3
    Dernier message: 29/06/2013, 16h57
  2. problème de lenteur requete
    Par PAYASS59 dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/06/2008, 17h33
  3. [fileupload] problème pour parser la requete
    Par jaimepasteevy dans le forum Struts 1
    Réponses: 12
    Dernier message: 24/04/2008, 12h02
  4. Problème de lenteur des requetes
    Par cyberdam dans le forum Installation
    Réponses: 1
    Dernier message: 20/03/2007, 11h25
  5. Optimiser MS SQL2000 car j'ai des problèmes de lenteurs
    Par djavaux dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 21/04/2004, 10h50

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