SQL Profiler Express — использование инструмента для решения проблем по SQL запросам
В этой статье мы разберем как работать с таким полезным инструментом как SQL Server Profiler. C помощью этого инструмента вы научитесь мониторить все запросы, которые выполняются на базе SQL Server.
Что такой SQL Server Profiler Express
Это программа, которая умеет перехватывать все запросы, сделанные к данному инстансу SQL Server, и отображать информацию о нем — непосредственно генерируемый SQL, время выполнения, количество чтения и записи.
Как работать с SQL Profiler Express
Выглядит окно программы следующим образом:
В верхней части программы указываем имя сервера, Windows или SQL Server авторизацию, если SQL server — то имя пользователя и пароль для входа. После чего нажимаем Start trace. После этого любой запрос, сделанный к этом серверу будет отображен в списке.
если будет ошибка “Нет разрешения на запуск SP_TRACE_CREATE”, то нужно дать юзеру базы разрешение “ ALTER TRACE ”:
use master GRANT ALTER TRACE TO user1;
Описание колонок
Text data: текст перехваченного запроса
Login name: имя пользователя, который выполнял запрос
CPU: количество процессорного времени (в миллисекундах)
Reads: количество чтений с диска, выполненных сервером
Writes: количество записей на диск, выполненных сервером
Duration: продолжительность запроса (в миллисекундах)
SPID: идентификатор процесса сервера
Start time, End time — время начала и конца запроса
Анализ
В первую очередь надо искать самые большие по продолжительности запросы — именно они чаще всего бесполезно занимают потоки веб сервера, которые не могут завершить http запрос пока не получат результаты от базы. Затем смотреть, какие запросы занимают много процессорного времени — такие процессы могут напрасно расходовать ресурсы системы.
Что делать после
В первую очередь проверить, что не выполняется лишних дополнительных запросов — т.е. вся информация из таблицы читается одним запросом за раз.
Если дополнительных запросов нет, но основной запрос выполняется достаточно медленно, надо проверить план его выполнения. Это можно сделать следующим образом:
- Скопировать нужный запрос в SQL Server Management Studio
- Выбрать Запрос — Показать предполагаемый план выполнения
После чего будет показан план запроса. Выглядит это так.

