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 :

SSMS gestion bouton stop


Sujet :

MS SQL Server

  1. #1
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 623
    Points : 1 049
    Points
    1 049
    Par défaut SSMS gestion bouton stop
    Bonjour,
    Savez vous comment SSMS gère le bouton STOP ? Par exemple je lance une requete d'update qui dure assez longtemps et je clique sur le carré rouge et l'instruction s'arrête instantanément.
    A priori ca ne fait pas un kill sinon on aurait un rollback.

  2. #2
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Une réponse par une question :

    Est-ce que lorsque tu as appuyé sur le bouton stop ton update s'est effectué ?

    ++

  3. #3
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 623
    Points : 1 049
    Points
    1 049
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    Une réponse par une question :

    Est-ce que lorsque tu as appuyé sur le bouton stop ton update s'est effectué ?

    ++
    Bonjour, Non la requête est annulée.

    Prenons cet exemple. Voici le ddl d'une table et son remplissage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    CREATE TABLE [dbo].[test](
    	[description] [varchar](4000) NULL
    ) ON [PRIMARY]
     
    declare @i int
    set @i = 0
    while @i < 50000
    begin
        insert into test (description) values (replicate('a', 4000))
        set @i = @i +1
    end
    Maintenant dans SSMS, j'exécute cette requete de mise à jour et je la coupe en plein milieu avec le bouton stop :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    update test
    set description = replicate('b', 4000)
    La mise à jour n'a pas été effectuée. Cepdendant, je ne vois aucune trace de Kill dans les logs et quand je regarde dans les dmv dm_exec_requests (avec Kankuru) je ne vois pas de rollback s'effectuer. Je me demande donc par curiosité comment SSMS gère ceci.
    Par exemple, je fais un gros update qui dure depuis 3 heures. Si je fais un kill ou un ROLLBACK, ca va prendre énormément de temps à rollbacker. Alors qu'avec SSMS c'est quasiment instantanné.

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

    Si vous arrêtez la requête en plein milieu, il y a bien un rollback, et il y a bien un certains temps avant que la requête ne soit annulée. Ce n'est peut être pas visible sur un petit jeu de données, mais augmentez le nombre de lignes de votre test, et je pense que vous le verrez. (en fait le temps pour annuler est même souvent plus long que le temps que vous avez laissé tourner la requête ! )


    Cependant il me semble qu'il y a une différence avec un KILL : KILL va restaurer toutes les transactions de la session alors qu'en appuyant sur le bouton arrêt, seule l'instruction en cours (en fait sa transaction implicite) est restaurée.
    Si vous ouvrez une transaction avant votre UPDATE, elle sera toujours ouverte après avoir arrêté l'instruction avec le bouton stop

  5. #5
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 623
    Points : 1 049
    Points
    1 049
    Par défaut
    Donc en gros pour résumer et si je comprends bien, le bouton stop ROLLBACK uniquement la transaction.
    Merci, je marque Résolu

  6. #6
    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
    Je dirai plutôt que ça fait un rollback pour la transaction implicite de l'instruction en cours d’exécution.
    Mais ça ne fait pas de rollback d'une éventuelle transaction explicite il me semble.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Détecter l'arrêt d'une vidéo (bouton stop)
    Par levit dans le forum Flash
    Réponses: 2
    Dernier message: 01/05/2007, 14h50
  2. Réponses: 2
    Dernier message: 26/04/2007, 15h02
  3. Problème Bouton stop
    Par jeanclaude57 dans le forum Flash
    Réponses: 6
    Dernier message: 16/03/2007, 19h26
  4. Réponses: 3
    Dernier message: 05/10/2006, 20h28
  5. Rendre le bouton STOP du clavier actif
    Par Mikael92140 dans le forum C
    Réponses: 6
    Dernier message: 04/05/2006, 14h54

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