실행되지 않습니다 SQL 서버 프로파일 러는 호출되는 저장 프로 시저를 보여줍니다 실제로 나는 그것을 요약하려고합니다 문제가
내가 SQL Server 프로파일 러는 저장 프로 시저의 호출을 추적하기 위해 실행합니다. 저장 프로 시저가 호출되고 있지만 실제로 실행되고 있지 않음을 보여줍니다.나는 저장 프로 시저가 동시성을 피하기 위해 열을 업데이트하고 저장 프로 시저에 대한 각 호출이 다른 (업데이트 된) 매개 변수를 사용해야하기 때문에 프로파일 러에서 SSMS로 호출을 직접 실행하면 괜찮습니다. 두 번째로 실행하면 처음에는 실제로 실행되지 않았 음을 보여주는 동시성 문제가 발생합니다.
왜 이런 일이 발생했는지에 대한 아이디어가 부족했습니다. SQL Server 프로파일 러는 저장 프로 시저가 호출되었지만 실제로 호출되지는 않음을 보여줍니다!
감사합니다.
편집 : 추가 정보를
- 저장 프로 시저 우리가 프로파일 쇼는 대상에서 DB는 프로파일 러 추적 똑같은 줄을 실행하면 로컬
- , 저장 프로 시저가 완벽하게 작동 완벽하게 작동합니다.
- Entity Framework에서 실행합니다. 그러나 다른 저장 프로 시저를 호출하는 저장 프로 시저를 호출하기 전에 문제가있는 저장 프로 시저를 호출 한 다음 변경 내용을 저장합니다. 이전 저장 프로 시저의 변경 사항도 저장됩니다.
- 저장 프로 시저를 로컬로 호출 할 때마다 동일한 값을 사용하여 저장 프로 시저를 실행하면 각 호출이 일부 매개 변수 (동시성)에서 다른 값을 사용해야하기 때문에 "동시성 오류"가 발생합니다. 아는 바로는, 로컬 DB에서 프로파일 러를 실행하면 저장 프로 시저가 실행되는 것을 볼 수 있습니다. 그런 다음 정확히 동일한 행을 실행하려고하면 저장 프로 시저가 올바르게 실행되었음을 의미하는 동시성 오류가 발생합니다. 대상 DB에서 프로파일 러를 실행하면 저장 프로 시저가 실행되는 것을 볼 수 있습니다. 그런 다음 똑같은 줄을 실행하려고 시도하지만 결코 실행되지 않았 음을 의미하는 OK를 얻습니다. 그 행을 다시 실행하려고하면 동시성 문제가 발생합니다.
근본적으로 이상한 일입니다. 아마도 지금까지 이상한 일이었을 것입니다. SQL Server 프로파일 러는 저장 프로 시저가 호출되는 것을 보여 줍니 다만 분명히 끝나지는 않지만 저장 프로 시저는 프로파일 러가 보여준 것과 똑같은 호출을 직접 실행하면 괜찮습니다.
좀 이상하지만 조금 더 명확히하기를 바랍니다.
세부 사항이 없으면 미안하지만 추측 할만한 게임입니다. 어쩌면 커밋되지 않은 트랜잭션 내부에서 SP가 호출 될 수 있습니까? 아니면 SP에 버그가있을 수 있습니까? 몇 가지 코드를 보여주십시오. –
거래가 없습니다. 엔티티 프레임 워크를 통해 SP를 실행합니다. 해당 SP를 실행하기 전에 다른 SP를 실행 한 다음 문제가있는 SP를 실행 한 다음 변경 사항을 저장합니다. 프로파일 러가 호출되는 SP가 표시되지만 분명히 완료되지는 않았지만 (모든 호출이 직접 작동하는 경우) 모든 변경 사항은 완전히 저장됩니다. – Wallack
귀하의 설명 (나는 3 번 읽은 후에도 여전히 이해가 안됨)을 기반으로하면 SQL Server에 버그가있는 것보다 프로세스에 버그가있을 가능성이 훨씬 더 복잡한 프로세스가 있습니다. 아마도 우리에게 아이디어를주기 위해 코드를 게시 할 수 있습니다. 설명하는 동안 버그를 발견하게 될 것입니다. –