web-dev-qa-db-fra.com

SQL Server Profiler - Comment filtrer la trace pour n’afficher que les événements d’une base de données?

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.

365
G - M

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.

540
Gulzar Nazim

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:

  • Cliquez sur l'onglet "Sélection d'événements"
  • Cliquez sur le bouton "Filtres de colonne"
  • Cochez Afficher toutes les colonnes (côté droit vers le bas)
  • Sélectionnez "DatabaseName", cliquez sur le signe plus en regard de "Like" dans le volet de droite, puis tapez le nom de votre base de données.

Je garde toujours la trace dans une table aussi pour pouvoir ensuite effectuer des requêtes LIKE sur les données de trace.

39
Todd Price

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)

  1. 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
    
  2. Utilisez le filtre DatabaseID (au lieu de DatabaseName) dans la fenêtre New Trace de SQL Profiler 2000

8
Praveen

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.

4
6dev6il6

Créez un nouveau modèle et vérifiez DBname. Utilisez ce modèle pour votre fichier de trace.

1
amy