Поделиться через


Профилировщик SQL Server

Область применения: SQL Server Управляемый экземпляр SQL Azure

SQL Server Profiler — это интерфейс для создания трассировок и управления ими, а также для анализа и воспроизведения полученных результатов. События сохраняются в файле трассировки, который затем может быть проанализирован или использован для воспроизведения определенных последовательностей шагов для выявления возникших проблем.

Внимание

  • SQL Trace и SQL Server Profiler устарели. Пространство имен Microsoft.SqlServer.Management.Trace , содержащее объекты трассировки и воспроизведения Microsoft SQL Server, также устарело. Однако поддерживаются рабочие нагрузки служб Analysis Services.
  • Эта функция будет удалена в будущей версии SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.
  • Вместо этого используйте расширенные события. Дополнительные сведения о расширенных событиях см. в статьях Краткое руководство. Расширенные события в SQL Server и Использование профилировщика XEvent для SSMS.

Примечание.

При попытке подключиться к База данных SQL Azure из SQL Server Profiler неправильно возникает вводящая в заблуждение сообщение об ошибке следующим образом:

  • Чтобы запустить трассировку для SQL Server, необходимо быть членом предопределенных ролей сервера sysadmin или иметь разрешение ALTER TRACE.

В сообщении должно объясняться, что База данных SQL Azure не поддерживается SQL Server Profiler.

Где находится профилировщик?

Профилировщик можно запустить в SQL Server Management Studio или Azure Data Studio с помощью расширения 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

Класс событий — это тип трассируемого события. Класс событий содержит все данные, которые может сообщать событие. Примеры классов событий

  • SQL:BatchCompleted
  • Аудит входа в систему
  • Аудит выхода из системы
  • Блокировка: приобретено
  • Блокировка: выпущено

EventCategory

Категория событий определяет способ группировки событий в SQL Server Profiler. Например, все классы событий блокировки группируются в категории событий Locks . Однако категории событий существуют только в SQL Server Profiler. Этот термин не отображает способ группировки событий ядра.

DataColumn

Столбец данных — это атрибут классов событий, захваченных при трассировке. Так как класс событий определяет тип данных, которые можно собирать, не все столбцы данных применяются ко всем классам событий. Например, в трассировке, которая фиксирует класс событий Lock: Приобретенный класс событий, столбец данных BinaryData содержит значение заблокированного идентификатора страницы или строки, но столбец данных целочисленных данных не содержит никакого значения, так как он не применяется к захваченным классам событий.

Template

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

Трассировка

Трассировка захватывает данные на основании выбранных классов событий, столбцов данных и фильтров. Например, можно создать трассировку для контроля ошибок исключений. Для этого выберите класс событий Exception и столбцы данных Error, State и Серьезности . Данные из этих трех столбцов должны собираться для результатов трассировки для предоставления значимых данных. Затем можно запустить трассировку, настроенную таким образом, и собирать данные о событиях исключений на сервере. Данные трассировки можно сохранять или использовать немедленно для анализа. Трассировки можно воспроизвести позже, хотя некоторые события, такие как события исключения , никогда не повторяются. Вы также можете сохранить трассировку в качестве шаблона для создания аналогичных трассировок.

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 и другие).
Содержит описание процесса установки максимального размера для таблицы трассировки. Установка максимального размера для таблицы трассировки (приложение SQL Server Profiler)
Содержит описание процесса запуска трассировки. Запуск трассировки
Содержит описание автоматического процесса запуска трассировки после соединения с сервером. Автоматически запустить трассировку после соединения с сервером (приложение SQL Server Profiler)
Содержит описание процесса фильтрации событий по времени начала события. Фильтровать события по времени начала (приложение SQL Server Profiler)
Содержит описание процесса фильтрации событий по времени окончания события. Фильтровать события на основе времени окончания события (приложение SQL Server Profiler)
Содержит описание процесса фильтрации идентификаторов процесса сервера (SPID) в трассировке. Фильтрация идентификаторов процессов сервера (SPID) в трассировке (SQL и других)
Содержит описание процесса приостановки трассировки. Приостановить трассировку (приложение 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)

Расширенные события vs. SQL профилировщик сервера

Расширенные события и SQL Server Profiler — это средства для мониторинга и устранения неполадок с производительностью SQL Server. SQL Server Profiler устарел и должен использоваться только с службами Analysis Services. Расширенные события — это замена SQL Server Profiler и предоставляет расширенные возможности устранения неполадок, недоступные в другом месте. Основные различия описаны здесь, чтобы помочь в миграции с SQL Server Profiler на расширенные события.

Средство расширенных событий

Расширенные события — это упрощенная, высокомасштабируемая и гибкая система обработки событий , встроенная в SQL Server.

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

В отличие от этого, события, доступные в sql Trace/SQL Server Profiler, ограничены функциями, доступными в SQL Server 2008R2 и более ранних версиях. Расширенные события предоставляют более широкие возможности фильтрации, полезные данные по умолчанию и функции, не предлагаемые в Profiler, такие как целевые объекты в памяти и агрегатные целевые объекты и поддержка нескольких целевых объектов.

Дополнительные сведения о расширенных событиях см. в разделе Расширенные события.

Средство sql Server Profiler

SQL Server Profiler — это графический пользовательский интерфейс, использующий трассировку SQL для отслеживания действий для экземпляра SQL Server или служб Analysis Services.

Sql Server Profiler может быть ресурсоемким, если неправильно настроен, влияя на производительность сервера, особенно при использовании на рабочих серверах. Он имеет встроенные шаблоны для поддержки быстрой трассировки.

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