SQL Profiler (SQL Server 2000), как фильтровать только мои действия?
У нас есть большая система с несколькими сотнями одновременных пользователей, поэтому профилировщик sql дает немного слишком много информации без соответствующих фильтров. Я хотел бы видеть, какие команды SQL выполняются под моей учетной записью и моей учетной записью. С учетом я имею в виду имя пользователя, которое я использую для входа в систему. Эти имена пользователей хранятся в обычной таблице базы данных и, следовательно, не могут быть введены в какой-либо фильтр в профилировщике sql, я думаю? Но каждый пользователь, который входит в систему, может иметь уникальный идентификатор, даже если вы все используете один и тот же логин/пользователь SQL?
Итак, вопрос в основном состоит в том, как получить это уникальное значение и какой фильтр использовать? Или есть ли способ увидеть это и только это в sql-профилировщике?
Ответы
Ответ 1
Вы можете получить имя хоста машины, подключающейся к SQL-серверу. На вкладке Свойства трассировки/событий отметьте опцию Показать все столбцы, а затем в Фильтры столбцов вы можете указать HostName. > .
Если вы хотите узнать имя хоста машины, которую используете, то в командной строке введите hostname
Ответ 2
Каждое приложение, которое подключается к SQL Server, имеет уникальный идентификатор хоста (значение, возвращаемое функцией HOST_ID()
), и вы можете его фильтровать. Конечно, сначала вам нужно подключиться к базе данных из вашего приложения, чтобы получить свой идентификатор хоста.
Идентификатор узла также можно найти в столбце hostprocess
системной таблицы sysprocesses
. А в Профилире это называется ClientProcessId
.