Я хочу знать, какой оператор sql отправлен на сервер из моего приложения на основе ado.net для регистрации исключений и отладки. Я использую общий DAL, который обрабатывает поставщика соединений MS SQL.какой оператор sql отправлен на сервер из приложения ado.net (поставщик MS SQL)
Я нашел этот запрос при поиске SO:
SELECT deqs.last_execution_time AS [Time], dest.TEXT AS [Query]
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
ORDER BY deqs.last_execution_time DESC
ссылка: SQL Server Query Trace
и многие другие в SO
Этот код SQL может поймать запросы, если они выполняются внутри SSMS (SQL сервер Management Studio)
, но НЕ МОЖЕТ улавливать запросы, если они отправлены из моего приложения Ado.net, связанного с MS sql d atabase.
Мой вопрос:
Почему я не могу поймать запросы, если они отправлены из приложения на основе ADO.NET с помощью этого кода?
Есть другой способ (SQL-код/C# код), чтобы поймать заявления реального SQL, посланные из моего приложения (например, то, что я получаю в SQL profiller)
Запрос будет найти запрос, который кэшируется, независимо от того, как выполняется. Таким образом, возможно, запрос не кэшируется или был выдворен до запуска DMV-запроса. Вместо использования DMV для этой цели рассмотрите трассировку с использованием Extended Events или SQL Trace (Profiler). –
SQL-профилировщик нуждается в интерактивном взаимодействии, мне нужен код для ведения журнала –
Вы можете создать сценарий трассировки из профилировщика для автоматической трассировки на стороне сервера из меню «Файл профилирования» -> «Экспорт» -> «Определение трассировки сценария». Измените сценарий, чтобы указать желаемый шаблон имени файла, размер файла, опрокидывание и т. Д. –