Получение трассировки в SQL Server Profiler

Logo_1c_8_expertВ данной статье будет подробно описан процесс получения и сохранения трассировки в MS SQL Server с помощью приложения SQL Server Profiler. Для чего нужна трассировка и как ее потом использовать можно посмотреть, например, в данном разборе. Ниже только пример сбора трассировки в SQL Server 2012 (в более старых версиях SQL Server процесс получения трассировки аналогичен). Итак, поехали.

 

 

Запускаем SQL Server Profiler, сделать это можно, например, из SQL Server Management StudioСервис» (Tools) — «SQL Server Приложение Profiler»)

poluchenie-trassirovki-v-sql-server-profiler_001

Вводим учетные данные подключения к SQL Server (это нужно будет делать почти на каждом шаге), после чего откроется окно настройки трассировки.

В настройках выбираем события, которые будут анализироваться (список колонки «Events») и измерения в разрезе которых, будет происходить анализ событий (колонки таблицы трассировки).

Для выбора событий нужно установить галочку «Показывать все события» (Show All Events), а для выбора измерений анализа установить галочку «Показать все столбцы» (Show All Columns). Для удобства рекомендую сначала выбрать все интересующие вас события, а потом измерения.

poluchenie-trassirovki-v-sql-server-profiler_002

Для примера рассмотрим трассировку для события «RPC Completed» по одной базе «FTO_ZUP_CENTR_TEST». Настройка свойств трассировки выглядит так:

poluchenie-trassirovki-v-sql-server-profiler_003

В измерения анализа я обязательно включаю «DatabaseName», чтобы была возможность получить данные трассировки только по интересующей нас базе.
Для добавления фильтра нажимаем кнопку «Фильтры столбцов» (Column Filters)

poluchenie-trassirovki-v-sql-server-profiler_004

и настраиваем отбор по базе данных:

poluchenie-trassirovki-v-sql-server-profiler_005

Трассировка настроена! Для запуска используем кнопки управления трассировкой:

poluchenie-trassirovki-v-sql-server-profiler_006

Запускаем:

poluchenie-trassirovki-v-sql-server-profiler_007

Трассировка будет собирать данные о всех настроенных действиях с базой. Для того чтобы исключить лишнее, нужно:

  1. Остановить трассировку
  2. Поймать в отладчике интересующее событие
  3. Снова запустить трассировку
  4. Выполнить необходимый запрос или код в отладчике
  5. Опять остановить трассировку
  6. Отпустить отладку

Рассмотрим на примере.

Итак, трассировка на «паузе», останавливаемся в нужном месте кода.

poluchenie-trassirovki-v-sql-server-profiler_008

Запускаем трассировку и делаем «шаг» в отладчике.

poluchenie-trassirovki-v-sql-server-profiler_009

Трассировка получена! Приостанавливаем трассировку и  отпускаем отладку.

Для сохранения полученной трассировки в таблицу нужно выбрать в меню «Файл» (File) — «Сохранить как» (Save As) — «Таблица трассировки…» (Trace Table).

poluchenie-trassirovki-v-sql-server-profiler_010

Откроется окно выбора параметров сохранения:

poluchenie-trassirovki-v-sql-server-profiler_011

Здесь указываем имя таблицы и базу, в которую нужно сохранить трассировку.
Нажимаем «ОК», переходим в  SQL Server Management Studio , находим нашу базу, разворачиваем группировку таблицы и видим результат наших трудов.

poluchenie-trassirovki-v-sql-server-profiler_012

Собственно говоря, все! Теперь можно анализировать и обрабатывать данные как вам угодно.

Рассмотрим несколько примеров:

Пример №1: Выборка всех строк.

poluchenie-trassirovki-v-sql-server-profiler_013

Пример №2: Количество строк таблицы.

poluchenie-trassirovki-v-sql-server-profiler_014

Пример №3: Выборка строк, в которых значение «Duration» (продолжительность операции) больше 1000 миллисекунд.

poluchenie-trassirovki-v-sql-server-profiler_015

Аналогичным образом можно получить любую необходимую вам информацию из полученной трассировки.

Помогла ли вам данная статья?
Да, спасибо, все получилось.
Немного помогла.
Совсем не помогла.
Не то, что я искал(а).
Смотреть результаты
Запись опубликована в рубрике Microsoft SQL Server 2012, Эксперт 1С с метками , . Добавьте в закладки постоянную ссылку.




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

Ваш e-mail не будет опубликован.