2011-05-12 2 views
9

디버그 정보를 표시하기 위해 프로그래밍 방식으로 LINQ to SQL 또는 ADO.NET 쿼리의 실행 계획을 가져올 수 있습니까? 그렇다면 어떻게?LINQ to SQL/ADO.NET을 사용하여 실행 계획을 얻는 방법

+0

LINQ에 대해 구체적으로 알지 못하지만 프로그래밍 방식으로 쿼리 계획을 얻는 방법에 대한 솔루션입니다. LINQ에 대해서도 마찬가지로 생성 된 파일을 많이 수정해야 할 것 같습니다. 할 수 있고 복잡해야하지만 할 수 있어야합니다. http://social.msdn.microsoft.com/Forums/en-US/sqldatabaseengine/thread/aaf5e9c9-a222-414a-baed-5c0adcc329e2 – RThomas

+1

이것을 수행 했습니까? 어떤 점에서 다시 게시 할 수 있다면 솔루션을보고 싶습니다. – RThomas

답변

3

물론 두 가지가 필요합니다.

DbConnection, DbCommandDbDataReader의 사용자 지정 구현. 이를 사용하여 DB로 전송 된 모든 SQL을 가로 챌 수 있습니다. 당신은 기본적으로 그것을 설정하여 실행되는 모든 SQL을 기록하는 계층을 갖습니다. (우리는 앞으로 몇 달 안에이 분야에서 뭔가를 열 계획이므로 계속 지켜봐 주시기 바랍니다)

데이터의 의미를 표시하는 방법은 오픈 소스 일 것입니다 : http://data.stackexchange.com/stackoverflow/s/345/how-unsung-am-i (포함 된 실행 계획 옵션)


또 다른 접근법은 사실 다음에 proc 캐시를보고 진단을 수행하는 것입니다. sys.dm_exec_query_stats에는 확장 할 수있는 캐시 된 계획 핸들이 있습니다.

+0

오픈 소스 임원 계획 디스플레이에 대한 링크가 있습니까? –

+2

@Chad sure ... http://data.stackexchange.com/about –

+0

감사합니다. 큰 도움이됩니다. :디 –