Сравнение уведомлений о событиях и трассировки SQL

В следующей таблице сравниваются способы мониторинга серверных событий, основанные на уведомлениях о событиях и использовании инструмента SQL Trace.

Трассировка SQL

Уведомления о событиях

Инструмент SQL Trace не приводит к снижению производительности из-за накладных расходов, связанных с транзакциями. Упаковка данных выполняется эффективно.

С созданием данных о событиях в формате XML и отправлением уведомлений о событиях связаны накладные расходы.

Инструмент SQL Trace поддерживает мониторинг любого класса событий трассировки.

Уведомления о событиях позволяют осуществлять мониторинг подмножества классов событий трассировки и всех событий языка DDL.

Можно выбрать столбцы данных, которые будут создаваться при событии трассировки.

Схема данных о событиях в формате XML, возвращаемых уведомлениями о событиях, фиксирована.

События трассировки DDL создаются всегда независимо от того, был ли выполнен откат инструкции DDL.

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

Управление промежуточным потоком данных о событиях трассировки связано с заполнением файлов или таблиц трассировки и управлением ими.

Промежуточное управление данными уведомлений о событиях выполняется автоматически на основе очередей компонента Service Broker.

Трассировки нужно перезапускать при каждом перезапуске сервера.

После регистрации уведомления о событиях объединяются в транзакции и остаются активными, несмотря на циклы в работе сервера.

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

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

Для создания трассировки необходимо как минимум разрешение ALTER TRACE. Для создания файла трассировки на соответствующем компьютере также требуется разрешение.

Минимальное разрешение, необходимое для создания уведомления о событии, зависит от типа уведомления. Дополнительные сведения см. в разделе CREATE EVENT NOTIFICATION (Transact-SQL). Кроме того, необходимо разрешение RECEIVE, связанное с соответствующей очередью.

Данные трассировок можно получать в удаленном режиме.

Уведомления о событиях можно получать в удаленном режиме.

События трассировок реализуются с использованием системных хранимых процедур.

Уведомления о событиях реализованы с помощью сочетания инструкций Database Engine и Service Broker Transact-SQL.

Данные событий трассировок можно получить программным образом, запросив соответствующую таблицу трассировки, проанализировав файл трассировки или воспользовавшись классом TraceReader системы SQL Server Management Objects (SMO).

Данные событий можно получить программным образом, выполнив для этих данных, представленных в формате XML, запрос XQuery или воспользовавшись классами событий системы SMO.