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 :

Probleme Performance Procedure stockee


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 48
    Points : 44
    Points
    44
    Par défaut Probleme Performance Procedure stockee
    Bonjour a tous,

    En fait j'ai un petit probleme de performance que je n'arrive pas a m'expliquer au niveau d'une procedure stockee.

    J'explique la situation si j'execute dans l'analyseur de requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    exec dbo.ProcedureStockee_1 'arg1', 'arg2'
    Le temps d'execution de la requete est de 2 mn 36 s, et ca me convient parfaitement.

    Maintenant si j'execute ceci (toujours dans l'analyseur de requete) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE TABLE #TMP_DayTable (nb1 integer, nb2 integer ...)
     
    exec('insert into #TMP_DayTable 
    exec dbo.ProcedureStockee_1 'arg1', 'arg2')
     
    select * from #TMP_DayTable
    Et là, oh surprise le temps d'execution de la requete se rallonge a 7 mn, alors que l'on ne fait juste que rajouter le resultat de la requete dans une table.

    Je precise que l'insertion est d'environ une vingtaine de ligne donc ca devrai etre tres rapide.


    Ca me pose de gros soucis puisque je lance la requete avec plusieurs arguments differents ce qui me donne une duree d'execution globale trop importante.

    Merci d'avance pour vos reponses.

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 567
    Points
    19 567
    Billets dans le blog
    25
    Par défaut
    Vive les performances du SQL dynamique

    Essayez ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    create proc P2 (@arg1 varchar(30), @arg2 varchar(30))
    as
    BEGIN
    CREATE TABLE #TMP_DayTable (nb1 integer, nb2 integer ...)
     
    insert into #TMP_DayTable
    exec dbo.ProcedureStockee_1 @arg1, @arg2
     
    select * from #TMP_DayTable 
    END
    Exec P2 'arg1', 'arg2' donne quoi en terme de temps de réponse ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 48
    Points : 44
    Points
    44
    Par défaut
    Je teste ca tout de suite.

    Mais dit moi le sql dynamique c'est vraiment beaucoup plus lent ???

    Par ce que je l'utilise souvent donc ca m'interresse.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 48
    Points : 44
    Points
    44
    Par défaut
    Désolé la durée d'exécution est plus ou moins la même à 10s pret.

    Va peut être falloir que je repense ma requete...

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    l'utilisatio de table temporaire entraine systematiquement la recompilation de ta procedure stockee. evite d'utliser les tables tempraire

    http://www.microsoft.com/france/sql/utilisez/infotech/info/info.asp?mar=/france/technet/produits/sql/2000/info/astuce_perf_sql.html&xmlpath=/france/technet/produits/sql/2000/admin.xml&rang=5

Discussions similaires

  1. probleme avec procedure stockee
    Par kanebody dans le forum Développement
    Réponses: 3
    Dernier message: 28/04/2008, 10h36
  2. [sgbd] Probleme DBI, procedure stockée de type "SELECT"
    Par tony le chicon dans le forum SGBD
    Réponses: 1
    Dernier message: 07/12/2006, 10h50
  3. [Pl/SQL]Probleme Procedure stockee[/Pl/SQL]
    Par rafounette dans le forum Oracle
    Réponses: 4
    Dernier message: 14/06/2006, 12h56
  4. [interbase6]probleme procedure stockee
    Par macadam314 dans le forum InterBase
    Réponses: 6
    Dernier message: 13/02/2005, 12h31
  5. Probleme Oracle + Procedure Stockee
    Par ForumWWW dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/07/2004, 16h00

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