Как воспроизвести трассировку SQL Profiler в другой базе данных? - PullRequest
5 голосов
/ 23 февраля 2010

Я записал трассировку (template: tsql_replay) на нашем производственном сервере для конкретной базы данных (отфильтрованная по имени базы данных). Я хотел бы воспроизвести его на нашем тестовом сервере, но, конечно, идентификатор базы данных отличается на тестовом сервере.

Пока я пытался загрузить файл трассировки в таблицу и изменить идентификатор базы данных с помощью запроса на обновление (см. Ниже), но Profiler выдает ошибку при попытке воспроизвести его (пропущенные события и т. Д.). Если я открою файл трассировки напрямую, он позволит мне воспроизвести его. Так или иначе, либо загрузка в таблицу, либо изменение идентификатора базы данных что-то портит.

Какова правильная процедура захвата трассировки для воспроизведения и изменения базы данных, на которой она должна воспроизводиться?

select * into trace_table
from fn_trace_gettable('f:\trace\trace100222.trc', default)
go
update trace_table
set databaseid = 47
where databaseid = 16

Ответы [ 3 ]

3 голосов
/ 25 августа 2010

Вы должны создать трассировку и сохранить ее как XML-файл трассировки для воспроизведения , затем открыть XML и изменить идентификатор базы данных в XML-файле трассировки.

Помните, что при трассировке с SQL 2008 по SQL 2000 вы не сможете установить дату и час окончания, поскольку возникнет ошибка даты и времени ODBC.

Но, кроме того, это работает, обычно.

1 голос
/ 04 апреля 2012

Прошло два года, но у меня возникла точно такая же проблема. Вот как я это решил:

  1. Запустить SQL Server Profiler
  2. Открыть файл трассировки
  3. Воспроизведите файл трассировки, чтобы убедиться, что он работает
  4. Сохранить файл трассировки в виде таблицы (T1)
  5. Обновите таблицу, где это необходимо (в моем случае мне пришлось обновить Логин для локального пользователя)
  6. Открыть обновленную таблицу трассировки
  7. Воспроизвести след

Отметим, что я провел трассировку в процессе сохранения файла трассировки в таблицу трассировки, и Profiler делает гораздо больше, чем просто использует fn_trace_gettable для записи содержимого трассировки в таблицу. Также кажется, что различные внутренние атрибуты добавляются в таблицу трассировки с помощью ряда команд sp_cursor, которые выглядят следующим образом:

exec sp_cursor 180150003,4,0,N'[dbo].[T1]',@EventClass=65528,@BinaryData=0xFFF...
0 голосов
/ 19 февраля 2011

У меня не было проблем с воспроизведением обычных файлов трассировки (.trc). Они не должны быть XML. Это в SQL 2005. Вы должны быть уверены, что захватили определенные события, чтобы иметь возможность воспроизвести трассировку. Шаблон трассировки TSQL_Replay поможет вам в этом.

При воспроизведении я склонен переключать системные идентификаторы воспроизведения на вкладке «Дополнительные параметры воспроизведения» в диалоговом окне воспроизведения. Я также склонен сохранять результаты в таблицу для последующего анализа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...