Мониторинг активности системы с помощью расширенных событий
Область применения: SQL Server База данных SQL Azure
Эта процедура показывает, как использовать расширенные события совместно со средством отслеживания событий для Windows (ETW) в целях мониторинга активности системы. Процедура показывает также варианты использования инструкций CREATE EVENT SESSION, ALTER EVENT SESSION и DROP EVENT SESSION.
Выполнение этих задач включает использование Редактор запросов в SQL Server Management Studio для выполнения следующей процедуры. Процедура требует также использования командной строки для выполнения команд ETW.
Мониторинг активности системы с помощью расширенных событий
В редакторе запросов выполните следующие инструкции, чтобы создать сеанс событий и добавить два события. Эти события (checkpoint_begin и checkpoint_end) запускаются в начале и в конце контрольной точки базы данных.
CREATE EVENT SESSION test0 ON SERVER ADD EVENT sqlserver.checkpoint_begin, ADD EVENT sqlserver.checkpoint_end WITH (MAX_DISPATCH_LATENCY = 1 SECONDS) go
Добавьте цель сегментирования с 32 сегментами для подсчета числа контрольных точек по идентификатору базы данных.
ALTER EVENT SESSION test0 ON SERVER ADD TARGET package0.histogram ( SET slots = 32, filtering_event_name = 'sqlserver.checkpoint_end', source_type = 0, source = 'database_id' ) go
Выполните следующие инструкции, чтобы добавить цель ETW. Это позволит видеть события начала и конца и использовать это для определения продолжительности обработки контрольной точки.
ALTER EVENT SESSION test0 ON SERVER ADD TARGET package0.etw_classic_sync_target go
Введите следующие инструкции, чтобы запустить сеанс и начать сбор событий.
ALTER EVENT SESSION test0 ON SERVER STATE = start go
Введите следующие инструкции для запуска трех событий.
USE tempdb checkpoint go USE master checkpoint checkpoint go
Введите следующие инструкции для просмотра счетчиков событий.
SELECT CAST(xest.target_data AS xml) Bucketizer_Target_Data_in_XML FROM sys.dm_xe_session_targets xest JOIN sys.dm_xe_sessions xes ON xes.address = xest.event_session_address JOIN sys.server_event_sessions ses ON xes.name = ses.name WHERE xest.target_name = 'histogram' AND xes.name = 'test0' go
В командной строке введите следующие команды для просмотра данных EWT.
Примечание.
Чтобы получить справку по команде tracerpt , введите в командной строке команду
tracerpt /?
.logman query -ets --- List the ETW sessions. This is optional. logman update XE_DEFAULT_ETW_SESSION -fd -ets --- Flush the ETW log. tracerpt %temp%\xeetw.etl -o xeetw.txt --- Dump the events so they can be seen.
Введите следующие инструкции, чтобы прекратить сеанс и удалить его с сервера.
ALTER EVENT SESSION test0 ON SERVER STATE = STOP go DROP EVENT SESSION test0 ON SERVER go
См. также
CREATE EVENT SESSION (Transact-SQL)
ALTER EVENT SESSION (Transact-SQL)
DROP EVENT SESSION (Transact-SQL)
Представления каталога расширенных событий (Transact-SQL)
Динамические административные представления расширенных событий
Цели расширенных событий SQL Server