Фильтрация трассировки

Применимо к:SQL Server

Фильтры ограничивают накопление событий в трассировке. Если фильтр не установлен, то на выход трассировки возвращаются все события выбранных классов событий. Например, ограничение в трассировке по отслеживанию только имен определенных пользователей Windows сокращает объем выходных данных до объема данных только для этих пользователей.

Установка фильтра трассировки необязательна. Однако фильтр уменьшает дополнительную нагрузку, возникающую при трассировке. Фильтр возвращает конкретные данные, тем самым упрощая аудит и анализ производительности.

Для фильтрации данных о событии, зафиксированных во время трассировки, выберите критерий события трассировки, который будет возвращать из трассировки только необходимые данные. Например, можно включить или выключить мониторинг активности определенного приложения в трассировке.

Заметка

Когда SQL Server Profiler создает трассировки, он фильтрует собственное действие по умолчанию.

Рассмотрим другой пример: если производится мониторинг запросов для определения пакетов, которым для выполнения требуется наибольшее время, то нужно установить критерий событий трассировки для проведения мониторинга только тех пакетов, выполнение которых проходит дольше 30 секунд (минимальное значение процессорного времени равно 30 000 миллисекунд).

Правила создания фильтров

В общем случае для создания фильтра трассировки выполните следующие шаги.

  1. Определите события, которые нужно включить в трассировку.

  2. Определите данные и столбцы данных, содержащие необходимые сведения.

  3. Определите подмножество необходимых данных и определите фильтры, основанные на данном подмножестве.

Допустим, что интересны только те события, которые происходят дольше определенного отрезка времени. Тогда можно создать трассировку, в которой будут содержаться события, для которых значения столбца данных Продолжительность больше, чем 300 миллисекунд. В трассировку не будут включаться события, выполнение которых продолжалось менее 300 миллисекунд.

Создавать фильтры можно при помощи хранимых процедур Transact-SQL или приложения SQL Server Profiler.

Фильтрация событий в шаблоне трассировки

Фильтровать события в трассировке (SQL Server Profiler)

Создание фильтра трассировки (Transact-SQL)

Изменение фильтров

Изменение фильтра (приложение SQL Server Profiler)

Доступность фильтра зависит от столбца данных. По некоторым столбцам данных нельзя проводить фильтрацию. Для столбцов данных, по которым можно проводить фильтрацию, она возможна только с помощью специальных реляционных операторов, как показано в следующей таблице.

Реляционный оператор Символ оператора Description
Подобно LIKE Определяет, что данные событий трассировки должны быть похожи на введенный текст. Допускает множественные значения.
Не похоже Не похоже Определяет то, что данные событий трассировки не должны быть похожи на введенный текст. Допускает множественные значения.
Равно = Определяет то, что данные событий трассировки должны быть равны введенному значению. Допускает множественные значения.
Не равно <> Определяет то, что данные событий трассировки не должны быть равны введенному значению. Допускает множественные значения.
Больше > Определяет то, что данные событий трассировки должны быть больше чем введенное значение.
Больше или равно >= Определяет то, что данные событий трассировки должны быть больше или равны введенному значению.
Меньше < Определяет то, что данные событий трассировки должны быть меньше чем введенное значение.
Меньше или равно <= Определяет то, что данные событий трассировки должны быть меньше или равны введенному значению.

В следующей таблице приведен список фильтруемых столбцов данных и доступных реляционных операторов.

