Comment limiter une trace de SQL Server Profiler à une base de données spécifique? Je ne vois pas comment filtrer la trace pour ne pas voir les événements de toutes les bases de données sur l'instance à laquelle je me connecte.
Comment limiter une trace de SQL Server Profiler à une base de données spécifique? Je ne vois pas comment filtrer la trace pour ne pas voir les événements de toutes les bases de données sur l'instance à laquelle je me connecte.
Réponses:
Sous Propriétés de trace> onglet Sélection d'événements> sélectionnez afficher toutes les colonnes. Maintenant, sous les filtres de colonne, vous devriez voir le nom de la base de données. Entrez le nom de la base de données pour la section Like et vous ne devriez voir les traces que pour cette base de données.
before
commençant la trace. Si vous le faites après - le champ ne sera pas modifiable!
Dans SQL 2005, vous devez d'abord afficher la colonne Nom de la base de données dans votre trace. La chose la plus simple à faire est de choisir le modèle de réglage, auquel cette colonne a déjà été ajoutée.
En supposant que vous avez sélectionné le modèle de réglage, pour filtrer:
J'enregistre toujours la trace dans une table afin de pouvoir effectuer des requêtes COMME sur les données de trace après coup.
Par expérience, j'ai pu observer ceci:
Lorsque SQL Profiler 2005 ou SQL Profiler 2000 est utilisé avec une base de données résidant dans SQLServer 2000 - le problème mentionné persiste, mais lorsque SQL Profiler 2005 est utilisé avec une base de données SQLServer 2005, cela fonctionne parfaitement!
En résumé, le problème semble être répandu dans SQLServer 2000 et corrigé dans SQLServer 2005.
La solution au problème lors de l'utilisation de SQLServer 2000 est (comme expliqué par wearejimbo)
Identifiez le DatabaseID de la base de données que vous souhaitez filtrer en interrogeant la table sysdatabases comme ci-dessous
SELECT *
FROM master..sysdatabases
WHERE name like '%your_db_name%' -- Remove this line to see all databases
ORDER BY dbid
Utilisez le filtre DatabaseID (au lieu de DatabaseName) dans la fenêtre Nouvelle trace de SQL Profiler 2000
Dans les propriétés de trace, cliquez sur l' onglet Sélection d'événements en haut à côté de Général . Cliquez ensuite sur Filtres de colonne ... en bas à droite. Vous pouvez ensuite sélectionner les éléments à filtrer, tels que TextData
ou DatabaseName
.
Développez le nœud Like et entrez votre filtre avec les %
signes de pourcentage comme %MyDatabaseName%
ou %TextDataToFilter%
. Sans les %%
signes, le filtre ne fonctionnera pas.
Assurez-vous également de cocher la case Exclure les lignes qui ne contiennent pas de valeurs ' Si vous ne trouvez pas le champ que vous cherchez à filtrer, par exemple DatabaseName
allez dans l' onglet Général et modifiez votre modèle , un champ vierge devrait contenir tous les champs.
Créez un nouveau modèle et vérifiez DBname. Utilisez ce modèle pour votre fichier de trace.