SQL Profiler (SQL Server 2000), как фильтровать только мои действия? - PullRequest
12 голосов
/ 18 декабря 2009

У нас большая система с несколькими сотнями одновременно работающих пользователей, поэтому sql profiler выдает слишком много информации без соответствующих фильтров. Я хотел бы посмотреть, какие команды SQL запускаются под моей учетной записью и только под моей учетной записью. Под учетной записью я подразумеваю имя пользователя, которое я использую для входа в систему. Эти имена пользователей хранятся в обычной таблице базы данных и, следовательно, не могут быть введены в какой-либо фильтр в SQL Server Profiler, я полагаю? Но каждый пользователь, который входит в систему, в любом случае может иметь какой-то уникальный идентификатор, даже если мы все используем один и тот же логин / пользователя SQL?

Итак, вопрос в том, как получить это уникальное значение и какой фильтр использовать? Или есть ли способ увидеть это и только это в SQL Server Profiler?

Ответы [ 2 ]

20 голосов
/ 18 декабря 2009

Вы сможете получить имя хоста компьютера, подключенного к серверу SQL. На вкладке Свойства трассировки / раздел событий установите флажок Показать все столбцы , затем в Фильтры столбцов можно указать Имя_хоста .

Если вы хотите узнать имя хоста машины, которую вы используете, введите в командной строке hostname

3 голосов
/ 18 декабря 2009

Каждое приложение, которое подключается к SQL Server, имеет уникальный идентификатор хоста (значение, возвращаемое функцией HOST_ID()), и вы можете фильтровать его. Конечно, сначала вы должны подключиться к базе данных из вашего приложения, чтобы получить идентификатор вашего хоста.

Идентификатор хоста также можно найти в столбце hostprocess системной таблицы sysprocesses. А в Profiler это называется ClientProcessId.

...