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 :

[SQL-SERVER] Lenteur d'execution


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 284
    Par défaut [SQL-SERVER] Lenteur d'execution
    Bonjour,

    Je développe une application en vb.net avec une DB sql -server 2005.

    Dans un traitement j'execute 3 requetes (1 SELECT, 1 UPDATE et 1 INSERT) dans une boucle.

    Je traite environ 3000 enregistrements. Le probleme est le suivant. Par moment l'execution prend moins de 20 secondes et par d'autres moment (la plus tard du temps ) entre 80 et 60 secondes. Je ne trouve pas la raison. Avec access, ca prend moins 5secondes.

    J'ai reindexe les tables concernées, j'ai réduit la DB mais rien ne chage (toujours entre 80 et 60 secondes). D'avance Meric pour vos conseils.

    OLBI

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Par défaut
    Quand tu lances ta fonction, roule cette requete dans Manager et vérifie si les ressources ne sont pas prises par quelque chose d'autre. Aussi, si les contacts avec la BD ne sont pas séquentiels, il se pourrait qu'il y ait des deadlocks si le parser décide d'exécuter la deuxième requête en concurence avec la première.

    select substring(sysp.loginame,1,20) as loginame,
    substring(sysp.hostname,1,15) as hostname,
    substring(sysd.name,1,20) as dbname,
    sysp.cmd,
    *
    from master.dbo.sysprocesses sysp with(nolock)
    join master.dbo.sysdatabases sysd with(nolock)
    on sysp.dbid = sysd.dbid
    where (sysp.status = 'runnable'
    or sysp.blocked <> 0)
    and sysp.spid <> @@spid
    Une autre piste serait de d'utiliser SQL Profiler pour identifier quels paramètres sont utilisés. Tu peux aussi copier/paster les requêtes réelles dans Manager et vérifier si le plan d'exécution change selon la nature des paramètres.

  3. #3
    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,

    Des deadlocks sans doute pas, tu en serais d'ailleurs averti par un message disant que tu as été choisi comme victime.
    Des attentes du les locks probablement, et la requête de Babyneedle peut t'apporter des infos.

    Si tu ne crains pas les rares possibilités de dirty reads, essaie de mettre un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
    avant ton code.

    Tu parles de boucle, c'est une boucle dans VB ? Si oui cela veut dire que tu envoies chaque requête au serveur ? Ne peux-tu pas encapsuler le tout dans une procédure stockée, ou au moins mettre plusieurs instructions dans un seul batch ?

Discussions similaires

  1. [SQL SERVER 2005 - SSIS] - Execute SQL Task
    Par sandF dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 28/01/2008, 15h02
  2. SQL SERVER Trigger et executable
    Par elkamy dans le forum Développement
    Réponses: 1
    Dernier message: 10/12/2005, 13h02
  3. sql server: execution d'un programme depuis un trigger
    Par constantin dans le forum Développement
    Réponses: 3
    Dernier message: 04/10/2005, 19h20
  4. Lenteur lors d'une insertion (sql server)
    Par shiners300 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 16/09/2005, 09h09
  5. Connexion ADO et SQL Server : délai d'execution expiré.
    Par denrette dans le forum Bases de données
    Réponses: 2
    Dernier message: 24/02/2004, 09h00

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