Поделиться через


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

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

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

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

ПримечаниеПримечание

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

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

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

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

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

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

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

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

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

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

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

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

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

Реляционный оператор

Символ оператора

Описание

Похоже

LIKE

Определяет то, что данные событий трассировки должны быть похожи на введенный текст. Допускает множественные значения.

Не похоже

NOT LIKE

Определяет то, что данные событий трассировки не должны быть похожи на введенный текст. Допускает множественные значения.

Равно

=

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

Не равно

<>

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

Больше

>

Определяет то, что данные событий трассировки должны быть больше чем введенное значение.

Больше или равно

>=

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

Меньше

<

Определяет то, что данные событий трассировки должны быть меньше чем введенное значение.

Меньше или равно

<=

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

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

Столбцы данных

Реляционные операторы

ApplicationName

LIKE, NOT LIKE

BigintData1

=, <>, >=, <=

BigintData2

=, <>, >=, <=

BinaryData

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

ClientProcessID

=, <>, >=, <=

ColumnPermissions

=, <>, >=, <=

CPU

=, <>, >=, <=

DatabaseID

=, <>, >=, <=

DatabaseName

LIKE, NOT LIKE

DBUserName

LIKE, NOT LIKE

Duration

=, <>, >=, <=

EndTime

>=, <=

Error

=, <>, >=, <=

EventSubClass

=, <>, >=, <=

FileName

LIKE, NOT LIKE

GUID

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

Handle

=, <>, >=, <=

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

Mode

=, <>, >=, <=

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

Permissions

=, <>, >=, <=

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

>=, <=

State

=, <>, >=, <=

Success

=, <>, >=, <=

TargetLoginName

LIKE, NOT LIKE

TargetLoginSid

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

TargetUserName

LIKE, NOT LIKE

TextData1

LIKE, NOT LIKE

TransactionID

=, <>, >=, <=

Type

=, <>, >=, <=

Writes

=, <>, >=, <=

XactSequence

=, <>, >=, <=

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

В целях предосторожности SQL Trace автоматически исключает из трассировки любые сведения о хранимых процедурах безопасности, затрагивающих пароли. Этот механизм безопасности работает всегда и его нельзя настроить. Он предотвращает перехват паролей пользователями, получившими другим способом доступ к трассировке работы всех служб 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_changesubstatus (Transact-SQL)

sp_dsninfo (Transact-SQL)

sp_helpsubscription_properties (Transact-SQL)

sp_link_publication (Transact-SQL)

sp_password (Transact-SQL)

sp_setapprole (Transact-SQL)