2009-12-18 8 views
10

Nous avons un grand système avec plusieurs centaines d'utilisateurs simultanés donc profileur sql donne un peu trop d'informations sans filtres appropriés. Je voudrais voir quelles commandes SQL sont exécutées sous mon compte et mon compte seulement. Avec le compte, je veux dire le nom d'utilisateur que j'utilise pour me connecter au système. Ces noms d'utilisateur sont stockés dans une table de base de données régulière et ne peuvent donc pas être entrés dans un filtre dans sql profiler, je suppose? Mais chaque utilisateur qui se connecte peut avoir un identifiant unique, même si nous utilisons tous le même login/utilisateur SQL? Donc, la question est la plupart du temps comment obtenir cette valeur unique et quel filtre utiliser? Ou est-il un moyen de voir cela et seulement cela dans profiler sql?SQL Profiler (SQL Server 2000), comment filtrer uniquement mes activités?

Répondre

2

Chaque appilcation, qui se connecte à SQL Server, possède un ID hôte unique (la valeur renvoyée par la fonction HOST_ID()) et vous pouvez le filtrer. Bien sûr, vous devez d'abord vous connecter à la base de données à partir de votre application, afin d'obtenir votre identifiant d'hôte.

L'ID hôte peut également être trouvé dans la colonne hostprocess de la table système sysprocesses. Et dans Profiler, il est appelé ClientProcessId.

18

Vous devriez pouvoir obtenir le nom d'hôte de l'ordinateur se connectant au serveur SQL. Dans l'onglet Propriétés Trace/Section événement, cochez la Afficher toutes les colonnes Option puis dans la colonne Filtres vous pouvez spécifier HostName.

Si vous voulez connaître le nom d'hôte d'une machine que vous utilisez alors au type invite de commande hostname

+0

Merci à! Essayé celui-ci d'abord et cela fonctionne magnifiquement. – Micke

+0

Bonjour, cela ne fonctionne pas dans SQL Server 2012, avez-vous une idée pourquoi? , j'ai filtré seulement mon nom d'hôte .. mais il semble que le nom d'hôte du serveur IIS est celui qui a appelé le profileur du serveur SQL. – Japongskie