웹 응용 프로그램에서 호출 될 때마다 시간 초과되는 저장 프로 시저가 있습니다.
Sql Profiler를 실행하고 시간이 초과 된 호출을 추적하고 마침내 다음을 발견했습니다.
- 동일한 인수를 사용하여 MS SQL Management Studio 내에서 명령문을 실행하면 (실제로 SQL 프로필 추적에서 프로 시저 호출을 복사하여 실행했습니다.) 평균 5 ~ 6 초 만에 완료됩니다.
- 그러나 웹 응용 프로그램에서 호출하면 30 초 이상 (추적 중)이 걸리므로 웹 페이지가 실제로 시간 초과됩니다.
내 웹 응용 프로그램에 자체 사용자가 있다는 사실 외에도 모든 것이 동일합니다 (동일한 데이터베이스, 연결, 서버 등). 웹 응용 프로그램의 사용자와 함께 스튜디오에서 직접 쿼리를 실행하려고 시도했으며 6 개 이상 걸리지 않습니다. 비서.
무슨 일이 일어나고 있는지 어떻게 알 수 있습니까?
트레이스가 실제 절차에 지연이 있음을 분명히 보여 주므로 BLL> DAL 레이어 또는 테이블 어댑터를 사용한다는 사실과 관련이 없다고 가정합니다. 그게 제가 생각할 수있는 전부입니다.
편집 나는 이 링크 에서 ADO.NET ARITHABORT
이 true로 설정한다는 것을 알았습니다. 대부분의 경우 좋지만 언젠가는 이런 일이 발생하며 제안 된 해결 with recompile
방법은 저장된 proc에 옵션을 추가하는 것입니다. 제 경우에는 작동하지 않지만 이와 매우 유사한 것 같습니다. ADO.NET의 다른 기능이나 사양을 어디에서 찾을 수 있는지 아는 사람이 있습니까?