В данном случае видим, что для выполнения запроса делается четыре поиска только по кластерному индексу, т.е. здесь мы уже ничего оптимизировать не можем. Если будет выполняться поиск по колонке, особенно текстовой, надо подумать над перестройкой запроса.
В рамках платформы есть встроенные средства для выявления проблемных запросов. Смотрите статью Диагностика сайта на Falcon Space.
Выполнение приложения SQL Server Profiler
Приложение SQL Server Profiler можно запустить несколькими способами для получения данных трассировки в разных сценариях. Можно запустить Приложение SQL Server Profiler из меню Пуск в Windows, из меню Сервис в помощнике по настройке Компонент Database Engine и из нескольких расположений в SQL Server Management Studio.
При первом запуске Приложение SQL Server Profiler и выборе в меню Файл пункта Создать трассировку приложение отображает диалоговое окно Соединение с сервером, где можно указать экземпляр SQL Server для подключения.
Запуск SQL Server Profiler из меню «Пуск» в Windows
- Щелкните в Windows значок Пуск или нажмите клавишу Windows и начните набирать SQL Server Profiler 18 (или более поздней версии). Когда появится плитка SQL Server Profiler 18, щелкните ее.
Запуск SQL Server Profiler в помощнике по настройке ядра СУБД
- В меню Компонент Database Engine Сервис помощника по настройке компонента выберите SQL Server Profiler.
Запуск SQL Server Profiler в SQL Server Management Studio
Вы можете открыть Приложение SQL Server Profiler из нескольких расположений в SQL Server Management Studio. При запуске приложения Приложение SQL Server Profiler загружается контекст подключения, шаблон трассировки и выполняется фильтрация контекста точки запуска. SQL Server Management Studio запускает каждый сеанс SQL Server Profiler в отдельном экземпляре, выполнение которого продолжается после завершения работы SQL Server Management Studio.
Запуск приложения SQL Server Profiler из меню «Инструменты»
- В меню SQL Server Management Studio Инструменты щелкните SQL Server Profiler.
Запуск приложения SQL Server Profiler из редактора запросов
- В редакторе запросов щелкните правой кнопкой мыши, а затем выберите пункт Трассировка запроса в приложении SQL Server Profiler.
Примечание Контекстом соединения является редактор соединения, шаблон трассировки — TSQL_SP, а применяемый фильтр SPID = окно запроса SPID.
Запуск приложения SQL Server Profiler из монитора активности
- В мониторе активности щелкните панель Процессы, щелкните правой кнопкой процесс, который хотите профилировать, а затем выберите пункт Трассировка процесса в приложении SQL Server Profiler.
Примечание Когда выбран процесс, контекстом соединения является соединение обозревателя объектов при открытии монитора активности. Шаблон трассировки — это шаблон по умолчанию в зависимости от типа сервера, а идентификатор SPID равен идентификатору SPID для выбранного процесса.
Безопасность .NET Framework
- В режиме проверки подлинности Windows учетная запись пользователя, от имени которой запускается приложение Приложение SQL Server Profiler, должна иметь разрешение на подключение к экземпляру SQL Server.
- Для выполнения трассировки в Приложение SQL Server Profilerпользователь должен также иметь разрешение ALTER TRACE.
Профилировщик SQL Server
SQL Server Profiler — это интерфейс для создания трассировок и управления ими, а также для анализа и воспроизведения полученных результатов. События сохраняются в файле трассировки, который затем может быть проанализирован или использован для воспроизведения определенных последовательностей шагов для выявления возникших проблем.
SQL Trace и SQL Server Profiler устарели. Пространство имен Microsoft.SqlServer.Management.Trace, которое содержит объекты трассировки Microsoft SQL Server и Replay, также устаревшее.
В будущей версии Microsoft SQL Server этот компонент будет удален. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.
Поддерживаются рабочие нагрузки SQL Server Profiler для служб Analysis Services.
При попытке подключиться к Базе данных SQL Azure из SQL Server Profiler она некорректно выдает сообщение об ошибке, как показано ниже.
- Чтобы выполнить трассировку SQL Server, необходимо быть членом предопределенной роли сервера sysadmin или иметь разрешение ALTER TRACE.
В сообщении должно объясняться, что База данных SQL Azure не поддерживается SQL Server Profiler.
Где находится профилировщик?
Захват и воспроизведение данных трассировки
В следующей таблице показаны функции, которые мы рекомендуем использовать в SQL Server для записи и воспроизведения данных трассировки.
| Компонент\целевая рабочая нагрузка | Реляционный механизм | Службы Analysis Services |
|---|---|---|
| Запись трассировки | Графический пользовательский интерфейсрасширенных событий в среде SQL Server Management Studio | Профилировщик SQL Server |
| Воспроизведение трассировки | Распределенное воспроизведение | Профилировщик SQL Server |
Использование SQL Server Profiler
Microsoft SQL Server Profiler — это графический пользовательский интерфейс трассировки SQL для мониторинга экземпляра ядро СУБД или служб Analysis Services. Приложение позволяет собирать и сохранять данные о каждом событии в файле или в таблице для последующего анализа. Например, с помощью приложения можно следить за производственной средой, чтобы определить, какие хранимые процедуры снижают производительность из-за того, что выполняются слишком медленно. Sql Server Profiler используется для таких действий, как:
- пошаговое выполнение проблемных запросов для поиска источника проблемы;
- выявление и диагностика медленно работающих запросов;
- перехват серии инструкций Transact-SQL, ведущих к проблеме; Сохраненную трассировку затем можно использовать для моделирования и диагностики проблемы на тестовом сервере;
- контроль производительности SQL Server для настройки рабочих нагрузок; Дополнительные сведения о настройке физической структуры базы данных для рабочих нагрузок см. в разделе Database Engine Tuning Advisor.
- Анализ счетчиков производительности для диагностики проблем.
SQL Server Profiler также поддерживает аудит действий, выполняемых на экземплярах SQL Server. В ходе аудита ведется запись действий, связанных с безопасностью, для дальнейшего просмотра администратором безопасности.
Основные понятия приложения SQL Server Profiler
Чтобы использовать SQL Server Profiler, необходимо понять термины, описывающие способ работы средства.
Знание трассировки SQL будет особенно полезно при работе с приложением SQL Server Profiler. Дополнительные сведения см. в статье SQL Trace.
Событие
Событие — это действие, созданное в экземпляре SQL Server ядро СУБД. Примеры:
- подключения пользователей, сбои, отключения;
- инструкции Transact-SQL SELECT , INSERT , UPDATE и DELETE ;
- состояние пакетов вызова удаленных процедур (RPC);
- запуск или завершение хранимой процедуры;
- инструкции запуска или завершения в хранимых процедурах;
- запуск или завершение пакета SQL;
- Ошибка, записанная в журнал ошибок SQL Server.
- получение блокировки или освобождение объекта базы данных;
- открытый курсор;
- проверки права доступа.
Все данные, создаваемые событием, отображаются в трассировке одной строкой. Эта строка пересекается столбцами данных, подробно описывающими данное событие.
EventClass
Класс событий — это тип трассируемого события. Класс событий содержит все данные, которые может сообщать событие. Примеры классов событий
EventCategory
Категория событий определяет способ группировки событий в SQL Server Profiler. Например, все классы событий блокировки группируются в категории событий Locks . Однако категории событий существуют только в SQL Server Profiler. Этот термин не отображает способ группировки событий ядра.
DataColumn
Столбец данных — это атрибут классов событий, захваченных при трассировке. Поскольку класс событий определяет тип собираемых данных, не все столбцы данных применимы ко всем классам событий. Например, в трассировке, которая фиксирует класс событий Lock: приобретенный класс событий, столбец данных BinaryData содержит значение заблокированного идентификатора страницы или строки, но столбец данных целочисленных данных не содержит никакого значения, так как он не применим к захваченным классу событий.
Template
Шаблон определяет конфигурацию трассировки по умолчанию. В частности, он включает классы событий, которые необходимо отслеживать с помощью SQL Server Profiler. Например, можно создать шаблон, указывающий события, столбцы данных и фильтры. Шаблон не выполняется, а сохраняется в виде файла с расширением TDF. После сохранения шаблон управляет захватом данных, если запускается трассировка, основанная на этом шаблоне.
Трассировка
Трассировка захватывает данные на основании выбранных классов событий, столбцов данных и фильтров. Например, можно создать трассировку для контроля ошибок исключений. Для этого выберите класс событий Exception и столбцы данных Error, Stateи Severity . Необходимо собирать данные этих трех столбцов, чтобы результаты трассировки содержали значимые данные. Теперь можно запустить трассировку, настроенную таким образом, и собирать данные обо всех событиях класса Exception на данном сервере. Данные трассировки можно сохранить или немедленно проанализировать. Трассировки можно воспроизводить впоследствии, хотя некоторые события, например класса Исключение , воспроизвести нельзя. Можно также сохранить трассировку как шаблон для построения аналогичных трассировок в будущем.
SQL Server предоставляет два способа трассировки экземпляра SQL Server: трассировку с помощью профилировщика SQL Server или трассировку с помощью системных хранимых процедур.
Фильтр
При создании трассировки или шаблона можно определить критерии для фильтрации данных, собираемых событием. Чтобы трассировки не становились слишком большими, можно устанавливать фильтры, чтобы собирать только подмножества данных о событиях. Например, в трассировке можно указать определенные имена пользователей Microsoft Windows, тем самым уменьшив объем выходных данных.
Если фильтр не установлен, то на выход трассировки возвращаются все события выбранных классов событий.
Задачи приложения SQL Server Profiler
| Описание задания | Тема |
|---|---|
| Перечисляет предопределенные шаблоны, предоставляемые SQL Server для мониторинга определенных типов событий и разрешений, необходимых для воспроизведения трассировок. | Шаблоны и разрешения приложения SQL Server Profiler |
| Содержит описание процесса запуска приложения SQL Server Profiler. | Разрешения, необходимые для запуска приложения SQL Server Profiler |
| Содержит описание процесса создания трассировки. | Создание трассировки (приложение SQL Server Profiler) |
| Содержит описание процесса указания определенных событий и столбцов данных для файла трассировки. | Задание столбцов событий и данных для файла трассировки (приложение SQL Server Profiler) |
| Содержит описание процесса сохранения результатов трассировки в файл. | Сохранение результатов трассировки в файл (приложение SQL Server Profiler) |
| Содержит описание процесса сохранения результатов трассировки в таблице. | Сохранение результатов трассировки в таблицу (SQL Server Profiler) |
| Содержит описание процесса фильтрации событий в трассировке. | Фильтровать события в трассировке (SQL Server Profiler) |
| Содержит описание процесса просмотра сведений о фильтре. | Просмотр сведений о фильтре (приложение SQL Server Profiler) |
| Содержит описание процесса изменения фильтра. | Изменение фильтра (приложение SQL Server Profiler) |
| Содержит описание процесса установки максимального размера для файла трассировки (приложение SQL Server Profiler). | Задайте максимальный размер файла трассировки (SQL et al). |
| Содержит описание процесса установки максимального размера для таблицы трассировки. | Установка максимального размера для таблицы трассировки (приложение SQL Server Profiler) |
| Содержит описание процесса запуска трассировки. | Запуск трассировки |
| Содержит описание автоматического процесса запуска трассировки после соединения с сервером. | Автоматически запустить трассировку после соединения с сервером (приложение SQL Server Profiler) |
| Содержит описание процесса фильтрации событий по времени начала события. | Фильтровать события по времени начала (приложение SQL Server Profiler) |
| Содержит описание процесса фильтрации событий по времени окончания события. | Фильтровать события на основе времени окончания события (приложение SQL Server Profiler) |
| Содержит описание процесса фильтрации идентификаторов процесса сервера (SPID) в трассировке. | Фильтрация идентификаторов процессов сервера (SPID) в трассировке (SQL et al). |
| Содержит описание процесса приостановки трассировки. | Приостановить трассировку (приложение SQL Server Profiler) |
| Содержит описание процесса прекращения трассировки. | Остановить трассировку (приложение SQL Server Profiler) |
| Содержит описание процесса запуска трассировки после ее приостановки или прекращения. | Провести трассировку после ее приостановки или прекращения (приложение SQL Server Profiler) |
| Содержит описание процесса очистки окна трассировки. | Очистить окно трассировки (приложение SQL Server Profiler) |
| Содержит описание процесса закрытия окна трассировки. | Закрыть окно трассировки (приложение SQL Server Profiler) |
| Содержит описание процесса настройки трассировки по умолчанию. | Задание определения трассировки по умолчанию (приложение SQL Server Profiler) |
| Содержит описание процесса настройки отображения трассировки по умолчанию. | Задание параметров по умолчанию для отображения трассировки (приложение SQL Server Profiler) |
| Содержит описание процесса открытия файла трассировки. | Открытие файла трассировки (приложение SQL Server Profiler) |
| Содержит описание процесса открытия таблицы трассировки. | Открытие таблицы трассировки (приложение SQL Server Profiler) |
| Содержит описание процесса воспроизведения таблицы трассировки. | Воспроизвести таблицу трассировки (приложение SQL Server Profiler) |
| Содержит описание процесса воспроизведения файла трассировки. | Воспроизвести файл трассировки (приложение SQL Server Profiler) |
| Содержит описание процесса воспроизведения одиночного события за раз. | Воспроизвести одиночное событие за раз (приложение SQL Server Profiler) |
| Содержит описание процесса воспроизведения до точки останова. | Воспроизвести нагрузку до точки останова (SQL Server Profiler) |
| Содержит описание процесса воспроизведения до курсора. | Воспроизвести до курсора (приложение SQL Server Profiler) |
| Содержит описание процесса воспроизведения скрипта Transact-SQL. | Воспроизвести скрипт на языке Transact-SQL (приложение SQL Server Profiler) |
| Содержит описание процесса создания шаблона трассировки. | Создание шаблона трассировки (приложение SQL Server Profiler) |
| Содержит описание процесса изменения шаблона трассировки. | Изменение шаблона трассировки (приложение SQL Server Profiler) |
| Содержит описание процесса настройки глобальных параметров трассировки. | Задание глобальных параметров трассировки (SQL Server Profiler) |
| Содержит описание процесса поиска значения или столбца данных во время трассировки. | Найти значение или столбец данных во время трассировки (приложение SQL Server Profiler) |
| Содержит описание процесса создания шаблона на основе выполняемой трассировки. | Создание шаблона на основе выполняемой трассировки (SQL Server Profiler) |
| Содержит описание процесса создания шаблона на основе файла или таблицы трассировки. | Создание шаблона на основе файла трассировки или таблицы трассировки (приложение SQL Server Profiler) |
| Содержит описание процесса создания скрипта Transact-SQL на основе выполняемой трассировки. | Создать скрипт Transact-SQL для выполнения трассировки (приложение SQL Server Profiler) |
| Содержит описание процесса экспорта шаблона трассировки. | Экспорт шаблона трассировки (приложение SQL Server Profiler) |
| Содержит описание процесса импорта шаблона трассировки. | Импорт шаблона трассировки (приложение SQL Server Profiler) |
| Содержит описание процесса извлечения скрипта из трассировки. | Извлечь скрипт из трассировки (приложение SQL Server Profiler) |
| Содержит описание процесса согласования трассировки с данными журнала производительности Windows. | Согласовать трассировку с данными журнала производительности Windows (приложение SQL Server Profiler) |
| Содержит описание процесса упорядочения столбцов, отображаемых в трассировке. | Упорядочить столбцы, отображаемые в трассировке (приложение SQL Server Profiler) |
| Содержит описание процесса запуска приложения SQL Server Profiler. | Запуск приложения SQL Server Profiler |
| Содержит описание процесса сохранения трассировок и шаблонов трассировок. | Сохранение трассировок и шаблонов трассировок |
| Содержит описание процесса изменения шаблонов трассировок. | Изменение шаблонов трассировки |
| Содержит описание процесса согласования трассировки с данными журнала производительности Windows. | Сопоставление трассировки с журналом производительности Windows |
| Содержит описание процесса просмотра и анализа трассировок с помощью приложения SQL Server Profiler. | Просмотр и анализ трассировок с помощью приложения SQL Server Profiler |
| Содержит описание процесса анализа взаимоблокировок с помощью приложения SQL Server Profiler. | Анализ взаимоблокировок в приложении SQL Server Profiler |
| Содержит описание процесса анализа запросов с помощью результатов инструкции SHOWPLAN в приложении SQL Server Profiler. | Анализ запросов с помощью результатов инструкции SHOWPLAN в приложении SQL Server Profiler |
| Содержит описание процесса фильтрации трассировок с помощью приложения SQL Server Profiler. | Фильтрация трассировок с помощью приложения SQL Server Profiler |
| Содержит описание процесса использования возможностей воспроизведения приложения SQL Server Profiler. | Воспроизведение трассировок |
| Позволяет получить список контекстной справки по разделам приложения SQL Server Profiler. | Справка F1 приложения SQL Server Profiler |
| Перечисляет системные хранимые процедуры, используемые SQL Server Profiler для мониторинга производительности и активности. | Хранимые процедуры SQL Server Profiler (Transact-SQL) |
Связанный контент
- Категория событий Locks
- Категория событий Sessions
- Категория событий Stored Procedures
- Категория событий TSQL
- Мониторинг производительности и действий сервера
Работа с SQL Server Profiler. Примеры настройки трассировок
В данной теме я хочу поговорить об очень полезном инструменте — SQL Server Profiler.
Как описано на MSDN, приложение SQL Server Profiler — это графический пользовательский интерфейс для трассировки SQL, с помощью которого можно наблюдать за экземпляром компонента Database Engine. Приложение позволяет собирать и сохранять данные о каждом событии в файле или в таблице для последующего анализа. Данное приложение представляет исключительную важность в задачах анализа производительности исполняемых запросов, а также при анализе проблем параллельности работы в базе данных.
На текущий момент Microsoft продвигает другой аналогичный инструмент — Extended Events и рекомендует пользоваться им, тем не менее я считаю полезным уметь работать и с инструментом Profiler.
Настройка приложения
В профайлере, начиная с версии 2005, в настройках приложения присутствует флажок «Показывать значения в столбце «Продолжительность» в микросекундах» (Show values in Duration column in microseconds). Данный флажок управляет как отображением значения в соответствующей колонке, так и значением, устанавливаемым для отбора по данной колонке. На мой взгляд, при работе с Profiler удобнее использовать микросекунды, поэтому советую данный флажок установить. Настройка находится в меню Сервис (Tools) → Параметры (Options).

