2017-03-14 5 views
0

5 개의 보고서를 하나의 SSRS 보고서로 결합한 개발자로부터 보고서를 상속 받았습니다. 그는 방금 복사 한 다음 원본 테이블의 각 tablix를 다른 테이블 아래에 붙여 넣은 것 같습니다. 이렇게하면 사용자가 Excel로 내보낼 때 별도의 탭에서 각 보고서를 볼 수 있습니다. 나는 이처럼 여러 SSRS 보고서를 한 번도 해 본 적이 없으므로 지금이 모든 일이 어떻게 작동하는지 분석하고 있습니다. 제가 발견 한 주요한 문제는 5 분짜리 쿼리를 모두 실행해야하기 때문에 매우 느리게 실행됩니다. 약 10 분입니다. 각 저장 프로시 저는 데이터 세트로 별도로 나열됩니다. 누구든지 한 페이지에 여러 SSRS 보고서를 만드는 더 좋은 방법을 알고 있습니까? 아니면 적어도이 일을 더 빨리 만드는 방법은 있습니까?하나의 보고서에 여러 SSRS 보고서를 추가하는 것이 매우 느립니다.

답변

0

SSRS 보고서의 성능을 향상시키는 첫 번째 단계는 병목 현상을 확인하는 것입니다. ReportServer 데이터베이스에서 ExecutionLog4라는 뷰에 대해 쿼리를 실행합니다. 보고서를 최근에 실행할 때마다보기에는 TimeDataRetrieval, TimeProcessing 및 TimeRendering의 세 가지 중요한 필드가 포함 된 레코드가 제공됩니다.

TimeDataRetrieval은 모든 쿼리가 실행되고 데이터 집합을 반환하는 데 걸리는 시간 (밀리 초)을 나타냅니다. 이 수가 높으면 성능을 향상 시키려면 조회를 조정하거나 일부를 제거해야합니다. 프로파일 러 추적을 실행하여 느리게 실행되는 프로 시저를 식별 할 수 있습니다.

하위 보고서는 보고서에 렌더링 될 때마다 데이터 집합 쿼리를 실행합니다. 따라서 하위 리포트 데이터 세트의 사소한 성능 문제도 실행 횟수만큼 확대됩니다.

시간 처리는 보고서 서버가 검색된 데이터를 조작하는 데 소요 된 시간을 나타냅니다. 이 수치가 높으면 보고서에서 SQL 측에서 여러 번 실행되는 집계 계산을 수행하는 것이 좋습니다.

시간 렌더링은 서버가 실제로 보고서를 렌더링하는 데 걸리는 시간을 나타냅니다. 이 수치가 높으면 반복적으로 반복되는 시각적 속성에 사용되는 표현식을 피하거나 단순화하는 것이 좋습니다. 이 시나리오는 내 경험상 다른 두 가지 시나리오보다 덜 일반적입니다. 당신은 많은 수의 행이 반환 될 것으로 예상되는 경우

-Avoid 사용하여 행 가시성 식 :

은 또한, 여기에 몇 가지 내가 성능 문제를 방지하기 위해 그 도움을 주운 팁입니다. - 개체를 숨겨도 데이터 집합 실행이 방해되지 않습니다. 데이터 세트가 유사한 구조를 가진 경우이를 결합하고 객체 필터를 사용하여 다른 섹션에 표시된 내용을 제한하는 것이 좋습니다. 또는 데이터 나 매개 변수에 따라 여러 선택 항목 중 하나만 표시하려는 경우 저장 프로 시저에서 IF 문을 사용하십시오. - 큰 테이블 릭스의 열 그룹 수를 제한하려고 시도하십시오. 테이블 릭스의 각 그룹에 대해 피벗로 반환 될 수있는 데이터 행 수를 해당 그룹으로 곱합니다.

SSRS 성능에 대한 자세한 내용은 https://technet.microsoft.com/en-us/library/bb522806(v=sql.105).aspx 에서 찾을 수 있습니다. 2008R2 용으로 작성되었지만 2012 년에도 대부분 적용됩니다.

총상을 모두주고, 더 이상 구체적인 질문이 있으면 여기에 다시 게시하십시오.

+0

불행히도 직장에서 사용 권한이 제한되어 있으므로 ExecutionLog4에 대해 아무 것도 실행할 수 없습니다. 내 첫 번째 단계는 이러한 각각의 쿼리를 다시 작성하고 도움이되는지 확인하는 것입니다. – jackstraw22

+0

그것은 수치 스럽습니다. 조직이 누군가를 개선하고 그렇게 할 적절한 도구를 박탈 할 때 나는 항상 내 머리를 흔들어 ... –