Меню

sql server profiler настройка

Работа с 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 необходимо:

  1. Открыть приложение SQL Server Profiler
  2. Выбрать пункт основного меню «Файл» (File), в нем «Создать трассировку» (New Trace)
  3. В открывшемся диалоге подключиться к нужному экземпляру SQL Server
  4. В открывшемся окне настроить трассировку
  5. Запустить трассировку

Настройка трассировки

Из вышеприведенного списка действий, самым сложным (а по своей сути — единственным) является настройка трассировки. Она имеет множество вариантов, попробуем разобрать основные из них.

Вкладка общие

Первым пунктом предлагается задать имя трассировки, имя можно оставить по умолчанию, но если будет открыто несколько трассировок, удобно именовать их чем-то осознанным.

Следующим пунктом предлагается выбрать шаблон трассировки из списка. В данном списке приводятся некоторые предопределенные шаблоны трассировок. Помимо этого, шаблоны можно дополнить своими, пользовательскими шаблонами. Данная возможность облегчит вам жизнь, поскольку каждый раз настраивать с нуля — не самое приятное занятие.

Вывод данных трассировки может происходить:

  1. На экран в новом окне — вывод происходит на экран, при этом в дальнейшем трассировку можно будет сохранить как в файл, так и в таблицу в СУБД (даже если опции записи в файл и/или таблицу не были включены)
  2. Записывать в файл на диске (опционально) — дополнительно к выбранным опциям, данные будут записываться в файл на диске. Далее этот файл можно открыть через профайлер. Эта опция удобна для сохранения и/или для передачи трассировки.
  3. Записывать в таблицу базы данных (опционально) — дополнительно к выбранным опциям, данные будут записываться в таблицу базы данных. Далее, посредством возможностей предоставляемых СУБД, можно произвести анализ данных, например, найти самые длительные события или просуммировать общую длительность.

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

