Просмотр и анализ трассировок с помощью приложения SQL Server Profiler

Изменения: 12 декабря 2006 г.

Чтобы просмотреть данные событий, захваченных при трассировке, используйте приложение SQL Server Profiler. Приложение SQL Server Profiler отображает данные, основываясь на определенных свойствах трассировки. Одним способом анализа данных сервера SQL Server является их копирование в другую программу, например в сервер SQL Server 2005 или в помощник по настройке ядра СУБД Database Engine. Если столбец данных Текст включен в трассировку, помощник по настройке ядра СУБД может использовать файл трассировки, который содержит пакет инструкций SQL и события удаленного вызова процедуры (RPC). Дополнительные сведения см. в разделе Настройка физической структуры базы данных. Для обеспечения того, чтобы при использовании помощника по настройке ядра СУБД Database Engine были захвачены правильные события и столбцы, используйте стандартный шаблон настройки, который поставляется с приложением SQL Server Profiler.

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

ms175848.note(ru-ru,SQL.90).gifПримечание.
Приложение SQL Server Profiler также может считывать LOG-файл средства SQL Trace и общие файлы сценариев SQL. При открытии LOG-файла средства SQL Trace, который имеет расширение, отличное LOG, например trace.txt, укажите значение SQLTrace_Log в качестве формата файла.

Можно настроить формат отображения даты и времени в приложении SQL Server Profiler, чтобы облегчить анализ трассировки.

Данные диагностики

Используя приложение SQL Server Profiler, можно проводить диагностику данных, группируя трассировки или файлы трассировок по столбцам данных Duration, CPU, Reads или Writes. Примерами данных, которые можно использовать при диагностике, являются запросы, которые завершаются неудачно или которые имеют исключительно высокое число логических операций чтения.

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

SELECT  TextData, Duration, CPU
FROM    trace_table_name
WHERE   EventClass = 12 -- SQL:BatchCompleted events
AND     CPU < (Duration * 1000)
ms175848.note(ru-ru,SQL.90).gifПримечание.
В SQL Server 2005 сервер сообщает длительность события в микросекундах (одна миллионная доля секунды, 10-6 с) и количество времени ЦП, затраченного на событие, в миллисекундах (одна тысячная доля секунды, 10-3 с). В SQL Server 2000 сервер сообщал время события и время ЦП в миллисекундах. В SQL Server 2005 графический интерфейс пользователя в приложении SQL Server Profiler по умолчанию выводит столбец Продолжительность в миллисекундах, однако при сохранении трассировки в файл или таблицу базы данных значение столбца Продолжительность записывается в микросекундах.

Отображение имен объектов при просмотре трассировок

Если необходимо отобразить имя объекта вместо идентификатора объекта (Object ID), нужно захватывать столбцы данных Server Name и Database ID вместе со столбцом данных Object Name.

При выборе группирования по столбцу данных Object ID убедитесь, что группирование выполняется вначале по столбцам данных Server Name и Database ID, а уже потом по столбцу Object ID. Аналогично при группировании по столбцу данных Index ID убедитесь, что группирование выполняется вначале по столбцам данных Server Name, Database ID и Object ID, а потом уже по столбцу Index ID. Группировать следует в таком порядке, так как идентификаторы объектов и индексов не являются уникальными для нескольких серверов и баз данных (и для объектов, соответствующих идентификаторам индексов).

Поиск конкретных событий в трассировке

Для нахождения и группировки событий в трассировке выполните следующие шаги.

  1. Создайте трассировку.
    • При определении трассировки укажите столбцы данных Event Class, ClientProcessID и Start Time в дополнение к любым другим столбцам данных, которые необходимо захватывать. Дополнительные сведения см. в разделе Как создать трассировку (приложение SQL Server Profiler).
    • Сгруппируйте захваченные данные по столбцу данных Event Class и захватите трассировку в файл или таблицу. Чтобы сгруппировать захваченные данные, на вкладке Выбор событий диалогового окна «Свойства трассировки» выберите Расположить столбцы. Дополнительные сведения см. в разделе Как упорядочить отображение столбцов в трассировке (приложение SQL Server Profiler).
    • Запустите трассировку и остановите ее по истечении определенного времени или после захвата необходимого количества событий.
  2. Поиск необходимых событий.
  3. Отображение событий в контексте.
    • Отобразите свойства трассировки и сгруппируйте их по столбцу данных ClientProcessID, а не по столбцу Event Class.
    • Раскройте узлы для каждого идентификатора клиентского процесса, который необходимо просмотреть. Просмотрите трассировку вручную или с помощью команды Поиск, пока не найдете ранее отмеченные значения Время запуска нужных событий. События отображаются в хронологическом порядке вместе с другими событиями, которые принадлежат к каждому выбранному идентификатору клиентского процесса. Например, события Взаимоблокировка и Цепочка взаимоблокировки, захваченные в трассировке, происходят сразу же после событий SQL:BatchStarting в пределах раскрытого идентификатора клиентского процесса.

Такой же метод может быть применен для поиска сгруппированных событий. Как только будут найдены искомые события, сгруппируйте их по ClientProcessID, Имя приложения или другому классу событий для просмотра соответствующей деятельности в хронологическом порядке.

См. также

Задачи

Как просмотреть сохраненную трассировку (Transact-SQL)
Как просмотреть сведения о фильтре (приложение SQL Server Profiler)
Как просмотреть сведения фильтров (Transact-SQL)
Как открыть файл трассировки (приложение SQL Server Profiler)
Как открыть файл трассировки (приложение SQL Server Profiler)
Как открыть таблицу трассировки (приложение SQL Server Profiler)

Другие ресурсы

fn_trace_getinfo (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

12 декабря 2006 г.

Изменения
  • Исправлен пример кода в разделе «Данные диагностики», где используются единицы измерения столбца Продолжительность.

5 декабря 2005 г.

Добавления
  • Добавлено замечание в конце раздела «Данные диагностики», в котором обсуждается переход от миллисекунд к микросекундам для столбца Продолжительность в событиях трассировки.
Изменения
  • Исправлен пример кода в разделе «Данные диагностики» для компенсации изменения единиц измерения столбца Продолжительность (микросекунды вместо миллисекунд).