Столбцы данных Реляционные операторы
ApplicationName LIKE, NOT LIKE
BigintData1 =, <>, >=, <=
BigintData2 =, <>, >=, <=
BinaryData Используйте SQL Server Profiler для фильтрации событий в этом столбце данных. Дополнительные сведения см. в разделе Фильтрация трассировок с помощью приложения SQL Server Profiler.
ClientProcessID =, <>, >=, <=
ColumnPermissions =, <>, >=, <=
ЦП =, <>, >=, <=
DatabaseID =, <>, >=, <=
DatabaseName LIKE, NOT LIKE
DBUserName LIKE, NOT LIKE
Длительность =, <>, >=, <=
EndTime >=, <=
Ошибка =, <>, >=, <=
EventSubClass =, <>, >=, <=
FileName LIKE, NOT LIKE
GUID Используйте SQL Server Profiler для фильтрации событий в этом столбце данных. Дополнительные сведения см. в разделе Фильтрация трассировок с помощью приложения SQL Server Profiler.
Дескриптор =, <>, >=, <=
HostName LIKE, NOT LIKE
IndexID =, <>, >=, <=
IntegerData =, <>, >=, <=
IntegerData2 =, <>, >=, <=
IsSystem =, <>, >=, <=
LineNumber =, <>, >=, <=
LinkedServerName LIKE, NOT LIKE
LoginName LIKE, NOT LIKE
LoginSid Используйте SQL Server Profiler для фильтрации событий в этом столбце данных. Дополнительные сведения см. в разделе Фильтрация трассировок с помощью приложения SQL Server Profiler.
MethodName LIKE, NOT LIKE
Режим =, <>, >=, <=
NestLevel =, <>, >=, <=
NTDomainName LIKE, NOT LIKE
NTUserName LIKE, NOT LIKE
ObjectID =, <>, >=, <=
ObjectID2 =, <>, >=, <=
ObjectName LIKE, NOT LIKE
ObjectType =, <>, >=, <=
Offset =, <>, >=, <=
OwnerID =, <>, >=, <=
OwnerName LIKE, NOT LIKE
ParentName LIKE, NOT LIKE
Разрешения =, <>, >=, <=
ProviderName LIKE, NOT LIKE
Reads =, <>, >=, <=
RequestID =, <>, >=, <=
RoleName LIKE, NOT LIKE
RowCounts =, <>, >=, <=
SessionLoginName LIKE, NOT LIKE
Severity =, <>, >=, <=
SourceDatabaseID =, <>, >=, <=
SPID =, <>, >=, <=
SqlHandle Используйте SQL Server Profiler для фильтрации событий в этом столбце данных. Дополнительные сведения см. в разделе Фильтрация трассировок с помощью приложения SQL Server Profiler.
StartTime >=, <=
Штат =, <>, >=, <=
Успешно =, <>, >=, <=
TargetLoginName LIKE, NOT LIKE
TargetLoginSid Используйте SQL Server Profiler для фильтрации событий в этом столбце данных. Дополнительные сведения см. в разделе Фильтрация трассировок с помощью приложения SQL Server Profiler.
TargetUserName LIKE, NOT LIKE
TextData * LIKE, NOT LIKE
TransactionID =, <>, >=, <=
Тип =, <>, >=, <=
Writes =, <>, >=, <=
XactSequence =, <>, >=, <=

* Если события трассировки из служебной программы osql или служебной программы sqlcmd всегда добавляются % к фильтрам в столбце данных TextData .

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

За следующими хранимыми процедурами безопасности осуществляется контроль, но в столбец данных TextData выходные данные не записываются:

sp_addapprole (Transact-SQL)

sp_adddistpublisher (Transact-SQL)

sp_adddistributiondb (Transact-SQL)

sp_adddistributor (Transact-SQL)

sp_addlinkedserver (Transact-SQL)

sp_addlinkedsrvlogin (Transact-SQL)

sp_addlogin (Transact-SQL)

sp_addmergepullsubscription_agent (Transact-SQL)

sp_addpullsubscription_agent (Transact-SQL)

sp_addremotelogin (Transact-SQL)

sp_addsubscriber (Transact-SQL)

sp_approlepassword (Transact-SQL)

sp_changedistpublisher (Transact-SQL)

sp_changesubscriber (Transact-SQL)

sp_dsninfo (Transact-SQL)

sp_helpsubscription_properties (Transact-SQL)

sp_link_publication (Transact-SQL)

sp_password (Transact-SQL)

sp_setapprole (Transact-SQL)