linq을 사용하여 SQL 클래스에 사용자 정보를 가져 오는 방법이 있습니다. 이 메서드는 기존 저장된 procs를 호출하는 linq 문을 사용하여 세 개의 쿼리를 실행합니다. 여기에 어떻게 내 linq 문을 레이아웃 오전 예입니다.Linq to Sql TImeout 문제
using (var db = new TestDataContext(connection)))
{
var user = db.proc_UserInfo(userId);
foreach (var x in user)
{
string FullName = x.FirstName + " " + x.LastName;
string Address = x.Addr1;
string City = x.City;
}
}
이 메서드는 jquery ajax 요청에서 시작되는 웹 API 컨트롤러를 통해 호출됩니다. 그것은 잘 작동하지만 내가 급하게 DB에가는 쿼리의 일괄 처리가 취소 된 것처럼 보입니다 및 전화를 충분히 빨리 할 수있는 경우 아약스 요청을 만드는 사용자 전체 드롭 다운 목록을 급하게 변경하여 일부로드 할 때 다음 쿼리가 시간 초과되어 null 객체를 반환하면 몇 분 동안 일시 중지됩니다. 이러한 쿼리를 기록하는 것은 데이터를 반환하는 것이 아니라 몇 줄의 데이터를 반환하는 것입니다. 나는 아직도 무슨 일이 일어나고 있는지 알기 위해 노력하고 있으며 제안은 열려 있습니다. 미리 감사드립니다.
수동으로 exexute 할 때 proc_UserInfo가 실행되기까지 얼마나 걸립니까? 그리고 실행 계획은 어떤가? 그것은 단지 몇 행을 반환 할 수 있습니다하지만 당신은 그 행을 얻기 위해 테이블을 쓰레기 아니에요? 또한 각 Ajax 요청으로 인해 IIS에 다른 작업자 스레드가 생성되어 sql 클라이언트 (SQL 서버라고 가정) 연결 풀을 질식시킬 수 있다고 생각하십시오. 또한 아약스 요청 바로 전에 드롭 다운 목록을 사용하지 않도록 설정하여 문제를 피할 수 있으며 아약스가 완료 될 때까지 다시 활성화하지 않아도됩니다. –
내가 게시 한 이후로 감사드립니다. 다시 그것을 깨고 주사위를 끊어야합니다. 요청을 1 초 이내에 반환했습니다. 두 번째 예방책으로 드롭 다운을 비활성화하고 웹 서비스 테스트를로드 해 봅니다. Stephen에게 감사드립니다. – vikingben