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

Administration SQL Server Discussion :

Monitoring(?) d'une table


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 530
    Par défaut Monitoring(?) d'une table
    Bonjour

    Sur une VM de dev, j'ai installé un SQL Server 2012 Express avec SSMS.
    Je voudrais trouver un outil qui me permette de savoir quelle opération a été réalisée sur une table en particulier.
    Qui a fait l'opération, quel genre d'opération, le nombre de lignes concernées, etc.
    Évidemment, un outil gratuit, ou tout au moins en version trial pour quelques jours, vu que c'est juste pour faire quelques essais de manipulation à partir d'un langage de programmation afin de voir quel composant produit quoi.

    Merci d'avance de votre aide.

    Papy !

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    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 : 22 002
    Billets dans le blog
    6
    Par défaut
    si vous avez une autre installation complète de SQL Server utilisez le profiler SQL.
    Sinon (mais payant quelques euros) utilisez une version Developper pour avoir le profiler SQL !

    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/ * * * * *

  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,

    est-ce pour suivre les modifications sur la table, ou aussi les lectures ? Si c'est uniquement pour les modifications, tu peux créer un déclencheur (trigger) d'audit.
    Voici un exemple de trigger d'audit que j'ai fait chez un client :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    CREATE TABLE dbo.auditModifications (
    	quand datetime2(0) NOT NULL DEFAULT(SYSDATETIME()),
    	qui sysname NOT NULL DEFAULT(SUSER_SNAME()),
    	ou sysname NOT NULL DEFAULT(HOST_NAME()),
    	app sysname NOT NULL DEFAULT(APP_NAME()),
    	quoi varchar(1000) NOT NULL
    )
    GO
     
    ALTER TRIGGER atr_u$Societe$audit
    ON dbo.Societe
    AFTER UPDATE
    AS BEGIN
    	IF @@ROWCOUNT = 0 RETURN;
    	SET NOCOUNT ON;
     
    	INSERT INTO Outils.dbo.auditModifications (quoi)
    	SELECT 'annulation de la société ' + i.Nom
    	FROM inserted i
    	JOIN deleted d ON i.SocieteId = d.SocieteId
    	WHERE i.Statut = 'A'
    	AND (d.Statut <> 'A' OR d.Statut IS NULL);
     
    	INSERT INTO Outils.dbo.auditModifications (quoi)
    	SELECT 'désannulation de la société ' + i.Nom
    	FROM inserted i
    	JOIN deleted d ON i.SocieteId = d.SocieteId
    	WHERE d.Statut = 'A'
    	AND (i.Statut <> 'A' OR i.Statut IS NULL);
     
    END;
    GO

  4. #4
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 530
    Par défaut
    Citation Envoyé par Papy214 Voir le message
    Bonjour

    Sur une VM de dev, j'ai installé un SQL Server 2012 Express avec SSMS.
    Je voudrais trouver un outil qui me permette de savoir quelle opération a été réalisée sur une table en particulier.
    Qui a fait l'opération, quel genre d'opération, le nombre de lignes concernées, etc.
    Évidemment, un outil gratuit, ou tout au moins en version trial pour quelques jours, vu que c'est juste pour faire quelques essais de manipulation à partir d'un langage de programmation afin de voir quel composant produit quoi.

    Merci d'avance de votre aide.

    Papy !
    Je n'ai malheureusement pas d'install complète à disposition, et amazon annonce la version developpeur à 400 $. Ca fait un peu cher juste pour quelques tests.

    Mais merci tout de même pour l'idée

  5. #5
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 530
    Par défaut
    est-ce pour suivre les modifications sur la table, ou aussi les lectures ? Si c'est uniquement pour les modifications, tu peux créer un déclencheur (trigger) d'audit.
    Voici un exemple de trigger d'audit que j'ai fait chez un client :
    En fait, j'utilise Delphi et les composants ADO pour attaquer cette base.
    Ce que je cherche à savoir, c'est par exemple, si j'ouvre une table en ADO dans mon programme, que je change une valeur colonne et que je valide, comment ça se traduit coté SQL Server.
    Quel genre/syntaxe de requête est créé .

    C'est vraiment juste pour voir le coté final de la chaîne entre mon appli/ADO et l'action effectivement porté coté serveur.

    En gros, si j'envoie A depuis mon appli, comment est B à l'autre bout de la chaîne.


    Pour le code du trigger, même s'il ne correspond pas à ce besoin là, il va me servir pour une autre problématique. Donc, merci pour ça .

  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
    Par défaut
    Bonjour,

    Ce ne sera pas forcément le plus pratique (mais gratuit !) : vous pouvez regarder les dernières requêtes exécutées en vous inspirant de cette discussion. Il faudra faire le tri pour retrouver ce que votre application a lancé comme commande. Mais ça pourra déjà vous donner quelques informations

  7. #7
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 530
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    Bonjour,

    Ce ne sera pas forcément le plus pratique (mais gratuit !) : vous pouvez regarder les dernières requêtes exécutées en vous inspirant de cette discussion. Il faudra faire le tri pour retrouver ce que votre application a lancé comme commande. Mais ça pourra déjà vous donner quelques informations

    ça devrait convenir.

    Merci

  8. #8
    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

Discussions similaires

  1. Monitoring - Nombre d'acces en lecture sur une table
    Par hazou dans le forum Administration et Installation
    Réponses: 3
    Dernier message: 13/11/2012, 15h45
  2. Monitoring d'une table
    Par fpouget dans le forum Administration
    Réponses: 1
    Dernier message: 21/11/2011, 21h35
  3. Erreur lors de modification d'une table
    Par seb.49 dans le forum SQL
    Réponses: 11
    Dernier message: 13/01/2003, 17h16
  4. Pb d'auto-incrément sur une table v7
    Par Nivux dans le forum Paradox
    Réponses: 9
    Dernier message: 26/12/2002, 12h05
  5. [ADO] Tester l'existence d'une table
    Par nd25 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 05/09/2002, 13h55

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