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

Применимо к: SQL Server Управляемый экземпляр SQL Azure

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

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

Примечание

Приложение SQL Server Profiler также может считывать LOG-файл средства трассировки SQL и общие файлы сценариев SQL. При открытии LOG-файла средства трассировки SQL, который имеет расширение, отличное от 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)  

Примечание

Сервер сообщает о длительности события в микросекундах (10^-6 с), а о количестве времени, затраченного ЦП на событие, в миллисекундах (10^-3 с). В Приложение SQL Server Profiler графический пользовательский интерфейс по умолчанию отображает столбец Продолжительность в миллисекундах, но, когда данные трассировки сохраняются в файле или таблице базы данных, значение столбца Продолжительность записывается в микросекундах. Эти измерения предназначены для запросов Transact-SQL (T-SQL).

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

Если необходимо отобразить имя объекта вместо идентификатора объекта (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. Поиск необходимых событий.

    • Откройте файл или таблицу трассировки и раскройте узел желаемого класса событий, например Цепочка взаимоблокировки. Дополнительные сведения см. в статье Открытие файла трассировки (приложение SQL Server Profiler) или Открытие таблицы трассировки (приложение SQL Server Profiler).

    • Найдите в данных трассировки искомые события (для ускорения поиска значений в трассировке можно воспользоваться командой Поиск в меню Изменить приложения Приложение SQL Server Profiler ). Запомните значения в столбцах данных ClientProcessID и Start Time для искомых событий трассировки.

  3. Отображение событий в контексте.

    • Откройте свойства трассировки и сгруппируйте их по столбцу данных ClientProcessID, а не по столбцу Event Class .

    • Раскройте узлы для каждого идентификатора клиентского процесса, который необходимо просмотреть. Вручную или с помощью команды поиска найдите в трассировке отмеченные ранее значения Start Timeнужных событий. События отображаются в хронологическом порядке вместе с другими событиями, которые принадлежат к каждому выбранному идентификатору клиентского процесса. Например, события Deadlock и Deadlock Chain, записанные в трассировке, отображаются сразу после событий SQL:BatchStartingв пределах раскрытого идентификатора клиентского процесса.

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

См. также: