Я знаком с серверной трассировкой для SQL Server, где записи трассировки записываются сервером в файл. Я хотел бы знать, как с помощью System.Data.SqlClient
воспроизвести то, что делает SQL Server Profiler.
Очевидно, что SQL Server Profiler использует трассировку на стороне клиента, которая не требует создания каких-либо файлов трассировки на сервере. Шпионаж в Profiler показывает, что при создании трассировки он передает NULL
вместо имени файла трассировки:
exec sp_trace_create @p1 output,1,NULL,NULL,NULL
Кстати, передача пустого имени файла в sp_trace_create не задокументирована в MSDN .
Полагаю, Profiler сохраняет соединение открытым и считывает с него входящие записи трассировки. Это задокументировано где-либо официально или иначе?