GBN получил это прямо здесь; Все, что делает SQL Profiler - это выполняет хранимые процедуры на вашем SQL Server: эти процедуры запускают, настраивают и останавливают трассировки. Это означает, что вместо того, чтобы пытаться автоматизировать профилировщик, вы просто выполняете те же процедуры трассировки и получаете то же поведение.
Для автоматического запуска и остановки трассировки вы можете использовать SQL Profiler для создания скрипта; этот скрипт может быть выполнен из командного файла. Так что вы бы сделали что-то вроде этого;
- Открыть SQL Profiler
- Установите желаемую трассировку в профиле трассировки; выберите интересующие вас события и файл, который вы хотите отследить.
- Запустите трассировку, затем остановите ее.
- Перейти к файлу | Экспорт | Определение трассировки сценария ... и сохраните файл
.sql
Этот .sql
файл содержит код, который вы можете запустить; если вы откроете его, вы увидите код такого типа вверху;
exec @rc = sp_trace_create @TraceID output, 0, N'InsertFileNameHere', @maxfilesize, NULL
if (@rc != 0) goto error
-- Client side File and Table cannot be scripted
-- Set the events
declare @on bit
set @on = 1
exec sp_trace_setevent @TraceID, 14, 1, @on
exec sp_trace_setevent @TraceID, 14, 9, @on
exec sp_trace_setevent @TraceID, 14, 6, @on
exec sp_trace_setevent @TraceID, 14, 10, @on
exec sp_trace_setevent @TraceID, 14, 14, @on
exec sp_trace_setevent @TraceID, 14, 11, @on
This creates a trace that writes to a file.
Это создание трассы и присоединение событий к трассе.
Итак, теперь, чтобы начать трассировку, вы можете запланировать выполнение этого файла. Пакетный файл будет выглядеть примерно так:
osql -E -S MACHINE\INSTANCE -i "c:\my-trace-definition.sql"