Запуск трассировки в Profiler
Для того чтобы запустить новую трассировку в Profiler необходимо:
- Открыть приложение SQL Server Profiler
- Выбрать пункт основного меню «Файл» (File), в нем «Создать трассировку» (New Trace)
- В открывшемся диалоге подключиться к нужному экземпляру SQL Server
- В открывшемся окне настроить трассировку
- Запустить трассировку
Настройка трассировки
Из вышеприведенного списка действий, самым сложным (а по своей сути — единственным) является настройка трассировки. Она имеет множество вариантов, попробуем разобрать основные из них.
Вкладка общие
Первым пунктом предлагается задать имя трассировки, имя можно оставить по умолчанию, но если будет открыто несколько трассировок, удобно именовать их чем-то осознанным.
Следующим пунктом предлагается выбрать шаблон трассировки из списка. В данном списке приводятся некоторые предопределенные шаблоны трассировок. Помимо этого, шаблоны можно дополнить своими, пользовательскими шаблонами. Данная возможность облегчит вам жизнь, поскольку каждый раз настраивать с нуля — не самое приятное занятие.
Вывод данных трассировки может происходить:
- На экран в новом окне — вывод происходит на экран, при этом в дальнейшем трассировку можно будет сохранить как в файл, так и в таблицу в СУБД (даже если опции записи в файл и/или таблицу не были включены)
- Записывать в файл на диске (опционально) — дополнительно к выбранным опциям, данные будут записываться в файл на диске. Далее этот файл можно открыть через профайлер. Эта опция удобна для сохранения и/или для передачи трассировки.
- Записывать в таблицу базы данных (опционально) — дополнительно к выбранным опциям, данные будут записываться в таблицу базы данных. Далее, посредством возможностей предоставляемых СУБД, можно произвести анализ данных, например, найти самые длительные события или просуммировать общую длительность.
Последним пунктом настройки предлагается установить время остановки трассировки, если это требуется.
Перед продолжением настройки установим шаблон «Пустой» (Blank), имя трассировки может быть произвольным, все остальные флажки могут быть сняты.

