저장 프로 시저를 실행하여 테이블의 레코드를 업데이트하면 시간 초과 오류가 발생하는 문제가 있습니다. 원래 MVC3 응용 프로그램 내에서 저장 프로 시저를 호출합니다.이 응용 프로그램에서 오류를 처음으로 발견했습니다.저장 프로 시저를 실행하는 동안 SQL Server 시간 초과가 발생했습니다.
그러나 SQL Server 프로파일 러를 사용하여 ADO.NET에서 생성 된 코드를 복사하여 데이터베이스에서 직접 실행할 수있었습니다. 이 쿼리를 약 5 분 동안 실행하고 여전히 아무것도 반환하지 못했습니다.
저장 프로 시저에 전달되는 약 100 개의 인수가 : 여기
는 몇 가지 사실입니다.
내 MVC 응용 프로그램, SSMS 및 Sql Server 2008은 모두 동일한 컴퓨터에 설치됩니다.
저장 프로시 저는 약 5000 개의 항목이 들어있는 테이블의 단일 행을 업데이트하려고 시도합니다.
LastModifiedDate
과CreatedDate
을 업데이트하는 트리거가 있지만 이러한 트리거를 제거하고 EDMX를 업데이트하여 이러한 트리거로 인한 무한 루프가 있는지를 확인했습니다.라이브 서버는 실행하려고하는 것과 동일한 저장 프로 시저 (classic asp 사용)를 실행하고 올바른 결과를 얻습니다. 또한, 라이브 서버 내 기계가 고전적인 ASP와 ASP.NET 모두에 대해 저장 프로 시저를 실행하는 데 실패
이
저장 프로 시저는 실패 할 것 같다 .NET에서 같은 저장 프로 시저를 실행하는 데 실패 행의 일부에 대해, 그리고 다른 것들은 완벽하게 잘 작동합니다.
내가
다른 저장 프로 시저가
는 특정 테이블에 대한 잠금이있을 나타납니다 잘 작동 저장 프로 시저에 전달되는 매개 변수의 값을 변경 시도가 저장 프로 시저 이 쿼리가 실행되기를 기다리는 경우에도 다른 쿼리를 실행해도 문제가 없으므로 업데이트하려고 시도하고있었습니다.
수행 할 수있는 다른 테스트에 대한 아이디어가 있거나 시간 초과 오류의 근본 원인을 파악하는 데 사용할 수있는 도구가 있다면.
감사합니다.
P. 명령 시간 초과 등록 정보를 변경하라고하지 마십시오.이 값을 0으로 설정하려고 시도했습니다.
테이블과 동일한 문제가 있습니다. 여기에는 열 유형이 hierarchyid입니다. – loviji
"저장 프로 시저에 약 100 개의 인수가 전달됩니다." 어 오?!? 단일 책임 원칙을 위반하지 않고 절차가 100 개의 인수를 얻는 상황을 상상할 수는 없습니다. –
테이블의 행을 100 개의 열로 업데이트하는 저장 프로 시저는 어떻게됩니까? –