문제

Microsoft.practices.enterpriselibrary를 사용하여 수천 개의 다른 저장 Procs를 호출하는 .NET 3.5 웹 사이트가 있습니다.

우리는 많은 타임 아웃을 얻었으며, 테이블 끝에서 (nolock)의 사용을 재생하고 테스트 한 후 저장된 Procs의 조인이 잘 작동하고 시간 초과를 줄입니다.

이제 모든 SP 에이 작업을하고 싶습니다. 모든 테이블 이름에 (Nolock)을 추가 할 수 있지만 더 나은 아이디어는 SQL에서 격리 레벨을 설정하는 것입니다.

나는 이것을 모든 SP의 시작에 추가하고 싶지 않기 때문에 (너무 많기 때문에) 연결에 추가 할 수있는 방법을 찾고있었습니다.

SP를 호출하는 코드의 예는 다음과 같습니다.

public static int ExecuteNonQuery(string sStoredProcedureName, params object[] parameterValues)
{
    Data.Database db = Data.DatabaseFactory.CreateDatabase();
    using (DbCommand command = db.GetStoredProcCommand(sStoredProcedureName, parameterValues))
    {
        return db.ExecuteNonQuery(command);
    }
}

이 설정은 web.config에서 구성 설정이라고 생각하지만 그것이 무엇인지 또는 제가 올바른 트랙에 있는지 알아낼 수 없습니다.

모든 도움은 정말 감사합니다.

건배 amjid

도움이 되었습니까?

해결책

SQL Server를 사용하고 있다고 가정합니까?

설정해보십시오 Commited Snapshot을 읽으십시오 데이터베이스에서.

자세한 내용은 여기를 참조하십시오.

http://www.codinghorror.com/blog/archives/001166.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top