Вкладка выбора событий
Событие — это действие экземпляра SQL Server Database Engine. Для анализа проблем, возникающих при работе с 1С, существуют определенные наборы событий, с которыми необходимо уметь работать.
Выбор событий — это основная часть настройки трассировки, он предполагает работу с матрицей: «Событие» — «Свойство события». Таким образом, в этой матрице надо установить флажки по тем событиям и их свойствам, которые мы хотим трассировать.
Помимо матрицы событий и их свойств, на форме присутствуют флажки: «Показать все события» (Show all events) и «Показать все столбцы» (Show all columns). При установленном флажке в матрице раскрываются все события/столбцы, при снятом остаются только выбранные. Помимо этого, флажок «Показать все столбцы» влияет на отображение данных в «Фильтры столбцов» — отображаемый список соответствует отображаемым столбцам в матрице. При этом, даже если столбец скрыт (не выбран в матрице и снят флаг «Показать все столбцы»), но отбор на него был установлен — отбор сработает.
«Фильтры столбцов» (Column Filters) — открывает список столбцов по которым можно установить отборы. Если значение события при трассировке не подходит под значение отбора в столбце, данное событие не будет отражено в трассировке. Таким образом, можно установить отбор на информационную базу, по которой необходимо произвести трассировку.
«Упорядочить столбцы» (Organize Columns) — используется для изменения (организации) порядка следования выводимых колонок.

