Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Профилировщик запросов в расширении MSSQL для Visual Studio Code записывает и отслеживает активность базы данных в режиме реального времени с помощью расширенных событий. Вы можете наблюдать динамическое действие T-SQL, определять медленные операции и находить узкие места производительности во время разработки.
Query Profiler поддерживает SQL Server (локальные или в облачных средах), Базу данных SQL Azure и базу данных SQL в конечных точках Fabric. Вы можете отслеживать активные сеансы, просматривать сведения о выполнении и понимать, как приложение взаимодействует с базой данных во время разработки и тестирования.
Подсказка
Профилировщик запросов в настоящее время находится в предварительной версии и может измениться на основе отзывов. Присоединитесь к сообществу в GitHub Discussions , чтобы поделиться идеями или сообщить о проблемах.
Функции
Профилировщик запросов в расширении MSSQL предоставляет следующие возможности:
- Сбор запросов и активности базы данных в режиме реального времени в сетке живых событий.
- Настройте новые сеансы профилирования с использованием выбора шаблона и именования сеансов.
- Управление жизненным циклом сеанса с помощью действий "Пуск", " Приостановка", " Возобновить", " Остановить" и "Очистить данные ".
- Запустите несколько одновременных сеансов профилирования и переключитесь между ними с помощью селектора сеансов.
- Фильтрация захваченных событий по тексту, имени базы данных, длительности и другим полям.
- Переключите автоматическую прокрутку, чтобы следовать последним событиям или проверять старые записи.
- Экспорт захваченных событий в CSV-файл.
- Откройте и просмотрите существующие
.xelфайлы в сетке профилировщика только для чтения. - Автоматически выберите подходящий шаблон для целевых объектов базы данных SQL Azure (
Standard_Azure). - Работает в Windows, macOS и Linux на всех поддерживаемых платформах Visual Studio Code.
Предпосылки
- Установите последнюю версию расширения MSSQL для Visual Studio Code.
- Активное соединение с поддерживаемым экземпляром SQL Server или базой данных SQL Azure.
- Соответствующие разрешения сервера. Для запуска сеанса профилирования требуется
ALTER ANY EVENT SESSIONразрешение (или эквивалентное).
Запуск профилировщика запросов
Вы можете запустить профилировщик запросов из представления "Подключения" или палитры команд.
В представлении "Подключения":
В представлении "Подключения" щелкните правой кнопкой мыши экземпляр SQL Server.
Выберите "Запустить профилировщик запросов " (предварительная версия)".
Из палитры команд:
Откройте палитру команд (CTRL+SHIFT+P или CMD+SHIFT+P).
Выберите MSSQL: запуск профилировщика запросов.
Если подключение в настоящее время не активно, выберите подключение при появлении запроса.
Откроется панель профилировщика запросов, привязанная к выбранному соединению.
Создание сеанса профилирования
При открытии панели профилировщика запросов без активного сеанса отображается экран "Новый сеанс ".
Проверьте или измените подключение для сеанса профилирования.
Выберите шаблон из раскрывающегося списка. Доступные шаблоны зависят от целевого объекта подключения.
Шаблоны SQL Server (локальная среда):
Template События, захваченные Description Standard_OnPrem sql_batch_completed,sql_batch_starting,rpc_starting,rpc_completed,sp_statement_starting,sp_statement_completed,attention,existing_connection,login,logoutПолный шаблон профилирования, который фиксирует пакет SQL и действие RPC, события уровня инструкции хранимой процедуры и события подключения. Предоставляет наиболее подробное представление активности сервера. TSQL_OnPrem sql_batch_completed,sql_batch_starting, ,existing_connection,loginlogoutЛегковесный шаблон, ориентированный на пакетную обработку T-SQL. Записывает события начала и завершения пакетных процессов без учета деталей хранимой процедуры или RPC, что снижает нагрузку в сценариях, где требуется только активность запроса верхнего уровня. TSQL_Locks sql_batch_completed,sql_batch_starting,lock_acquiredlock_releasedexisting_connectionloginlogoutФиксирует события пакета T-SQL вместе с событиями захвата и освобождения блокировки. Полезно для диагностики проблем блокировки, взаимоблокировок и конфликтов блокировки. TSQL_Duration sql_batch_completed(отфильтровано: длительность >= 1000 микросекунд),sql_batch_starting, ,existing_connection,loginlogoutЗаписывает пакетные события T-SQL, но фильтрует sql_batch_completed, чтобы включить только пакеты, которые занимают 1 миллисекунду или больше. Полезно для выявления медленных запросов при снижении шума от быстро выполняющихся операций.База данных SQL Azure и база данных SQL в шаблонах Fabric:
Template События, захваченные Description Standard_Azure sql_batch_completed,sql_batch_starting,rpc_startingrpc_completedattentionexisting_connectionloginlogoutСтандартный шаблон профилирования для базы данных SQL Azure. Фиксирует активность SQL-пакетов и RPC вместе с событиями подключения. Аналогично Standard_OnPrem, но без событий на уровне выражений для хранимых процедур. TSQL_Azure sql_batch_completed,sql_batch_starting, ,existing_connection,loginlogoutУпрощенный шаблон профилирования T-SQL для базы данных SQL Azure. Записывает события пакетного выполнения без сведений о RPC или хранимой процедуре. Замечание
База данных Azure SQL и база данных SQL в шаблонах Fabric создают сеансы, ограниченные базой данных (
ON DATABASE) вместо сервера. Шаблоны с фильтром по блокировке и длительности недоступны для этих подключений.Введите имя сеанса. Нажмите клавишу ВВОД , чтобы подтвердить или скрыться , чтобы отменить.
Панель переходит к просмотру живых событий, и сеанс профилировщика создается с помощью службы SQL Tools Service.
Мониторинг трансляций
При запуске сеанса профилирования потоки сетки событий записывают события в хронологическом порядке. В сетке отображаются следующие столбцы на основе выбранного шаблона:
-
EventClass: тип записанного события, например
sql_batch_startingилиrpc_completed. - TextData: инструкция T-SQL или текст события.
- ApplicationName: приложение, создающее событие.
- LoginName: имя входа, связанное с событием.
- ClientProcessID: идентификатор процесса клиента.
- SPID: идентификатор процесса сервера.
- StartTime: Timestamp события.
- ЦП: время, затраченное на ЦП.
- Чтение: количество логических операций чтения.
- Записи: количество логических операций записи.
- Длительность: время выполнения события.
- DatabaseName: база данных, в которой произошло событие.
- HostName: главный компьютер, создающий событие.
Действия панели инструментов
Панель инструментов предоставляет следующие элементы управления для активного сеанса:
| Действие | Description |
|---|---|
| Новый сеанс | Открывает новый поток сеанса для создания другого сеанса профилирования. |
| Начало | Возобновляет потоковую передачу событий для приостановленного или остановленного сеанса. |
| Остановить | Останавливает сеанс профилирования. Новые события не прибывают, но захваченные события остаются видимыми для просмотра, фильтрации и экспорта. |
| Пауза | Временно останавливает обновление сетки. В пользовательском интерфейсе показан индикатор приостановки . |
| Очистка данных | Очищает все строки из сетки текущего сеанса. Если сеанс по-прежнему запущен, новые события продолжают заполнять сетку. |
| Очистка всех фильтров | Удаляет все активные фильтры столбцов и восстанавливает полное представление событий. |
| Быстрая фильтрация всех столбцов... | Выполняет поиск по всем столбцам, чтобы быстро найти соответствующие события. |
| Экспорт в CSV | Экспортирует захваченные события текущего сеанса в CSV-файл. |
| Автоматическая прокрутка | Переключается, выполняется ли прокрутка сетки до последней строки при поступлении новых событий. Автоматическая прокрутка включена по умолчанию для новых сеансов. |
Фильтровать события
Используйте фильтры столбцов, чтобы сузить сетку событий и сосредоточиться на соответствующем действии. Каждый заголовок столбца содержит значок фильтра, который открывает фильтр, характерный для типа данных этого столбца.
Фильтрация по значениям столбцов (например, DatabaseName или ApplicationName)
Выберите значок фильтра в заголовке столбца, например
DatabaseName.В раскрывающемся списке фильтров используйте поле поиска для поиска значений или выберите и отключите определенные записи из списка флажков.
Нажмите кнопку "Применить" , чтобы отфильтровать сетку. Нажмите кнопку "Очистить ", чтобы удалить фильтр для этого столбца.
Фильтрация по числовым значениям (например, Duration)
Выберите значок фильтра в числовом столбце, например
Duration.Выберите оператор сравнения (например,
=,>, )<и введите числовое пороговое значение.Нажмите кнопку "Применить" , чтобы отфильтровать сетку.
Если один или несколько фильтров активны, чипсы фильтров отображаются под панелью инструментов, показывающую, какие столбцы фильтруются. Выберите X на микросхеме, чтобы удалить этот фильтр, или нажмите кнопку "Очистить все фильтры " на панели инструментов, чтобы сбросить все фильтры одновременно.
Замечание
Фильтры применяют клиентская сторона как к отображаемым событиям, так и к новым событиям, которые передаются во время сеанса.
Управление несколькими сеансами
Профилировщик запросов поддерживает одновременный запуск нескольких сеансов профилирования, каждый из которых имеет собственное подключение, шаблон и буфер событий.
Выберите новый сеанс на панели инструментов, чтобы создать другой сеанс. Новый сеанс может нацелиться на то же или другое подключение.
Используйте раскрывающийся список селектора сеансов для переключения между сеансами. Каждый сеанс отображает своё состояние (работает, приостановлен или остановлен) с помощью визуального индикатора.
При переключении сеансов:
- Сетка событий обновляется для отображения захваченных событий выбранного сеанса.
- Действия панели инструментов работают на выбранном сеансе.
Экспорт захваченных событий
Вы можете экспортировать захваченные события из сеанса профилирования в CSV-файл для автономной проверки или совместного использования.
Выберите "Экспорт в CSV" на панели инструментов. Экспорт доступен, независимо от того, идет ли сеанс, приостановлен или остановлен.
Выберите расположение и имя файла для CSV-файла.
Экспортируемый файл содержит события, видимые в сетке сеанса.
Открытие существующего XEL-файла
Вы можете открыть и просмотреть ранее собранные файлы трассировки расширенных событий (.xel) в сетке профилировщика запросов.
Откройте палитру команд (CTRL+SHIFT+P или CMD+SHIFT+P).
Выберите MSSQL: Open Profiler XEL file....
Перейдите к
.xelфайлу и выберите его.
Файл открывается в панели профайлера в режиме только для чтения. События загружаются и отображаются в той же сетке с возможностями фильтрации. Элементы управления "Пуск", "Приостановка" и "Остановить" недоступны, так как файл не является динамическим сеансом.
Поддерживаемые сценарии
Профилировщик запросов работает со следующими целевыми объектами SQL Server и Azure SQL:
| Цель | Поддерживаемые шаблоны |
|---|---|
| SQL Server (локальные, виртуальные машины, контейнеры) | Standard_OnPrem, TSQL_OnPrem, TSQL_Locks, TSQL_Duration |
| База данных SQL Azure | Standard_Azure |
Замечание
При выборе неподдерживаемого шаблона или попытке сеанса уровня сервера в Базе данных SQL Azure профилировщик запросов отображает целевое сообщение об ошибке и предлагает соответствующий шаблон.
Ограничения
- Интеграция ИИ или GitHub Copilot в этой предварительной версии не выполняется.
- Корреляция между базами данных или между серверами не превышает то, что предоставляют расширенные события и текущие шаблоны.
- Отсутствует возможность сохранения или загрузки предустановок фильтров.
- Воспроизведение трассировок или генерация скриптов из захваченных событий не поддерживается.
- Нет автономного анализа без существующего
.xelфайла или динамического подключения. - Конечные точки Управляемого экземпляра SQL Azure не поддерживаются в этой предварительной версии.
Отзывы и поддержка
Если у вас есть идеи, отзывы или хотите взаимодействовать с сообществом, присоединитесь к обсуждению https://aka.ms/vscode-mssql-discussions. Чтобы сообщить об ошибке, посетите сайт https://aka.ms/vscode-mssql-bug. Чтобы запросить новую функцию, перейдите в раздел https://aka.ms/vscode-mssql-feature-request.