Главная » Microsoft SQL Server, Базы данных » Использование SQL Server Profiler

0

Одним из моих самых любимых инструментов является SQL Server Profiler, который часто называют просто Profiler. Эта утилита отображает данные о любом количестве детализированных событий SQL Server. Эти события сервера можно просматривать в окне Trace Properties (рис. 49.3), а также записывать в файл или таблицу для последующего анализа. Для регистрации всех событий или их избранного подмножества можно установить фильтры.

Puc. 49.2. В данном примере протокол счетчиков будет регистрировать информацию

о          производительности SQL Server в каталоге С: \ Perf Logs

Утилиту SQL Server Profiler можно запустить из меню Tools программы Management Studio или непосредственно из папки SQL Server 2005 системного меню Пуск. Для просмотра действий вам необходимо либо определить новую трассировку, либо воспользоваться уже существующим файлом.

С выходом пакета обновлений SP1 SQL Server Profiler получил возможность Внимание! выполнять трассировку крупных массивов данных на больших компьютерах.

Кроме того, ранее при мониторинге службы анализа время отображалось в единицах универсального синхронизированного времени (UTC). Теперь используется локальное системное время. Ранее успешно воспроизведенные события подсчитывались некорректно, в результате пользователь получал некорректную статистику. Эта проблема была устранена.

Определение новой трассировки

Когда создается новая трассировка (либо с помощью команды меню File^New Trace, либо с помощью кнопки New Trace панели инструментов), создается также новое подключение к SQL Server и открывается диалоговое окно Trace Properties (рис. 49.4). Во вкладке General этого окна настраивается трассировка (в частности, имя, местоположение файла и т.п.), а во вкладке Events Selection определяются регистрируемые события, данные и фильтры. Если трассировка запущена, то эти параметры можно просматривать, но не изменять. Конфигурация трассировки может быть сохранена в виде шаблона, чтобы облегчить создание новых трассировок в будущем.

Рис. 49.4. Вкладка Events Selection окна Trace Properties позволяет отобрать события, отслеживаемые утилитой Profiler

Трассировку можно просматривать в реальном времени, однако эти данные могут одновременно записываться в файл или таблицу SQL Server. Это полезно для последующего интеллектуального анализа, сравнения с данными счетчиков монитора системы или для импорта в утилиту Database Engine Tuning Advisor.

Когда показания записываются в файл, для повышения производительности они объединяются в цепочки по 128 Кбайт; аналогично, при записи в таблицу данные группируются по несколько строк.

Чтобы сохранить данные, полученные программой Profiler, для последующего анализа, используйте высокопроизводительный файловый метод, а также серверную трассировку (о ней мы поговорим позже). Если вы хотите анализировать данные с помощью инструкций Т-SQL, используйте точно такой же подход, но после завершения сеанса трассировки откройте полученный файл в утилите Profiler и выберите в меню команду File^Save As^Table.

Отбор событий

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

I Событие SQL Batch Completed основано на выполнении пакетов Т-SQL в

SVS целом (разделенных терминаторами пакетов), а не отдельных их инструкций.

| * Исходя из этого, Profiler регистрирует данные всего об одном событии, незави-

            ? симо от длины пакета. Для регистрации выполнения отдельных инструкций

DML используйте событие SQL Statement Complete.

Для воспроизведения трассировки можно использовать далеко не все события. Например, событие SQL Batch Start может быть воспроизведено, а событие SQL Batch Complete — нет.

В зависимости от событий для трассировки становятся доступными разные данные. Несмотря на то что столбец данных SPID кажется необязательным, это впечатление обманчиво — он обязателен.

Фильтрация событий

Программа Profiler способна собрать для вас такое количество информации, которая легко может в мгновение ока заполнить дисковое устройство. К счастью, предлагаемый программой фильтр (рис. 49.5) поможет вам ограничить этот массив только интересующими вас данными.

Рис. 49.6. Утилита SQL Server Profiler способна интегрировать данные монитора производительности и синхронизировать их с отслеженными событиями

Использование SQL Trace

Программу SQL Profiler обычно используют интерактивно, и для непостоянного сбора данных ее вполне достаточно. Однако длительные трассировки способны с легкостью накопить сотни тысяч записей, что может вызвать вполне конкретные проблемы на рабочей станции, выполняющей трассировку. Решение сводится к созданию журнала трассировки непосредственно на сервере. Такая трассировка вызовет небольшую дополнительную нагрузку на сервер; при этом файлы будут записываться блоками по 128 Кбайт.

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

о          производительности при минимизации дополнительной нагрузки на сервер.

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

Когда трассировка сконфигурирована и протестирована в SQL Server Profiler, выберите в меню команду File^Export^Trace Definition^For SQL Server 2005, чтобы сгенерировать сценарий T-SQL, способный выполнять трассировку на стороне сервера.

I Чтобы узнать, какие трассировки запущены на сервере, выполните запрос к ди-

SVS намическому представлению управления systraces. Когда вы посмотрите на I * результаты этого запроса, то увидите дополнительную трассировку. Первый               * номер всегда имеет так называемая трассировка по умолчанию, которая собирает данные для журналов SQL Server, — ее невозможно остановить.

Для остановки серверной трассировки используйте системную хранимую процедуру sp_trace_setstatus. Первый ее аргумент (traceid) является идентификатором трассировки, а второй определяет характер действия. Нулевое значение параметра действия приводит к остановке трассировки, единица — к ее запуску, а двойка — к закрытию и удалению. В следующем коде останавливается трассировка с номером 2:

EXEC sp_trace_setstatus 2, 0

Источник: Нильсен, Пол. Microsoft SQL Server 2005. Библия пользователя. : Пер. с англ. — М. : ООО “И.Д. Вильямс”, 2008. — 1232 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии