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

MS SQL Server Discussion :

Gros problème de performance


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2004
    Messages : 129
    Par défaut Gros problème de performance
    Bonjour,

    Je développe en ce moment une application Web en ASP.NET2. Dans cette application il a une section pour créer des commandes. J'ai donc une page qui permet à l'usager de créer une commandes et d'ajouter les articles qu'il veut commander. Jusque là tout va bien. Hier j'ai décidé de faire des tests de performance sur ma page. Vu que je sais que nos client créer environs 100 000 commande par années j'ai décidé de simulé le cas. J'ai donc créer 100 000 commandes et chacune d'elles contiennent 4 articles.

    Ma structure est la suivante. J'ai une table Parent "Commande" qui contient l'information de base de la commande. J'ai ensuite une table "CommandeDetails" qui contient l'information d'une ligne détails c'est-à-dire le nom de l'article, son prix, sa couleur etc....
    Donc si je commandes 4 articles j'aurais 4 lignes dans ma table "CommandeDétails" pour une même commande.

    J'ai donc créer 100 000 commandes et 400 000 lignes détails. Maintenant si j'essais de consulter ma page j'ai des délai qui vont parfois jusqu'a 20sec avant que ma page s'affiche ce qui n'a aucun sens. J'utilise ADO.NET mais toutes mes requête se font via des Procédure Stockée et toute mes requête ne retourne l'information que pour une commande à la fois. Donc en principe je reçois toujours qu'une seule ligne d'information. J'ai mis tout mes colonnes indexables.

    C'est certain que c'est moi qui fait quelque chose de pas correct mais je ne sais pas c'est quoi alors je viens demander l'aide d'expert parce que là je ne sais pas quoi faire.

    Merci !

  2. #2
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Bonjour,

    Probablement un manque d'index. Que veux-tu dire par "J'ai mis tout mes colonnes indexables". Les colonnes sont en général presque toutes indexables (sauf les blobs), mais sont-elles indexées ?

    Je te suggère de consulter le plan d'exécution de tes requête lentes, il y a une explication de la marche à suivre dans mon article : http://rudi.developpez.com/sqlserver.../optimisation/

  3. #3
    Membre éclairé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Par défaut
    Toutes les colonnes indexables, ok, mais indexées ? Il ne faut surtout pas !
    Seuls doivent être indexés les colonnes importantes :
    - Commande.Id_commande
    Et
    - Details.Id_detail
    - Details.Id_commande
    histoire d'accélérer le machin...

    Pour le reste, je pense que c'est plus au niveau de ta prog, tu ouvres ton connecteur en quel mode ? Lecture seule et en avant seulement ? dis-nous en un peu plus !

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Par défaut
    Bonjour,

    avant de supposer que la lenteur vient de SQL, je pense qu'il faut que tu précises si tes tests ont été faits avec le client sur un poste, et la base sur un serveur.

    Parce que mon expérience dans le domaine m'a démontré que beaucoup de pb de perfs viennent :

    1- Soit du réseau
    2- Soit des accès disques sur serveur (ou station). Parfois en changeant de disque ou de carte sur le serveur ou la baie de disque ca change du tout ou tout
    3- Ensuite effectivemment, on peut vérifier une fois de plus le code SQL.. On a tendance à faire cela en premier (ce qui bien sur est logique) mais on a aussi tedance à ne regarder que cela, et c'est souvent une erreur et une perte de temps

    Cdlt

Discussions similaires

  1. Gros problème de performance
    Par Patersson dans le forum Windows Presentation Foundation
    Réponses: 15
    Dernier message: 07/10/2010, 15h46
  2. Gros problème de performance
    Par Syl_20 dans le forum OpenGL
    Réponses: 15
    Dernier message: 16/12/2007, 18h19
  3. GROS problèmes de performances
    Par fda dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 02/08/2007, 14h02
  4. [Tomcat] Gros problèmes de performance
    Par Tourix dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 04/06/2007, 15h58
  5. [XNA] GROS problèmes de performances
    Par kawash dans le forum XNA/Monogame
    Réponses: 12
    Dernier message: 20/02/2007, 23h03

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