Journal d'accès à la table à l'aide de SQL Server Profiler
Est-il un moyen de l'utilisation de profils pour déterminer si une table est accessible par des requêtes?
J'ai vu un événement nommé Object:Opened
(Indique quand un objet a été consulté, comme SELECT, INSERT ou DELETE) et Object:Closed
, mais cela ne semble pas fonctionner.
En particulier, j'ai créé un simple trace avec à la fois l'Objet:Ouvert et Objet:Fermé sans filtres (à l'exception de la norme "Nom de l'Application pas comme "générateur de profils SQL'" filtre) et a couru SELECT TOP 1 * FROM TableName
, mais aucun événement n'a été signalé.
Alors, est-il un moyen d'utiliser le Profiler pour déterminer si une table est Sélectionnée à partir d'?
OriginalL'auteur Tadmas | 2008-11-17
Vous devez vous connecter pour publier un commentaire.
Il peut aider à enquêter sur les serrures SQL est l'acquisition. Sélectionnez les déclarations seront généralement obtenir des Verrous partagés (LCKMS), de sorte que vous pouvez filtrer cette.
Dans le générateur de profils recherchez les Verrous:acquisition d'un événement. L'ObjectID permettra de résoudre à la table de laquelle vous pouvez facilement recherche avec
OBJECT_NAME(objectid)
. La Mode va vous indiquer le type de verrouillage en cours d'acquisition de verrous partagés sont 3. Pour plus d'informations sur les ici.OriginalL'auteur
Il y a un moyen de le faire avec Profiler, mais c'est un diable d'un impact sur les performances.
Au lieu de cela, pouvez-vous préciser votre question avec la version de SQL Server que vous utilisez? Si vous utilisez SQL Server 2008, se pencher sur l'objet de la Vérification, qui est conçu pour faire exactement cela, en plus il a un très faible impact sur les performances.
Voici un article expliquant comment mettre en place un audit:
La mise en œuvre des Audits de Sécurité dans SQL Server 2008
D'autres affiches ont noté que vous pouvez filtrer TextData sur le nom de l'objet, mais cela ne fonctionne pas si quelqu'un utilise une vue d'accéder à l'objet.
Droit, de le faire avec Profiler, vous aurez un énorme impact sur les performances. Vous aurez besoin de vérification pour toutes les instructions select, connectez-vous tous à une table, puis filtrer la table pour attraper le droit des tables et des vues.
OriginalL'auteur Brent Ozar
J'ai trouvé un moyen de le profiler, la EventClass "Schéma d'Audit de l'Objet d'Événement d'Accès".
Alors que j'ai découvert ce indépendamment après quelques recherches j'ai trouvé cet excellent article;
http://www.databasejournal.com/features/mssql/article.php/3887996/Determining-Object-Access-Using-SQL-Server-Profiler.htm
Ce qui concerne,
Darren.
OriginalL'auteur Darren Comeau
Je ne vois pas de ceux dans SQL Server 2005.
Dans mon expérience, je regarde
SQL:StmtStarting
ETSP:StmtStarting
- vous pouvez filtrerTextData
sur%TABLE_NAME%
. Cela va même prendre les choses à l'intérieur de SPs lorsque vous utilisezSP:StmtStarting
.Ce n'est pas l'épreuve des balles, parce qu'il a d'utiliser le
LIKE
la syntaxe, mais il pourrait vous obtenir ce que vous cherchez.OriginalL'auteur Cade Roux