Published on

April 21, 2024

Воспроизведение трассировки SQL Server для отладки и тестирования

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

Настройка таблицы для захвата данных трассировки SQL Server Profiler

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

CREATE TABLE [dbo].[TABLE1](
 [pkcol] [int] NOT NULL,
 [datacol1] [int] NULL,
 [datacol2] [int] NULL,
 [datacol3] [varchar](50) NULL,
 [datacol4] [datetime] NULL,
 CONSTRAINT [PK_TABLE1] PRIMARY KEY CLUSTERED ( [pkcol] ASC ) 
  WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
        ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

Мы будем запускать следующий скрипт во время работы трассировки, чтобы захватить активность INSERT, UPDATE, DELETE и SELECT:

INSERT INTO dbo.Table1(pkcol, datacol1, datacol2, datacol3, datacol4) 
 VALUES (1,1,1,'TEST',getdate()-1)

-- Еще INSERT операторы...

UPDATE dbo.TABLE1 
   SET datacol1=1+50000, datacol2=1+50000, datacol3='TESTUPD', datacol4=getdate()+365

-- Еще UPDATE операторы...

DELETE FROM dbo.TABLE1 WHERE pkcol=@delval

-- Еще DELETE операторы...

SELECT TOP 1 * FROM dbo.TABLE1 ORDER BY NEWID()

-- Еще SELECT операторы...

Запуск трассировки SQL Server

Для запуска трассировки SQL с использованием Profiler нам нужно настроить трассировку с определенными классами событий и столбцами данных. SQL Profiler предоставляет шаблон трассировки под названием “TSQL_Replay”, который включает эти настройки. Вот шаги для настройки трассировки:

  1. Запустите SQL Profiler и обновите “Имя трассировки” и выберите шаблон “TSQL_Replay”.
  2. Настройте трассировку для сохранения в файл.
  3. Добавьте столбцы CPU, Duration, Reads и Writes к событиям “RPC:Completed” и “SQL:BatchCompleted”.
  4. Нажмите кнопку “Запуск”, чтобы начать трассировку.
  5. Откройте тестовый скрипт из раздела настройки таблицы в новом окне запроса в SQL Server Management Studio и запустите его.
  6. Остановите трассировку в SQL Profiler.

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

Воспроизведение трассировки SQL Server

Для воспроизведения файла трассировки нам нужно повторно открыть его в SQL Profiler. После чтения файла пункты меню в меню “Воспроизведение” будут доступны. Вот шаги для воспроизведения трассировки:

  1. Выберите “Запуск” в меню “Воспроизведение”.
  2. В окне параметров воспроизведения настройте желаемые параметры, такие как сохранение в файл, отображение времени выполнения и указание сервера воспроизведения.
  3. Нажмите “OK”, чтобы начать воспроизведение.

Во время воспроизведения вы можете видеть результаты в отдельном разделе под исходной трассировкой. Трассировка воспроизведения также содержит событие “Статистика воспроизведения”, которое предоставляет сводку сеанса воспроизведения.

Путем воспроизведения трассировки SQL Server вы можете легко воспроизводить проблемы, тестировать загрузку данных и проверять время выполнения в контролируемой среде. Это может быть чрезвычайно полезно для целей отладки и тестирования производительности.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.