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

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

  • пошаговое выполнение проблемных запросов для поиска источника проблемы;
  • выявление и диагностика медленно работающих запросов;
  • перехват серии инструкций Transact-SQL, ведущих к проблеме. Сохраненную трассировку затем можно использовать для моделирования и диагностики проблемы на тестовом сервере;
  • контроль производительности SQL Server для настройки рабочих нагрузок;

Создание и запуск трассировки

В меню File выбрать пункт New Trace…, а затем подключиться к экземпляру SQL Server.
2-1

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

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

Настроить фильтры, столбцы и события на вкладке Events Selection. Нажать кнопку Run.
2-2

Описание основных полей

Поле

Описание

EventClassТип трассируемого события. Класс событий содержит все данные, которые может сообщить событие
TextDataТекстовое значение, зависящее от класса событий, захваченного при трассировке
ApplicationNameИмя клиентского приложения, установившего соединение с экземпляром SQL Server. Этот столбец заполняется значениями, передаваемыми приложением, а не отображаемым именем программы
CPUВремя ЦП (в миллисекундах), использованное событием
ReadsКоличество операций чтения с логического диска, выполненных сервером для данного события. Эти операции чтения включают в себя все операции чтения из таблиц и буферов при выполнении данной инструкции
WritesКоличество физических обращений записи на диск, выполненных сервером для данного события
DurationПродолжительность события (в микросекундах)
StartTimeВремя начала события, если оно известно
EndTimeВремя окончания события

Ссылка на документацию - http://technet.microsoft.com/en-us/library/ms181091%28v=sql.105%29.aspx