2014-05-09 1 views
2

실행되지 않습니다 SQL 서버 프로파일 러는 호출되는 저장 프로 시저를 보여줍니다 실제로 나는 그것을 요약하려고합니다 문제가

내가 SQL Server 프로파일 러는 저장 프로 시저의 호출을 추적하기 위해 실행합니다. 저장 프로 시저가 호출되고 있지만 실제로 실행되고 있지 않음을 보여줍니다.

나는 저장 프로 시저가 동시성을 피하기 위해 열을 업데이트하고 저장 프로 시저에 대한 각 호출이 다른 (업데이트 된) 매개 변수를 사용해야하기 때문에 프로파일 러에서 SSMS로 호출을 직접 실행하면 괜찮습니다. 두 번째로 실행하면 처음에는 실제로 실행되지 않았 음을 보여주는 동시성 문제가 발생합니다.

왜 이런 일이 발생했는지에 대한 아이디어가 부족했습니다. SQL Server 프로파일 러는 저장 프로 시저가 호출되었지만 실제로 호출되지는 않음을 보여줍니다!

감사합니다.

편집 : 추가 정보를

  • 저장 프로 시저 우리가 프로파일 쇼는 대상에서 DB는 프로파일 러 추적 똑같은 줄을 실행하면 로컬
  • , 저장 프로 시저가 완벽하게 작동 완벽하게 작동합니다.
  • Entity Framework에서 실행합니다. 그러나 다른 저장 프로 시저를 호출하는 저장 프로 시저를 호출하기 전에 문제가있는 저장 프로 시저를 호출 한 다음 변경 내용을 저장합니다. 이전 저장 프로 시저의 변경 사항도 저장됩니다.
  • 저장 프로 시저를 로컬로 호출 할 때마다 동일한 값을 사용하여 저장 프로 시저를 실행하면 각 호출이 일부 매개 변수 (동시성)에서 다른 값을 사용해야하기 때문에 "동시성 오류"가 발생합니다. 아는 바로는, 로컬 DB에서 프로파일 러를 실행하면 저장 프로 시저가 실행되는 것을 볼 수 있습니다. 그런 다음 정확히 동일한 행을 실행하려고하면 저장 프로 시저가 올바르게 실행되었음을 의미하는 동시성 오류가 발생합니다. 대상 DB에서 프로파일 러를 실행하면 저장 프로 시저가 실행되는 것을 볼 수 있습니다. 그런 다음 똑같은 줄을 실행하려고 시도하지만 결코 실행되지 않았 음을 의미하는 OK를 얻습니다. 그 행을 다시 실행하려고하면 동시성 문제가 발생합니다.

근본적으로 이상한 일입니다. 아마도 지금까지 이상한 일이었을 것입니다. SQL Server 프로파일 러는 저장 프로 시저가 호출되는 것을 보여 줍니 다만 분명히 끝나지는 않지만 저장 프로 시저는 프로파일 러가 보여준 것과 똑같은 호출을 직접 실행하면 괜찮습니다.

좀 이상하지만 조금 더 명확히하기를 바랍니다.

+1

세부 사항이 없으면 미안하지만 추측 할만한 게임입니다. 어쩌면 커밋되지 않은 트랜잭션 내부에서 SP가 호출 될 수 있습니까? 아니면 SP에 버그가있을 수 있습니까? 몇 가지 코드를 보여주십시오. –

+0

거래가 없습니다. 엔티티 프레임 워크를 통해 SP를 실행합니다. 해당 SP를 실행하기 전에 다른 SP를 실행 한 다음 문제가있는 SP를 실행 한 다음 변경 사항을 저장합니다. 프로파일 러가 호출되는 SP가 표시되지만 분명히 완료되지는 않았지만 (모든 호출이 직접 작동하는 경우) 모든 변경 사항은 완전히 저장됩니다. – Wallack

+0

귀하의 설명 (나는 3 번 읽은 후에도 여전히 이해가 안됨)을 기반으로하면 SQL Server에 버그가있는 것보다 프로세스에 버그가있을 가능성이 훨씬 더 복잡한 프로세스가 있습니다. 아마도 우리에게 아이디어를주기 위해 코드를 게시 할 수 있습니다. 설명하는 동안 버그를 발견하게 될 것입니다. –

답변

1

'ARITHABORT'설정을 변경하여 문제를 해결했습니다.

문제를 찾기위한 wrost 문제는 ​​SSMS가 일부 옵션을 무시하고 그 문제를 보지 않았기 때문에 엔티티 프레임 워크에서 작동하지 않는 저장 프로 시저 호출이 SSMS에서 작동했기 때문입니다.

우리는 동일한 환경 (같은 DB)로 이전 응용 프로그램을 설치하고 응용 프로그램의 다른 여러 장소에서,이 오류 보여 : 'ARITHABORT를'

업데이트는 다음 SET 옵션 잘못된 설정을 가지고 있기 때문에 실패

을 . SET 옵션이 계산 된 열 및/또는 필터링 된 인덱스 및/또는 쿼리 알림 및/또는 XML 데이터 형식 메서드 및/또는 공간 인덱스 작업에서 인덱싱 된 뷰 및/또는 인덱스와 함께 사용되는지 확인하십시오.

그래서 문제는 업데이트와 관련이 있지만 SP에서 직접 가져온 것이 아니라 SP에 의해 트리거 된 트리거에 의해 트리거 된 것이므로 아무 것도 기록하지 않았습니다. 그것은 들린다.

운 좋게도 우리는 올바른 방향으로 우리를 암시함으로써 "고정 된"문제를 대체하려고합니다.

도움을 주신 모든 분들께 감사드립니다.