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

ASP.NET Discussion :

Problème de requête SQL qui persiste à durer en longueur alors que ca ne devrait pas


Sujet :

ASP.NET

  1. #1
    Membre averti Avatar de Sacha999
    Inscrit en
    Mars 2007
    Messages
    294
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mars 2007
    Messages : 294
    Points : 350
    Points
    350
    Par défaut Problème de requête SQL qui persiste à durer en longueur alors que ca ne devrait pas
    Bonjour

    J'ai une fonction dans ma librarie qui utilise Linq Entity pour requeter une bdd SqlServer via un SELECT.

    D'habitude, la requete prend 1s, mais il se peut que la requete dure plus de 30 secondes si la table est occupé.

    Mais meme après que la table n'est plus occupé, la requete continue de durer plus de 30 sec... Ensuite je me connecte direct sur la bdd avec Sql Management Studio et lance la requete ki met 1s a s'executer...

    Je retourne sur mon appli web, et et relance la page, et elle met tjs plus de 30s...

    Vous savez à quoi c'est du? .NET garde la requete quelque part et s'entete? Y'a un cache caché par le .NET? je n'utilise pas de cache dans la librairie

    Je comprend pas
    Le forum c'est trop génial

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Si ton application est une application transactionnelle (OLTP), il y a déjà un problème si la table reste bloquée pendant aussi longtemps ! Ce n'est pas normal.

    Qu'est-ce qui cause ça ? Comment as-tu paramétré le niveau d'isolation de ta base de données ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre averti Avatar de Sacha999
    Inscrit en
    Mars 2007
    Messages
    294
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mars 2007
    Messages : 294
    Points : 350
    Points
    350
    Par défaut
    Hello

    Mon application est un site web. Lors de l'execution de la requete, je me sers de l'instruction "READUNCOMMITTED".
    Je n'ai pas accès à la config de la bdd, n'étant pas admin de celui-ci .

    Ca m'a l'air d'tre un casse-tete
    Le forum c'est trop génial

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    A mon avis il faudrait voir ça avec ton DBA pour qu'il identifie la source des locks. Je ne pense pas que ça provienne de ton application, à moins que tu aies fait quelque chose de tordu En plus vu que tu es en READ UNCOMMITED, la cause du problème semble être ailleurs.

    Une des causes fréquentes est de mélanger requêtes OLTP et requêtes OLAP, ce qui cause de nombreux locks du fait que les requêtes OLAP sont complexes et mettent plus de temps à s'exécuter. Ou des fois il s'agit d'erreur par inadvertence, comme un COMMIT oublié par exemple, ou bien un Trigger qui ne réagit pas comme attendu...
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Membre actif Avatar de Olivier P.
    Homme Profil pro
    Développeur Front-End chez un éditeur logiciel
    Inscrit en
    Octobre 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Front-End chez un éditeur logiciel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 83
    Points : 206
    Points
    206
    Par défaut
    Bonjour,

    Je tenterai d'abord d'utiliser un profiler SQL (anjilab profiler ou SQL Server profiler par exemple) pour voir si le pb vient de la requête ou du code.

    Le profiler s'installe sur le serveur directement et trace toutes les requêtes. En filtrant le trafic, vous devriez assez vite isoler la requête en question.
    MCTS Microsoft 70-536
    MCTS Microsoft 70-515

Discussions similaires

  1. Requête SQL qui pose problème
    Par berko dans le forum Langage SQL
    Réponses: 11
    Dernier message: 29/11/2013, 14h02
  2. Requête SQL qui me pose problème
    Par CB56 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/02/2007, 16h07
  3. [SQLserver2000][SQLServer CE] problème de requête SQL
    Par JBernn dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 27/01/2005, 09h29
  4. Problème de requète SQL dans un Requery
    Par Keraccess dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 22/10/2004, 14h58
  5. Requête SQL qui me bloque
    Par David Guillouet dans le forum Langage SQL
    Réponses: 5
    Dernier message: 27/04/2004, 14h52

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