로그 처리 예외 및 디버깅을 위해 내 ado.net 기반 응용 프로그램에서 서버로 보낸 SQL 문을 알고 싶습니다. MS SQL 연결 제공자를 처리하는 일반 DAL을 사용합니다.어떤 SQL 문이 ado.net 응용 프로그램 (MS SQL 공급자)에서 서버로 보냈습니다
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
및 많은 다른 사람을 그들이 SSMS 내에서 실행되는 경우 SQL 코드는 쿼리를 잡을 수 SO
에서 (SQL을 SO 검색하는 동안
나는이 쿼리를 발견 서버 관리 Studio)하지만 MS SQL 데이터베이스에 연결된 Ado.net 응용 프로그램에서 쿼리를 전송할 수 있습니까? atabase 서버.
내 질문 : 그들은이 코드를 사용 Ado.net 기반 응용 프로그램에서 전송하는 경우 I 쿼리를 잡을 수없는 이유
?
내 응용 프로그램에서 전송 된 실제 SQL 문을 잡을 수있는 다른 방법 (SQL 코드/C# 코드는) 거기에 (같은 내가 SQL의 profiller에서 무엇을 얻을) 당신의 DAL은 추상적 인 IDbConnection을과에 IDbCommand 인터페이스를 사용하는 경우
쿼리에 관계없이 실행 방법의 캐시 된 쿼리를 찾을 수 있습니다. 따라서 DMV 쿼리를 실행하기 전에 쿼리가 캐시되지 않거나 축출되었습니다. 이러한 목적으로 DMV를 사용하는 대신 확장 이벤트 또는 SQL 추적 (프로파일 러)을 사용하여 추적을 고려하십시오. –
SQL 프로파일 러는 온라인 상호 작용이 필요합니다. 로깅을위한 코드가 필요합니다. –
프로파일 러 파일 -> 내보내기 -> 스크립트 추적 정의 메뉴에서 무인 서버 측 추적을 위해 프로파일 러에서 추적을 스크립팅 할 수 있습니다. 스크립트를 수정하여 원하는 파일 이름 패턴, 파일 크기, 롤오버 등을 지정하십시오. –