Перед продолжением настройки установим шаблон «Пустой» (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 Server Profiler SQL Server Profiler

ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server База данных SQL Azure (только Управляемый экземпляр) Azure Synapse Analytics (Хранилище данных SQL) Parallel Data Warehouse APPLIES TO: SQL Server Azure SQL Database (Managed Instance only) Azure Synapse Analytics (SQL DW) Parallel Data Warehouse

Приложение SQL Server Profiler SQL Server Profiler — это интерфейс для создания трассировок и управления ими, а также для анализа и воспроизведения полученных результатов. is an interface to create and manage traces and analyze and replay trace results. События сохраняются в файле трассировки, который затем может быть проанализирован или использован для воспроизведения определенных последовательностей шагов для выявления возникших проблем. Events are saved in a trace file that can later be analyzed or used to replay a specific series of steps when trying to diagnose a problem.

Трассировка SQL и Приложение SQL Server Profiler SQL Server Profiler являются устаревшими. SQL Trace and Приложение SQL Server Profiler SQL Server Profiler are deprecated. Пространство имен Microsoft.SqlServer.Management.Trace, которое содержит объекты трассировки Microsoft SQL Server и Replay, также устаревшее. The Microsoft.SqlServer.Management.Trace namespace that contains the Microsoft SQL Server Trace and Replay objects are also deprecated.

Этот компонент находится в режиме обслуживания и может быть удален в будущей версии Microsoft SQL Server. This feature is in maintenance mode and may be removed in a future version of Microsoft SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

Приложение SQL Server Profiler SQL Server Profiler для рабочей нагрузки служб Analysis Services не устарел и будет по-прежнему поддерживаться. for Analysis Services workloads is NOT deprecated, and will continue to be supported.

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

В SQL Server Management Studio SQL Server Management Studio профилировщик можно запустить несколькими способами. You can start the Profiler in a number of ways from within SQL Server Management Studio SQL Server Management Studio . В этом разделе описано, как запустить профилировщик. Here is a topic that lists the ways to start the Profiler.

Захват и воспроизведение данных трассировки Capture and replay trace data

В следующей таблице показаны компоненты, с помощью которых мы рекомендуем выполнять захват и воспроизведение данных трассировки в SQL Server 2019 (15.x) SQL Server 2019 (15.x) . The following table shows the features we recommend using in SQL Server 2019 (15.x) SQL Server 2019 (15.x) to capture and replay your trace data.

Компонент\целевая рабочая нагрузка Feature\Target Workload Реляционный механизм Relational Engine Службы Analysis Services Analysis Services
Запись трассировки Trace Capture Графический пользовательский интерфейс расширенных событий в среде SQL Server Management Studio SQL Server Management Studio Extended Events graphical user interface in SQL Server Management Studio SQL Server Management Studio Приложение SQL Server Profiler SQL Server Profiler
Воспроизведение трассировки Trace Replay Распределенное воспроизведение Distributed Replay Приложение SQL Server Profiler SQL Server Profiler

Приложение SQL Server Profiler SQL Server Profiler

Приложение Microsoft Приложение SQL Server Profiler SQL Server Profiler — это графический пользовательский интерфейс для трассировки SQL, с помощью которого можно наблюдать за экземпляром компонента Компонент Database Engine Database Engine или службами Analysis Services. Microsoft Приложение SQL Server Profiler SQL Server Profiler is a graphical user interface to SQL Trace for monitoring an instance of the Компонент Database Engine Database Engine or Analysis Services. Приложение позволяет собирать и сохранять данные о каждом событии в файле или в таблице для последующего анализа. You can capture and save data about each event to a file or table to analyze later. Например, с помощью приложения можно следить за производственной средой, чтобы определить, какие хранимые процедуры снижают производительность из-за того, что выполняются слишком медленно. For example, you can monitor a production environment to see which stored procedures are affecting performance by executing too slowly. Приложение SQL Server Profiler SQL Server Profiler используется для таких действий, как: is used for activities such as:

пошаговое выполнение проблемных запросов для поиска источника проблемы; Stepping through problem queries to find the cause of the problem.

выявление и диагностика медленно работающих запросов; Finding and diagnosing slow-running queries.

перехват серии инструкций Transact-SQL Transact-SQL , ведущих к проблеме. Capturing the series of Transact-SQL Transact-SQL statements that lead to a problem. Сохраненную трассировку затем можно использовать для моделирования и диагностики проблемы на тестовом сервере; The saved trace can then be used to replicate the problem on a test server where the problem can be diagnosed.

контроль производительности SQL Server SQL Server для настройки рабочих нагрузок. Monitoring the performance of SQL Server SQL Server to tune workloads. Дополнительные сведения о настройке физической структуры базы данных для рабочих нагрузок см. в разделе Database Engine Tuning Advisor. For information about tuning the physical database design for database workloads, see Database Engine Tuning Advisor.

Анализ счетчиков производительности для диагностики проблем. Correlating performance counters to diagnose problems.

Приложение Приложение SQL Server Profiler SQL Server Profiler поддерживает также аудит действий, выполняемых в экземплярах SQL Server SQL Server . Приложение SQL Server Profiler SQL Server Profiler also supports auditing the actions performed on instances of SQL Server SQL Server . В ходе аудита ведется запись действий, связанных с безопасностью, для дальнейшего просмотра администратором безопасности. Audits record security-related actions for later review by a security administrator.

Основные понятия приложения SQL Server Profiler SQL Server Profiler concepts

Для использования Приложение SQL Server Profiler SQL Server Profiler необходимо понимать термины, описывающие работу данного средства. To use Приложение SQL Server Profiler SQL Server Profiler , you need to understand the terms that describe the way the tool functions.

Понимание трассировки SQL особенно полезно при работе с Приложение SQL Server Profiler SQL Server Profiler . Understanding SQL Trace really helps when working with Приложение SQL Server Profiler SQL Server Profiler . Дополнительные сведения см. в статье SQL Trace. For more information, see SQL Trace.

Событие Event
Событие — это действие экземпляра Компонент SQL Server Database Engine SQL Server Database Engine . An event is an action generated within an instance of Компонент SQL Server Database Engine SQL Server Database Engine . Примеры: Examples of these are:

  • подключения пользователей, сбои, отключения; Login connections, failures, and disconnections.
  • Инструкции Transact-SQL Transact-SQL , SELECT , INSERT , UPDATE и DELETE . Transact-SQL Transact-SQL SELECT , INSERT , UPDATE , and DELETE statements.
  • состояние пакетов вызова удаленных процедур (RPC); Remote procedure call (RPC) batch status.
  • запуск или завершение хранимой процедуры; The start or end of a stored procedure.
  • инструкции запуска или завершения в хранимых процедурах; The start or end of statements within stored procedures.
  • запуск или завершение пакета SQL; The start or end of an SQL batch.
  • запись ошибки в журнал SQL Server SQL Server ; An error written to the SQL Server SQL Server error log.
  • получение блокировки или освобождение объекта базы данных; A lock acquired or released on a database object.
  • открытый курсор; An opened cursor.
  • проверки права доступа. Security permission checks.

Все данные, создаваемые событием, отображаются в трассировке одной строкой. All of the data generated by an event is displayed in the trace in a single row. Эта строка пересекается столбцами данных, подробно описывающими данное событие. This row is intersected by data columns that describe the event in detail.

EventClass EventClass
Класс событий — это тип трассируемого события. An event class is a type of event that can be traced. Класс событий содержит все данные, которые может сообщить событие. The event class contains all of the data that can be reported by an event. Примеры классов событий: Examples of event classes are the following:

  • SQL:BatchCompletedSQL:BatchCompleted
  • Аудит входа в системуAudit Login
  • Аудит выхода из системыAudit Logout
  • Lock:AcquiredLock:Acquired
  • Lock:ReleasedLock:Released

EventCategory EventCategory
Категория событий определяет способы группировки событий в Приложение SQL Server Profiler SQL Server Profiler . An event category defines the way events are grouped within Приложение SQL Server Profiler SQL Server Profiler . Например, все классы событий блокировок группируются в категории событий Блокировки . For example, all lock events classes are grouped within the Locks event category. Однако категории событий существуют только в Приложение SQL Server Profiler SQL Server Profiler . However, event categories only exist within Приложение SQL Server Profiler SQL Server Profiler . Этот термин не отображает способ группировки событий ядра. This term does not reflect the way Engine events are grouped.

DataColumn DataColumn
Столбец данных — это атрибут классов событий, захваченных при трассировке. A data column is an attribute of an event classes captured in the trace. Поскольку класс событий определяет тип собираемых данных, не все столбцы данных применимы ко всем классам событий. Because the event class determines the type of data that can be collected, not all data columns are applicable to all event classes. Например, при трассировке, захватывающей класс событий Lock:Acquired , столбец данных BinaryData содержит значение идентификатора блокированной страницы или строки, а столбец данных Integer Data не содержит никаких значений, поскольку он неприменим к захватываемому классу событий. For example, in a trace that captures the Lock:Acquired event class, the BinaryData data column contains the value of the locked page ID or row, but the Integer Data data column does not contain any value because it is not applicable to the event class being captured.

Шаблон Template
Шаблон определяет конфигурацию трассировки по умолчанию. A template defines the default configuration for a trace. А именно, он включает классы событий, которые нужно контролировать в Приложение SQL Server Profiler SQL Server Profiler . Specifically, it includes the event classes you want to monitor with Приложение SQL Server Profiler SQL Server Profiler . Например, можно создать шаблон, указывающий используемые события, столбцы данных и фильтры. For example, you can create a template that specifies the events, data columns, and filters to use. Шаблоны не выполняются, а сохраняются в файлах с расширением TDF. A template is not executed, but rather is saved as a file with a .tdf extension. После сохранения шаблон управляет захватом данных, если запускается трассировка, основанная на этом шаблоне. Once saved, the template controls the trace data that is captured when a trace based on the template is launched.

Трассировка Trace
Трассировка захватывает данные на основании выбранных классов событий, столбцов данных и фильтров. A trace captures data based on selected event classes, data columns, and filters. Например, можно создать трассировку для контроля ошибок исключений. For example, you can create a trace to monitor exception errors. Для этого выберите класс событий Exception и столбцы данных Error, Stateи Severity . To do this, you select the Exception event class and the Error, State, and Severity data columns. Необходимо собирать данные этих трех столбцов, чтобы результаты трассировки содержали значимые данные. Data from these three columns needs to be collected in order for the trace results to provide meaningful data. Теперь можно запустить трассировку, настроенную таким образом, и собирать данные обо всех событиях класса Exception на данном сервере. You can then run a trace, configured in such a manner, and collect data on any Exception events that occur in the server. Данные трассировки можно сохранить или немедленно проанализировать. Trace data can be saved, or used immediately for analysis. Трассировки можно воспроизводить впоследствии, хотя некоторые события, например класса Исключение , воспроизвести нельзя. Traces can be replayed at a later date, although certain events, such as Exception events, are never replayed. Можно также сохранить трассировку как шаблон для построения аналогичных трассировок в будущем. You can also save the trace as a template to build similar traces in the future.

В SQL Server SQL Server предусмотрено два способа трассировки экземпляра SQL Server SQL Server : с помощью Приложение SQL Server Profiler SQL Server Profiler или системных хранимых процедур. SQL Server SQL Server provides two ways to trace an instance of SQL Server SQL Server : you can trace with Приложение SQL Server Profiler SQL Server Profiler , or you can trace using system stored procedures.

Filter Filter
При создании трассировки или шаблона можно определить критерии для фильтрации данных, собираемых событием. When you create a trace or template, you can define criteria to filter the data collected by the event. Чтобы трассировки не становились слишком большими, можно устанавливать фильтры, чтобы собирать только подмножества данных о событиях. To keep traces from becoming too large, you can filter them so that only a subset of the event data is collected. Например, в трассировке можно указать определенные имена пользователей Microsoft Windows, тем самым уменьшив объем выходных данных. For example, you can limit the Microsoft Windows user names in the trace to specific users, thereby reducing the output data.

Если фильтр не установлен, то на выход трассировки возвращаются все события выбранных классов событий. If a filter is not set, all events of the selected event classes are returned in the trace output.

источник

Читайте также:  мультитроникс vc731 настройки топливо видео

Добавить комментарий

Adblock
detector