이것은 Profiler 또는 Entity Framework의 버그입니까?

이것은 Profiler 또는 Entity Framework의 버그입니까?

저장 프로시저 및 SQL Server 2008 SP1과 함께 Entity Framework 4 사용... SQL Server 프로파일러(TSQL_SP 템플릿)를 실행할 때 저장 프로시저 호출과 해당 문을 표시하는 줄에는 DatabaseID = 1(마스터)에서 실행되었다고 나와 있지만 실제로 내 응용 프로그램 데이터베이스(ID = 8)에서 발생합니다. 프로시저가 제대로 실행되고 데이터를 반환하며 내 응용 프로그램 데이터베이스에만 존재하는데 프로파일러가 해당 행을 마스터에 있는 것으로 표시하는 이유는 무엇입니까? 이것은 Profiler의 버그입니까? EF4의 버그인가요?

SQL 2000 인스턴스에 대해 동일한 코드를 실행하면 프로파일러가 응용 프로그램의 데이터베이스 ID를 올바르게 표시합니다.

업데이트: 이제 SQL Server 2008 R2를 새로 설치하여 이 문제를 테스트했는데 여전히 Master에서 발생한 것처럼 표시됩니다.

업데이트 2: 이 내용은 Connect에 기록되었습니다.https://connect.microsoft.com/SQLServer/feedback/details/572246/profiler-reports-ef4-queries-as-occurring-in-master.

답변1

해결 방법을 배웠습니다.StackOverflow의 Olaf Tinnemeyer: 변경다중ActiveResultSet연결 문자열의 옵션거짓프로필러가 응용 프로그램 데이터베이스에서 실행되는 쿼리를 올바르게 보고하도록 합니다.

나는 여전히 이것이 SQL 2008의 버그라고 생각하지만 지금은 해결 방법을 사용할 수 있습니다.

관련 정보