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éveloppement SQL Server Discussion :

Temps de réponse sur un SELECT


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 25
    Points : 20
    Points
    20
    Par défaut Temps de réponse sur un SELECT
    Bonjour,

    J'ai un problème non négligeable en terme de performance lorsque je fais un select * simple sur une vue SQL.

    En environnement de DEV, le temps de réponse est proche de l'infini (je stoppe l'éxecution au bout d'une vingtaine de minute, n'ayant rien de sorti) alors qu'en REC, le résultat sort au bout de quelques minutes (ce qui est déjà long).
    Même une clause WHERE ou un select sur une colonne n'arrange rien,

    Si quelqu'un a eu le même soucis et à pu trouver une solution, je suis preneur...

    Merci par avance

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Vous ne donnez aucune information sur votre vue, la volumétrie, même pasla requête en question...

    Et tout un tas de choses peuvent expliquer ce comportement :
    - les deux serveurs sont-ils identiques (RAM, CPU, ...)
    - Les deux bases sont-elles identiques, (notamment les indexs ?)
    - la volumétrie est -elle la même ?
    - ...

    Vous pouvez déjà comparer les plans d’exécution sur les deux serveurs...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 25
    Points : 20
    Points
    20
    Par défaut
    Bonjour,

    Je suis un peu embêté dans la mesure où je n'ai crée ni la vue, ni la base de donnée, je me contente de faire un simple select pour tester, et normalement le temps d'exécution est très court.

    Les deux bases sont configurées de la même façon sauf au niveau de la taille allouée qui est plus faible pour la base de DEV (mais celle-ci n'est pas saturée pour autant).

    Le plan d'execution ne m'a pas beaucoup aidé (car apparemment tout va bien) et la requête est très très longue avec beaucoup de jointure et de champs calculé (c'est peut-être bien ça le problème...) c'est pourquoi je ne copie pas le code ici.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 851
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 851
    Points : 52 991
    Points
    52 991
    Billets dans le blog
    6
    Par défaut
    Non seulement effectivement vous ne dite rine de la vue ni des tables ni des index ni de votre environnement mais en plus vous parlez de REC sans dire ce que c'est...

    Le marc de café n'est pas la tasse de thé de ceux qui peuvent vous aider sur DVP !!!

    Respectez la charte de postage !!!!!!!!!!!!!!!!!!!!!!!!!

    A +

  5. #5
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    Au vu du parallèle avec " l'environnement de DEV", je me hasarde (peu) sur le fait que Kazuhiko$ évoque ici les environnements de DEVeloppement et de RECette.
    Ce qui ne change rien au fait que sans plus d'information que ça, on a toujours besoin de la boule de cristal

  6. #6
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    car apparemment tout va bien
    Celle la elle est bonne! permettez moi de douter de votre conclusion vue la manière dont vous abordez la résolution de votre problème.

    Donc on se résume, merci de poster au minimum:
    • Le code complet de la vue
    • Le plan d'execution

  7. #7
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    Un risque non négligeable serait que sur l'environnement de Développement, il y ait eu un lock au moment de l'exécution de la requête. Typiquement, cet environnement est plus utilisé que celui de recette - et il y a souvent des locks posés par des essais de vues un peu foireuses, par exemple.
    Outre les plans d'exécutions, essayez aussi de relancer la requête hors de toute activité de vos collègues (voire en regardant les locks au préalable, des fois qu'un petit malin ait ouvert une transaction mais ne l'ait pas refermée : un classique).

  8. #8
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par Rei Ichido Voir le message
    Typiquement, cet environnement est plus utilisé que celui de recette -
    Et pour cette même raison, un tas d'explications sont possibles :
    - index fragmentés, par des insertions et suppressions de données de test
    - volumétrie plus importante
    - caches remplis par des données et plans de requetes de test

    et la liste est longue mais sans oublier :
    - la petite différence (type de colonne différent,...) qui fait toute la différence.

    Le plan d'execution ne m'a pas beaucoup aidé (car apparemment tout va bien) et la requête est très très longue avec beaucoup de jointure et de champs calculé (c'est peut-être bien ça le problème...) c'est pourquoi je ne copie pas le code ici.
    je parlais surtout de comparer les plans d’exécution, sont-ils les mêmes ou pas ? ça aiderait à mettre sur la bonne piste...

Discussions similaires

  1. Temps de reponse sur Select avec Jointure
    Par Guigsounet dans le forum SQL
    Réponses: 15
    Dernier message: 30/07/2010, 10h29
  2. Impact du temps de réponse d'un site sur la navigation.
    Par maXrez dans le forum Hébergement
    Réponses: 1
    Dernier message: 22/05/2008, 12h52
  3. Réponses: 2
    Dernier message: 06/04/2007, 18h22
  4. pbl de temps de réponse sur un EXE en réseau avec BDE
    Par gregcat dans le forum Bases de données
    Réponses: 1
    Dernier message: 06/07/2006, 09h52
  5. Temps d'execution d'un select sur une vue
    Par rosewood dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 21/02/2005, 16h06

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