수석 DBA는 기본적으로 SQL 쿼리 실행이 테이블을 잠그지 않는다고 말했습니다.
SSRS (SQL Server Reporting Services) 보고서에 문제가 있었는데, 잠금 및 일부 오류가 발생하는 것으로 보입니다.
나는 인터넷 검색을했지만 아무것도 찾지 못했습니다.
SSRS 보고서는 쿼리중인 테이블을 잠급니까?
이 동작을 구체적으로 설명하는 MSDN 설명서가 있습니까?
수석 DBA는 기본적으로 SQL 쿼리 실행이 테이블을 잠그지 않는다고 말했습니다.
SSRS (SQL Server Reporting Services) 보고서에 문제가 있었는데, 잠금 및 일부 오류가 발생하는 것으로 보입니다.
나는 인터넷 검색을했지만 아무것도 찾지 못했습니다.
SSRS 보고서는 쿼리중인 테이블을 잠급니까?
이 동작을 구체적으로 설명하는 MSDN 설명서가 있습니까?
답변:
짧은 답변 : 아니요
더 길게...
SQL Server는 SSRS가 쿼리를 보내는 지 알 수 없습니다. 따라서 SSRS의 쿼리는 다른 쿼리처럼 실행됩니다.
쿼리 최적화 프로그램이 SSRS 쿼리에 테이블 잠금을 사용하기로 결정했을 가능성이 높습니다. 물론 다른 문제 일 수도 있지만 다른 질문입니다
수석은 SQL 쿼리 실행을 위해 기본적으로 테이블을 잠그지 않는다고 말했습니다.
사실입니다. 그러나 쿼리 가 테이블을 잠글 수 없다는 의미는 아닙니다 .
SSRS 보고서가 실제로 쿼리중인 테이블을 잠그나요?
SSRS는 데이터베이스에 대해 쿼리 또는 저장 프로 시저를 실행하여 보고서를 렌더링하는 데 사용되는 데이터를 가져옵니다.
이 쿼리는 개발자가 정의 하며 격리 수준과 관련된 행 수에 따라 테이블을 잠글 수 있습니다 . (실제로이 작업 을 의도적 으로 수행하려는 경우가있을 수 있습니다 .) 결론은 잠금이 쿼리에 대해 작동하는 방식은 개발자의 몫입니다. SSRS는이 문제를 해결할 수 없습니다. 이것이 문서가없는 이유입니다.
다음을 고려하십시오 (예 :).
READ UNCOMMITTED
더티 판독이 괜찮은 경우 사용보고서가 실행될 때 어떤 잠금이 있는지 어떻게 알 수 있습니까? 보고서의 소스 인 쿼리 / 저장된 프로 시저를 확인하고 자체적으로 제대로 작동하는지 확인하는 것이 좋습니다.
소스 쿼리가 제대로 작동한다고 확신하는 경우 SQL Server 프로파일 러를 사용하여 문제를 찾아보십시오. 아래 링크가 도움이 될 수 있습니다 : https :
//.com/questions/9107383/sql-server-profiler-capture-calls-to-your-databases-stored-procs-during-ssrs
SET TRANSACTION ISOLATION LEVEL
에, 예를 들어READ UNCOMMITTED
몇 더러운 읽기 위험 괜찮다면.