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.
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 devriez voir les traces uniquement pour cette base de données.
Dans SQL 2005, vous devez d’abord afficher la colonne Nom de la base de données dans votre trace. Le plus simple est de choisir le modèle de réglage, auquel cette colonne a déjà été ajoutée.
En supposant que vous ayez sélectionné le modèle de réglage, pour filtrer:
Je garde toujours la trace dans une table aussi pour pouvoir ensuite effectuer des requêtes LIKE sur les données de trace.
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 la 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 concernant SQLServer 2000 est (comme l'explique 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 New Trace de SQL Profiler 2000
Dans les propriétés de trace, cliquez sur l'onglet Sélection d'événements en haut 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 noeud Like et entrez votre filtre avec le signe de pourcentage %
tel que %MyDatabaseName%
ou %TextDataToFilter%
. Sans le signe %%
, 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 souhaitez filtrer, tel que DatabaseName
, passez à Général onglet et modifiez votre Modèle, un espace vierge doit contenir tous les champs.
Créez un nouveau modèle et vérifiez DBname. Utilisez ce modèle pour votre fichier de trace.