SQL Server Profiler - comment filtrer la trace pour n'afficher que les événements à partir d'une seule base de données?

comment limiter une trace de profileur de Serveur SQL à une base de données spécifique? Je ne vois pas comment filtrer la trace pour ne pas voir les événements pour toutes les bases de données sur l'instance à laquelle je me connecte.

336
demandé sur ConcernedOfTunbridgeWells 2008-11-07 19:58:32

5 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 similaire et vous devriez voir des traces seulement pour cette base de données.

498
répondu Gulzar Nazim 2008-11-07 17:10:29

en SQL 2005, vous devez d'abord afficher la colonne du nom de la base de données dans votre trace. La chose la plus facile à faire est de choisir le modèle de réglage, qui a cette colonne ajoutée déjà.

en supposant que vous avez le modèle de réglage sélectionné, pour filtrer:

  • cliquez sur l'onglet" Sélection D'événements
  • cliquez sur le bouton" colonne filtres "
  • vérifier toutes les colonnes (côté droit vers le bas)
  • Sélectionnez "DatabaseName", cliquez sur le plus Suivant pour aimer dans le volet de droite, et tapez votre nom de base de données.

je sauve toujours la trace à une table trop pour que je puisse faire comme des requêtes sur les données de trace après le fait.

33
répondu Todd Price 2017-09-26 12:40:35

Par expérience, j'ai pu observer ceci:

quand SQL Profiler 2005 ou SQL Profiler 2000 est utilisé avec la base de données résidant dans SQLServer 2000-problème mentionné problème persiste, mais quand SQL Profiler 2005 est utilisé avec SQLServer 2005 base de données, il fonctionne parfaitement!

En résumé, le problème semble être répandu dans SQLServer 2000 et rectifié dans SQLServer 2005.

la solution pour le problème lors du traitement de SQLServer 2000 est (comme expliqué par wearejimbo)

  1. identifiez la base de données que vous souhaitez filtrer en questionnant 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 du nom de base de données) dans la nouvelle fenêtre de recherche de SQL Profiler 2000

8
répondu 2 revs, 2 users 86%Praveen 2016-06-19 23:56:21

dans les propriétés Trace, cliquez sur sélection D'événements onglet en haut à côté de général . Puis cliquez sur colonne filtres... en bas à droite. Vous pouvez ensuite sélectionner ce qu'il faut filtrer, comme TextData ou DatabaseName .

développer le comme noeud et entrer dans votre filtre avec le pourcentage % signes comme %MyDatabaseName% ou %TextDataToFilter% . Sans l' %% signe que le filtre ne fonctionne pas.

aussi, assurez-vous de cocher la case exclure les lignes qui ne contiennent pas de valeurs" si vous ne trouvez pas le champ que vous cherchez à filtrer tel que DatabaseName allez à l'onglet général et changez votre modèle , un blanc devrait contenir tous les champs.

3
répondu Shaun Morehammered Denovan 2016-02-22 04:52:02

créer un nouveau modèle et vérifier DBname. Utilisez ce modèle pour votre tracefile.

1
répondu 2009-03-30 21:47:50