События для получения плана выполнения запроса
Для того чтобы получить план запроса в Profiler следует добавить следующие события:
| Событие | Описание |
|---|---|
| Showplan All | Выводит подробную информацию о предполагаемом плане запроса в текстовом виде |
| Showplan Statistics Profile | Выводит подробную информацию о действительном плане запроса в текстовом виде |
| Showplan XML | Выводит подробную информацию о предполагаемом плане запроса в XML формате (может быть представлен графически) |
| Showplan XML Statistics Profile | Выводит подробную информацию о действительном плане запроса в XML формате (может быть представлен графически) |
Помимо вышеприведенных событий, для получения полной картины происходящего полезно добавить события:
| Событие | Описание |
|---|---|
| RPC:Completed | Происходит при завершении удаленного вызова процедуры |
| SQL:BatchCompleted | Возникает при завершении выполнения инструкции Transact-SQL |
Среди столбцов, выводимых в трассировке, рекомендуется включить: TextData, BinaryData, Reads, Writes, CPU, Duration, SPID.

Также полезно установить фильтры по длительности и базе данных. Как это сделать описано ниже в статье.
Другие способы получения плана запроса (без использования Profiler) описаны в статье «Методы получения плана запроса в СУБД MS SQL Server»
События для получения графа взаимоблокировки
Для получения графа взаимоблокировки достаточно добавить одноименное событие Locks: Deadlock graph.
Событие Deadlock graph возникает одновременно с классом событий Lock: Deadlock. Класс событий Deadlock graph предоставляет XML-описание взаимоблокировки.
Среди столбцов, выводимых в трассировке, рекомендуется включить: EventSequence, SPID, StartTime, TextData.

События для получения информации об эскалации
Для получения информации об эскалации достаточно добавить событие Locks: Escalation.
Событие Escalation возникает при эскалации блокировки, т.е. когда блокировка более мелких фрагментов преобразуется в блокировку более крупных фрагментов.
Также можно ограничить набор выводимых колонок теми данными, которые требуются для анализа.

Установка фильтров столбцов
Установить фильтры можно нажав на кнопку «Фильтры столбцов».

Важно понимать, не все события содержат те или иные колонки. Если событие не содержит колонку по которой установлен фильтр, данное событие отфильтровано не будет.
Очень полезным фильтром является отбор по имени базы или ее идентификатору (если в экземпляре находится несколько баз, а трассировать необходимо какую-то определенную). Для установки фильтра по имени базы необходимо для колонки DatabaseName установить значение «Похоже на» или «Не похоже на». Стоит отметить: если установленному значению будут отвечать несколько баз, тогда события будут собираться по каждой из них. Второй вариант фильтрации событий по определенной базе — установка отбора по колонке DatabaseID. Узнать идентификатор базы данных можно выполнив запрос в SQL Server Management Studio:
