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 :

Timeout et procédure stockée


Sujet :

MS SQL Server

  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2008
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 118
    Par défaut Timeout et procédure stockée
    Bonjour,

    Je voudrais sous sql server (dans une procédure stockée) exécuter une autre procédure stockée et pouvoir préciser un timeout.
    Si la procédure stockée met trop de temps, je veux qu'elle s'arrête...

    Merci d'avance pour vos réponses

    Sybaris

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Pour appeler une procédure stockée dans une procédure stockée, vous pouvez faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE PROCEDURE maProc
    	@mesParams
    AS
    BEGIN
    	.
    	.
    	. 
    	EXEC dbo.monAutreProcedure
    	.
    	.
    	.
    END
    Si la procédure stockée met trop de temps, je veux qu'elle s'arrête...
    Quel intérêt ? Si vous avez demandé l'exécution d'une procédure sotckée, ce n'est pas pour ne pas qu'elle s'exécute suivant le temps qu'elle met à s'exécuter.
    Si en revanche le temps qu'elle met est long, avez-vous regardé le plan de requête de votre procédure ?
    Si votre procédure comprend plusieurs requêtes, savez-vous quelle requête est "lente" ?

    A+

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 995
    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 995
    Billets dans le blog
    6
    Par défaut
    Les seuls time out que vous pouvez mettre en oeuvre c'est :
    1) la connexion
    2) l'obtention d'un verrou.

    mais tuer une proc si elle ne finit pas dans un temps impartit est dangereux, car la tuer signifie un ROLLBACK. Or les ROLLBACK peuvent être plus coûteux que la finalisation par COMMIT !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2008
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 118
    Par défaut
    Bonjour,

    Tout d'abord merci de pour vos réponses.

    Concernant l'intérêt de faire un timeout sur la procédure stockée, il est tout simple.
    Le code de la procédure stockée que je dois appeler n'est pas de mon ressort. Il doit mettre fournit, et il n'est pas sur le même serveur de base de données que celui que mon application exploite. Or tant que je n'ai pas le résultat de cette procédure stockée, je doit bloquer mon utilisateur.

    J'ai peur de plusieurs choses :
    a/ Que le code de la procédure stockée que je dois appeler ne soit pas performant. (C'est un autre service informatique qui est responsable de ce code).
    b/ Que le réseau ne soit pas terrible en terme de performances (voire même en terme de qualité)

    Cette procédure stockée me renvoi que des données en lecture seule. Donc la je n'ai pas de problématique de rollback.

    L'avantage d'avoir un timeout est que l'utilisateur saura de suite vers qui se tourner si il a un problème...

    Vu vos réponses, je me pose la question si je vais pas appeler ma procédure stockée directement en dotnet dans un thread séparé, et si le thread ne répond pas dans le timeout, je lance mon exception. Je laisserais vivre le thread si il n'a pas terminé, mais au moins mon utilisateur n'est pas bloqué...

    Sybaris

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 995
    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 995
    Billets dans le blog
    6
    Par défaut
    Ce sera effectivement plus élégant.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. [2008R2] Procédure stockée et timeout
    Par Kropernic dans le forum Administration
    Réponses: 21
    Dernier message: 22/01/2014, 15h03
  2. Timeout lors de l'exécution d'une procédure stockée
    Par duffman dans le forum Développement
    Réponses: 15
    Dernier message: 03/04/2012, 01h26
  3. procédure stockée/connection timeout
    Par Kropernic dans le forum VB.NET
    Réponses: 20
    Dernier message: 09/03/2012, 10h48
  4. Migration de données via Procédures stockées, erreur timeout
    Par Arnard dans le forum Accès aux données
    Réponses: 6
    Dernier message: 01/10/2009, 13h17
  5. [Comparatif] Procédures stockées, triggers, etc.
    Par MCZz dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/08/2002, 12h27

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