Вы когда-нибудь сталкивались с определенной проблемой в вашей производственной среде 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”, который включает эти настройки. Вот шаги для настройки трассировки:
- Запустите SQL Profiler и обновите “Имя трассировки” и выберите шаблон “TSQL_Replay”.
- Настройте трассировку для сохранения в файл.
- Добавьте столбцы CPU, Duration, Reads и Writes к событиям “RPC:Completed” и “SQL:BatchCompleted”.
- Нажмите кнопку “Запуск”, чтобы начать трассировку.
- Откройте тестовый скрипт из раздела настройки таблицы в новом окне запроса в SQL Server Management Studio и запустите его.
- Остановите трассировку в SQL Profiler.
После выполнения этих шагов у вас должен быть файл трассировки, который можно использовать для воспроизведения.
Воспроизведение трассировки SQL Server
Для воспроизведения файла трассировки нам нужно повторно открыть его в SQL Profiler. После чтения файла пункты меню в меню “Воспроизведение” будут доступны. Вот шаги для воспроизведения трассировки:
- Выберите “Запуск” в меню “Воспроизведение”.
- В окне параметров воспроизведения настройте желаемые параметры, такие как сохранение в файл, отображение времени выполнения и указание сервера воспроизведения.
- Нажмите “OK”, чтобы начать воспроизведение.
Во время воспроизведения вы можете видеть результаты в отдельном разделе под исходной трассировкой. Трассировка воспроизведения также содержит событие “Статистика воспроизведения”, которое предоставляет сводку сеанса воспроизведения.
Путем воспроизведения трассировки SQL Server вы можете легко воспроизводить проблемы, тестировать загрузку данных и проверять время выполнения в контролируемой среде. Это может быть чрезвычайно полезно для целей отладки и тестирования производительности.