SQL 작업을 통해 요청 큐를 처리 할 수 있습니다. Table1을 업데이트합니다. 그것은 15 분 정도 걸리는 긴 과정입니다.SQL Locking - Timeout issue
한편 내 응용 프로그램은 Table1에서 레코드를 읽고 그리드에 표시하려고합니다. 해당 get proc는 tran isolation level을 uncommited로 설정했습니다. SQL 작업이 실행 중일 때 그리드를 채우는 동안 내 응용 프로그램은 항상 시간 초과됩니다. SQL 작업이 실행되고 있지 않으면 정상적으로 작동합니다.
내 proc에는 적절한 격리 수준이 있으므로 시간이 너무 오래 걸리는 이유가 없습니다. 생각 하시겠습니까? 여기
처럼 내 가져 오기 시저는 모습입니다 :
CREATE PROCEDURE dbo.MyGetProc(...)
AS가 SET 트랜잭션 격리 수준이 커밋되지 않은 읽기 BEGIN; SET NOCOUNT ON;
SELECT
...
FROM
(
SELECT
...
FROM
dbo.Table1
LEFT JOIN dbo.OtherTable1
WHERE ...
GROUP BY
...
) X
INNER JOIN dbo.OtherTable2
LEFT JOIN dbo.OtherTable3
LEFT JOIN dbo.OtherTable4
LEFT JOIN dbo.OtherTable5
LEFT JOIN dbo.OtherTable6
LEFT JOIN dbo.OtherTable6
ORDER BY
...
END 커밋 데이터를 판독한다 (NOLOCK)
와 표에서
타임 아웃 코드의 스 니펫을 게시 할 수 있습니까? 이런 식으로 훨씬 더 강한 답을 얻을 수 있습니다. –
원본 스레드에 get proc code snippet을 추가했습니다. – GreenBinary