что такое профайлер sql
Выполнение приложения SQL Server Profiler
Приложение SQL Server Profiler можно запустить несколькими способами для получения данных трассировки в разных сценариях. Можно запустить приложение Приложение SQL Server Profiler из меню Пуск Windows 10, из меню Сервис в помощнике по настройке компонента Компонент Database Engine и из нескольких расположений в среде SQL Server Management Studio.
При первом запуске Приложение SQL Server Profiler и выборе в меню Файл пункта Создать трассировку приложение отображает диалоговое окно Соединение с сервером, где можно указать экземпляр SQL Server для подключения.
Запуск приложения SQL Server Profiler из меню «Пуск» Windows 10
Запуск 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 Profiler из редактора запросов
В редакторе запросов щелкните правой кнопкой мыши, а затем выберите пункт Трассировка запроса в приложении SQL Server Profiler.
Контекстом соединения является редактор соединения, шаблон трассировки — TSQL_SP, а применяемый фильтр SPID = окно запроса SPID.
Запуск приложения SQL Server Profiler из монитора активности
В мониторе активности щелкните панель Процессы, щелкните правой кнопкой процесс, который хотите профилировать, а затем выберите пункт Трассировка процесса в приложении SQL Server Profiler.
Когда выбран процесс, контекстом соединения является соединение обозревателя объектов при открытии монитора активности. Шаблон трассировки — это шаблон по умолчанию в зависимости от типа сервера, а идентификатор SPID равен идентификатору SPID для выбранного процесса.
Приложение SQL Server Profiler
Приложение SQL Server Profiler — это интерфейс для создания трассировок и управления ими, а также для анализа и воспроизведения полученных результатов. События сохраняются в файле трассировки, который затем может быть проанализирован или использован для воспроизведения определенных последовательностей шагов для выявления возникших проблем.
Трассировка SQL и Приложение SQL Server Profiler являются устаревшими. Пространство имен Microsoft.SqlServer.Management.Trace, которое содержит объекты трассировки Microsoft SQL Server и Replay, также устаревшее.
В будущей версии Microsoft SQL Server этот компонент будет удален. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.
Вместо этого используйте расширенные события. Дополнительные сведения о расширенных событиях см. в разделе Быстрое начало. Расширенные события в SQL Server и SSMS XEvent Profiler.
Приложение SQL Server Profiler для рабочих нагрузок Analysis Services поддерживается.
При попытке подключиться к Базе данных SQL Azure из SQL Server Profiler она некорректно выдает сообщение об ошибке, как показано ниже.
В сообщении должно объясняться, что База данных SQL Azure не поддерживается SQL Server Profiler.
Где находится профилировщик?
Захват и воспроизведение данных трассировки
Компонент\целевая рабочая нагрузка | Реляционный механизм | Службы Analysis Services |
---|---|---|
Запись трассировки | Графический пользовательский интерфейсрасширенных событий в среде SQL Server Management Studio | Приложение SQL Server Profiler |
Воспроизведение трассировки | Распределенное воспроизведение | Приложение SQL Server Profiler |
Использование SQL Server Profiler
Приложение Microsoft Приложение SQL Server Profiler — это графический пользовательский интерфейс для трассировки SQL, с помощью которого можно наблюдать за экземпляром компонента Компонент Database Engine или службами Analysis Services. Приложение позволяет собирать и сохранять данные о каждом событии в файле или в таблице для последующего анализа. Например, с помощью приложения можно следить за производственной средой, чтобы определить, какие хранимые процедуры снижают производительность из-за того, что выполняются слишком медленно. Приложение SQL Server Profiler используется для таких действий, как:
пошаговое выполнение проблемных запросов для поиска источника проблемы;
выявление и диагностика медленно работающих запросов;
контроль производительности 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 Database Engine. Примеры:
Все данные, создаваемые событием, отображаются в трассировке одной строкой. Эта строка пересекается столбцами данных, подробно описывающими данное событие.
EventClass
Класс событий — это тип трассируемого события. Класс событий содержит все данные, которые может сообщить событие. Примеры классов событий
EventCategory
DataColumn
Столбец данных — это атрибут классов событий, захваченных при трассировке. Поскольку класс событий определяет тип собираемых данных, не все столбцы данных применимы ко всем классам событий. Например, при трассировке, которая захватывает событие Блокировка: получено, столбец данных BinaryData содержит значение идентификатора блокированной страницы или строки, а столбец данных Integer Data не содержит никаких значений, поскольку он неприменим к захватываемому классу событий.
Шаблон
Шаблон определяет конфигурацию трассировки по умолчанию. А именно, он включает классы событий, которые нужно контролировать в Приложение SQL Server Profiler. Например, можно создать шаблон, указывающий используемые события, столбцы данных и фильтры. Шаблоны не выполняются, а сохраняются в файлах с расширением TDF. После сохранения шаблон управляет захватом данных, если запускается трассировка, основанная на этом шаблоне.
Трассировка
В SQL Server предусмотрено два способа трассировки экземпляра SQL Server: с помощью Приложение SQL Server Profiler или системных хранимых процедур.
Filter
При создании трассировки или шаблона можно определить критерии для фильтрации данных, собираемых событием. Чтобы трассировки не становились слишком большими, можно устанавливать фильтры, чтобы собирать только подмножества данных о событиях. Например, в трассировке можно указать определенные имена пользователей Microsoft Windows, тем самым уменьшив объем выходных данных.
Если фильтр не установлен, то на выход трассировки возвращаются все события выбранных классов событий.
Работа с 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 необходимо:
Настройка трассировки
Из вышеприведенного списка действий, самым сложным (а по своей сути — единственным) является настройка трассировки. Она имеет множество вариантов, попробуем разобрать основные из них.
Вкладка общие
Первым пунктом предлагается задать имя трассировки, имя можно оставить по умолчанию, но если будет открыто несколько трассировок, удобно именовать их чем-то осознанным.
Следующим пунктом предлагается выбрать шаблон трассировки из списка. В данном списке приводятся некоторые предопределенные шаблоны трассировок. Помимо этого, шаблоны можно дополнить своими, пользовательскими шаблонами. Данная возможность облегчит вам жизнь, поскольку каждый раз настраивать с нуля — не самое приятное занятие.
Вывод данных трассировки может происходить:
Последним пунктом настройки предлагается установить время остановки трассировки, если это требуется.
Перед продолжением настройки установим шаблон «Пустой» (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:
Приложение SQL Profiler
Служебная программа profiler не предназначена для написания скриптов трассировки. Дополнительные сведения см. в разделе Start SQL Server Profiler.
Синтаксис
Аргументы
По возможности используйте аутентификацию Windows..
/E
Задает подключение с использованием проверки подлинности Windows с учетными данными текущего пользователя.
/D database
Указывает имя базы данных, которая будет использоваться с соединением. Если база данных не указывается, этот аргумент выберет базу данных по умолчанию для указанного пользователя.
/B « trace_table_name «
Указывает таблицу трассировки для загрузки при запуске профайлера. Необходимо задать базу данных, пользователя или схему, а также таблицу.
/T» template_name «
Указывает шаблон, загружаемый для настройки трассировки. Имя шаблона должно быть заключено в кавычки. Имя шаблона должно находиться либо в системном каталоге шаблонов, либо в пользовательском каталоге шаблонов. В случае существования двух шаблонов с одним именем в обоих каталогах будет загружен шаблон, находящийся в системном каталоге. Если шаблон с указанным именем не существует, то будет загружен стандартный шаблон. Примечание. Расширение файла для шаблона (TDF) в аргументе template_name указывать не нужно. Пример:
/F» filename «
Указывает путь и имя файла трассировки, загружаемого при запуске профайлера. Полный путь и имя файла должны быть заключены в кавычки. Этот параметр нельзя использовать совместно с параметром /O.
/O « filename «
Указывает путь и имя файла, в который должны быть записаны результаты трассировки. Полный путь и имя файла должны быть заключены в кавычки. Этот параметр нельзя использовать совместно с параметром /F.
/L locale_ID
Недоступно.
/M « MM-DD-YY hh:mm:ss «
Задает дату и время остановки трассировки. Время остановки должно быть заключено в кавычки. Задайте время остановки согласно параметрам в следующей таблице.
Параметр | Определение |
---|---|
ММ | Месяц (2 разряда) |
DD | День (2 разряда) |
ГГ | Год (2 разряда) |
hh | Час (2 разряда), в 24-часовом формате |
ММ | Минуты (2 разряда) |
сс | Секунды (2 разряда) |
Формат «ММ-ДД-ГГ чч:мм:сс» можно использовать только в том случае, если включен параметр Использовать региональные настройки при показе значений даты и времени в приложении Приложение SQL Server Profiler. Если этот параметр не включен, следует использовать формат даты и времени «ГГГГ-ММ-ДД чч:мм:сс».
/R
Включает операцию переключения на файл продолжения трассировки.
/Z file_size
Определяет размер файла трассировки в мегабайтах (МБ). Размер по умолчанию составляет 5 МБ. Если включена операция переключения, все файлы продолжения будут ограничены значением, указанным в этом аргументе.
Remarks
Мониторинг Analysis Services при помощи SQL Server Profiler
Область применения: SQL Server Analysis Services
Azure Analysis Services
Power BI Premium
SQL Server Profiler, установленные с SQL Server Management Studio (SSMS), отслеживает события процесса ядра, такие как запуск пакета или транзакции. Он фиксирует данные об этих событиях, позволяя отслеживать активность сервера и базы данных (например, запросы пользователей или действия входа). данные профилировщика можно записать в SQLную таблицу или файл для последующего анализа. кроме того, можно воспроизвести события, записанные на том же или другом экземпляре Analysis Services, чтобы увидеть, что произошло. Можно воспроизводить события в режиме реального времени или в пошаговом режиме. Также полезно запускать события трассировки вместе со счетчиками производительности на одном и том же экземпляре. Приложение SQL Profiler может определять корреляцию между ними на основе времени и отображать их совместно на одной временной шкале. События трассировки предоставят подробные сведения, в то время как счетчики приложения «Производительность» дадут общее представление. Дополнительные сведения о создании и запуске трассировок см. в статье Создание трассировок профилировщика для воспроизведения (Analysis Services).
используйте SQL Server Profiler, чтобы:
Наблюдение за производительностью экземпляра компонента Analysis Services.
Отладка инструкций запроса.
Выявление запросов, которые выполняются медленно.
Тестовые инструкции запроса на этапе разработки проекта путем пошагового выполнения инструкций для подтверждения того, что код работает должным образом.
Устранение неполадок путем захвата событий в рабочей системе и воспроизведения их в тестовой системе. Этот подход полезно использовать при тестировании или отладке. Он позволяет пользователям использовать рабочую систему без помех.
Аудит и проверка действий, произошедших в экземпляре служб. Администратор по безопасности может просмотреть любое из событий аудита. Это включает успешную или неуспешную попытку входа, разрешения на доступ к инструкциям и объектам.
отображение данных о захваченных событиях на экране или сбор и сохранение данных о каждом событии в файле или SQL таблице для будущего анализа или воспроизведения. При воспроизведении данных можно повторно запустить сохраненные события в порядке их возникновения в реальном времени или пошаговом режиме.
Разрешения
для Azure Analysis Services и SQL Server Analysis Services члены роли администратора сервера Analysis Services могут просматривать все трассировки сервера и базы данных. Пользователи, не входящие в роль администратора сервера, могут просматривать трассировки только для баз данных, в которых они являются членами роли администратора базы данных.
для Power BI Premium пользователи могут просматривать трассировки только для тех баз данных, в которых они являются членами роли администратора базы данных. Доступны только те события, для которых требуются разрешения администратора базы данных. события трассировки, для которых требуются разрешения администратора сервера, недоступны для рабочей области Power BI Premium.
Использование приложения SQL Server Profiler
при использовании SQL Server Profiler учитывайте следующее.
для Power BI Premium рабочей области доступны только события базы данных. События сервера недоступны.
Определения трассировки хранятся в базе данных Analysis Services с помощью инструкции CREATE.
Несколько трассировок можно запустить одновременно.
Несколько соединений могут получать события из одной трассировки.
Трассировка может продолжаться, когда Analysis Services останавливается и перезапускается.
Пароли не выводятся в событиях трассировки, но заменяются * * * * * * в событии.
для оптимальной производительности используйте SQL Server Profiler, чтобы отслеживать только те события, которые наиболее интересны. Мониторинг слишком многих событий приводит к перегрузке и может привести к избыточному увеличению размера файла или таблицы трассировки, особенно при длительном мониторинге. Кроме того, для ограничения количества собираемых данных и предотвращения увеличения трассировок используйте фильтры.