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