Reporting Services에서 ExecutionLog 및 ExecutionLog3 보기 사용
Reporting Services 보고서 서버 실행 로그에는 서버 또는 다중 서버에서 실행되는 보고서에 대한 정보가 포함되어 있습니다. 이러한 서버는 기본 모드 스케일 아웃 배포 또는 SharePoint 팜에 있습니다. 보고서 실행 로그를 사용하여 다음을 확인할 수 있습니다.
- 보고서가 요청된 횟수입니다.
- 가장 사용되는 출력 형식입니다.
- 각 처리 단계에서 소요되는 처리 시간(밀리초)입니다.
로그에는 보고서의 데이터 세트 쿼리를 실행하는 데 소요된 시간 및 데이터 처리에 소요된 시간에 대한 정보가 포함됩니다. 보고서 서버 관리자인 경우 로그 정보를 검토하고 장기 작업을 식별할 수 있습니다. 개선할 수 있는 데이터 세트 또는 처리 보고서의 영역에 대해 보고서 작성자에게 제안할 수도 있습니다.
SharePoint 모드용으로 구성된 보고서 서버는 또한 SharePoint ULS(통합 로깅 서비스) 로그를 활용할 수 있습니다. 자세한 내용은 SharePoint 추적 로그에 대한 Reporting Services 이벤트 설정(ULS)을 참조하세요.
로그 정보 보기
보고서 서버는 내부 데이터베이스 테이블에 보고서 실행에 대한 데이터를 기록합니다. 테이블의 정보는 SQL Server 보기에서 사용할 수 있습니다.
보고서 실행 로그는 기본적으로 ReportServer라는 보고서 서버 데이터베이스에 저장됩니다. SQL 뷰는 실행 로그 정보를 제공합니다. "2" 및 "3" 보기는 최신 릴리스에 추가되었으며 새 필드를 포함하거나 이전 릴리스보다 친숙한 이름을 가진 필드를 포함합니다. 이전 보기는 제품에 남아 있으므로 해당 보기에 의존하는 사용자 지정 애플리케이션은 영향을 받지 않습니다. 이전 보기에 대한 종속성이 없는 경우(예: ExecutionLog) 최신 보기인 ExecutionLog3를 사용해야 합니다.
SharePoint 모드 보고서 서버에 대한 구성 설정
보고서 실행 로깅은 Reporting Services 서비스 애플리케이션의 시스템 설정에서 설정 또는 해제할 수 있습니다.
기본적으로 로그 항목은 60일 동안 보관됩니다. 이 날짜를 초과하는 항목은 매일 오전 2:00에 제거됩니다. 완성도 높은 설치에서는 지정된 시간에 60일의 정보만 사용할 수 있습니다.
행 수 또는 기록된 항목 유형에 대한 제한을 설정할 수 없습니다.
SharePoint 서버에 대한 실행 로깅 사용
SharePoint 중앙 관리의 애플리케이션 관리 그룹에서 서비스 애플리케이션 관리를 선택합니다.
구성하려는 Reporting Services 서비스 애플리케이션의 이름을 선택합니다.
시스템 설정을 선택합니다.
로깅 섹션에서 실행 로깅 사용을 선택합니다.
확인을 선택합니다.
SharePoint 서버에 자세한 정보 로깅 사용
이전 단계에서 설명한 대로 로깅을 사용하도록 설정한 다음, 다음 단계를 완료해야 합니다.
Reporting Services 서비스 애플리케이션의 시스템 설정 페이지에서 사용자 정의 섹션을 찾습니다.
ExecutionLogLevel 을 자세히로 변경합니다. 이 필드는 텍스트 입력 필드이며 가능한 두 값은 자세한 정보 표시와 일반 값입니다.
기본 모드 보고서 서버에 대한 구성 설정
SQL Server Management Studio의 서버 속성 페이지에서 보고서 실행 로깅을 설정하거나 해제할 수 있습니다. EnableExecutionLogging은 고급 속성입니다.
기본적으로 로그 항목은 60일 동안 보관됩니다. 이 날짜를 초과하는 항목은 매일 오전 2:00에 제거됩니다. 완성도 높은 설치에서는 지정된 시간에 60일의 정보만 사용할 수 있습니다.
행 수 또는 기록된 항목 유형에 대한 제한을 설정할 수 없습니다.
기본 모드 서버에 대한 실행 로깅 사용
관리 권한을 사용하여 SQL Server Management Studio를 시작합니다. 예를 들어 Management Studio 아이콘을 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행을 선택합니다.
원하는 보고서 서버에 연결합니다.
서버 이름을 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다. 속성 옵션이 해제되어 있으면 관리 권한을 사용하여 SQL Server Management Studio를 실행했는지 확인합니다.
로깅 페이지를 선택합니다.
보고서 실행 로깅 사용을 선택합니다.
기본 모드 서버에 대해 자세한 정보 로깅 사용
이전 단계에서 설명한 대로 로깅을 사용하도록 설정한 다음, 다음 단계를 완료해야 합니다.
서버 속성 대화 상자에서 고급 페이지를 선택합니다.
사용자 정의 섹션에서 ExecutionLogLevel 을 자세히로 변경합니다. 이 필드는 텍스트 입력 필드이며 가능한 두 값은 자세한 정보 표시와 일반 값입니다.
로그 필드(ExecutionLog3)
이 보기는 XML 기반 AdditionalInfo 열 내에 더 많은 성능 진단 노드를 추가합니다. AdditionalInfo 열에는 1개에서 여러 개의 정보 필드로 구성된 XML 구조가 포함되어 있습니다. 다음 예제에서는 보기 ExecutionLog3에서 행을 검색하는 Transact SQL 문을 보여 줍니다. 이 샘플에서는 보고서 서버 데이터베이스의 이름이 ReportServer라고 가정합니다.
Use ReportServer
select * from ExecutionLog3 order by TimeStart DESC
다음 표에서는 보고서 실행 로그에 캡처되는 데이터에 대해 설명합니다.
열 | 설명 |
---|---|
InstanceName | 요청을 처리한 보고서 서버 인스턴스의 이름입니다. 환경에 둘 이상의 보고서 서버가 있는 경우 InstanceName 배포를 분석하여 네트워크 부하 분산 장치가 예상대로 보고서 서버에 요청을 분산하는지 모니터링하고 확인할 수 있습니다. |
ItemPath | 보고서 또는 보고서 항목이 저장되는 위치의 경로입니다. |
UserName | 사용자 ID입니다. |
ExecutionID | 요청과 연결된 내부 식별자입니다. 동일한 사용자 세션의 요청은 동일한 실행 ID를 공유합니다. |
RequestType | 가능한 값: 대화형 구독 RequestType=Subscription 으로 필터링되고 TimeStart 로 정렬된 로그 데이터를 분석하면 구독 사용량이 많은 기간을 확인할 수 있으며 그에 따라 보고서 구독 중 일부를 다른 시간으로 수정해야 할 수 있습니다. |
형식 | 렌더링 형식 |
매개 변수 | 보고서 실행에 사용되는 매개 변수 값입니다. |
ItemAction | 가능한 값:Render Sort BookMarkNavigation DocumentNavigation GetDocumentMap Findstring Execute RenderEdit ; |
TimeStart | 보고 프로세스의 기간을 나타내는 시작 및 종료 시간입니다. |
TimeEnd | |
TimeDataRetrieval | 데이터를 검색하는 데 소요된 시간(밀리초)입니다. |
TimeProcessing | 보고서를 처리하는 데 소요된 시간(밀리초)입니다. |
TimeRendering | 보고서를 렌더링하는 데 소요된 시간(밀리초)입니다. |
Source | 보고서 실행의 원본입니다. 가능한 값: 라이브 캐시: 캐시된 실행을 나타냅니다. 예를 들어 데이터 세트 쿼리는 라이브로 실행되지 않습니다. 스냅샷 기록 AdHoc: 동적으로 생성된 보고서 모델 기반 드릴스루 보고서를 나타냅니다. 처리 및 렌더링을 위해 보고서 서버를 활용하는 클라이언트에서 미리 보기로 제공되는 보고서 작성기 보고서를 참조할 수도 있습니다. 세션: 이미 설정된 세션 내에서 후속작업 요청을 나타냅니다. 예를 들어 초기 요청은 페이지 1을 보는 것이며 후속작업 요청은 현재 세션 상태를 사용하여 Excel로 내보내는 것입니다. RDCE(보고서 정의 사용자 지정 확장): 보고서 정의 사용자 지정 확장을 나타냅니다. RDCE 사용자 지정 확장은 보고서 실행 시 정의가 처리 엔진에 전달되기 전에 보고서 정의를 동적으로 사용자 지정할 수 있습니다. |
상태 | 상태(rsSuccess 또는 오류 코드: 여러 개의 오류가 발생하면 첫 번째 오류만 기록됨) |
ByteCount | 렌더링된 보고서의 크기(바이트)입니다. |
RowCount | 쿼리에서 반환된 행 수입니다. |
AdditionalInfo | 실행에 대한 추가 정보를 포함하는 XML 속성 모음입니다. 각 행에 대해 콘텐츠가 다를 수 있습니다. |
AdditionalInfo 필드
AdditionalInfo 필드는 실행에 대한 추가 정보를 포함하는 XML 속성 모음 또는 구조입니다. 로그의 각 행에 대해 콘텐츠가 다를 수 있습니다.
다음은 표준 로깅과 자세한 로깅 모두에 대한 AdditionalInfo 필드 내용의 예입니다.
AdditionalInfo의 표준 로깅 예제
<AdditionalInfo>
<ProcessingEngine>2</ProcessingEngine>
<ScalabilityTime>
<Pagination>0</Pagination>
<Processing>0</Processing>
</ScalabilityTime>
<EstimatedMemoryUsageKB>
<Pagination>0</Pagination>
<Processing>6</Processing>
</EstimatedMemoryUsageKB>
<DataExtension>
<SQL>1</SQL>
</DataExtension>
<Connections>
<Connection>
<ConnectionOpenTime>147</ConnectionOpenTime>
<DataSets>
<DataSet>
<Name>DataSet1</Name>
<RowsRead>16</RowsRead>
<TotalTimeDataRetrieval>642</TotalTimeDataRetrieval>
<ExecuteReaderTime>63</ExecuteReaderTime>
</DataSet>
<DataSet>
<Name>DataSet2</Name>
<RowsRead>3</RowsRead>
<TotalTimeDataRetrieval>157</TotalTimeDataRetrieval>
<ExecuteReaderTime>60</ExecuteReaderTime>
</DataSet>
</DataSets>
</Connection>
</Connections>
</AdditionalInfo>
AdditionalInfo의 자세한 로깅 예
<AdditionalInfo>
<ProcessingEngine>2</ProcessingEngine>
<ScalabilityTime>
<Pagination>0</Pagination>
<Processing>0</Processing>
</ScalabilityTime>
<EstimatedMemoryUsageKB>
<Pagination>0</Pagination>
<Processing>6</Processing>
</EstimatedMemoryUsageKB>
<DataExtension>
<SQL>1</SQL>
</DataExtension>
<Connections>
<Connection>
<ConnectionOpenTime>127</ConnectionOpenTime>
<DataSource>
<Name>DataSource1</Name>
<DataExtension>SQL</DataExtension>
</DataSource>
<DataSets>
<DataSet>
<Name>DataSet1</Name>
<RowsRead>16</RowsRead>
<TotalTimeDataRetrieval>655</TotalTimeDataRetrieval>
<QueryPrepareAndExecutionTime>94</QueryPrepareAndExecutionTime>
<ExecuteReaderTime>33</ExecuteReaderTime>
<DataReaderMappingTime>30</DataReaderMappingTime>
<DisposeDataReaderTime>1</DisposeDataReaderTime>
</DataSet>
<DataSet>
<Name>DataSet2</Name>
<RowsRead>3</RowsRead>
<TotalTimeDataRetrieval>16</TotalTimeDataRetrieval>
<QueryPrepareAndExecutionTime>2</QueryPrepareAndExecutionTime>
<ExecuteReaderTime>1</ExecuteReaderTime>
<DataReaderMappingTime>0</DataReaderMappingTime>
<DisposeDataReaderTime>0</DisposeDataReaderTime>
</DataSet>
</DataSets>
</Connection>
</Connections>
</AdditionalInfo>
다음 예제는 AdditionalInfo 필드에 표시되는 값 중 일부입니다.
ProcessingEngine
대부분의 보고서에서 여전히 값이 1인 경우 최신의 보다 효율적인 주문형 처리 엔진을 활용하도록 다시 디자인하는 방법을 조사할 수 있습니다.
1=SQL Server 2005, 2=The new On-demand Processing Engine
<ProcessingEngine>2</ProcessingEngine>
ScalabilityTime
처리 엔진에서 스케일링 관련 작업을 수행하는 데 소요된 시간(밀리초)입니다. 값이
0
이면 확장 작업에 추가 시간이 걸리지 않았으며0
은 해당 요청이 메모리 부담을 주지 않은 것을 나타냅니다.<ScalabilityTime> <Processing>0</Processing> </ScalabilityTime>
EstimatedMemoryUsageKB
특정 요청 중에 각 구성 요소에서 소비될 것으로 예상되는 최대 메모리 양(KB)
<EstimatedMemoryUsageKB> <Processing>38</Processing> </EstimatedMemoryUsageKB>
DataExtension
보고서에 사용되는 데이터 확장 프로그램 또는 데이터 원본의 형식입니다. 이 숫자는 특정 데이터 원본의 발생 횟수입니다.
<DataExtension> <DAX>2</DAX> </DataExtension>
ExternalImages
값은 밀리초 단위입니다. 이 데이터를 사용하여 성능 문제를 진단할 수 있습니다. 외부 웹 서버에서 이미지를 검색하는 데 필요한 시간으로 인해 전반적인 보고서 실행 속도가 느려질 수 있습니다.
<ExternalImages> <Count>3</Count> <ByteCount>9268</ByteCount> <ResourceFetchTime>9</ResourceFetchTime> </ExternalImages>
연결
다단계 구조
<Connections> <Connection> <ConnectionOpenTime>127</ConnectionOpenTime> <DataSource> <Name>DataSource1</Name> <DataExtension>SQL</DataExtension> </DataSource> <DataSets> <DataSet> <Name>DataSet1</Name> <RowsRead>16</RowsRead> <TotalTimeDataRetrieval>655</TotalTimeDataRetrieval> <QueryPrepareAndExecutionTime>94</QueryPrepareAndExecutionTime> <ExecuteReaderTime>33</ExecuteReaderTime> <DataReaderMappingTime>30</DataReaderMappingTime> <DisposeDataReaderTime>1</DisposeDataReaderTime> </DataSet> <DataSet> <Name>DataSet2</Name> <RowsRead>3</RowsRead> <TotalTimeDataRetrieval>16</TotalTimeDataRetrieval> <QueryPrepareAndExecutionTime>2</QueryPrepareAndExecutionTime> <ExecuteReaderTime>1</ExecuteReaderTime> <DataReaderMappingTime>0</DataReaderMappingTime> <DisposeDataReaderTime>0</DisposeDataReaderTime> </DataSet> </DataSets> </Connection> </Connections>
로그 필드(ExecutionLog2)
이 보기는 몇 가지 새 필드를 추가하고 몇 가지 다른 필드의 이름을 변경했습니다. 다음 샘플은 보기 ExecutionLog2에서 행을 검색하는 Transact SQL 문입니다. 샘플에서는 보고서 서버 데이터베이스의 이름이 다음과 같은 것으로 가정합니다. ReportServer
Use ReportServer
select * from ExecutionLog2 order by TimeStart DESC
다음 표에서는 보고서 실행 로그에 캡처되는 데이터에 대해 설명합니다.
열 | 설명 |
---|---|
InstanceName | 요청을 처리한 보고서 서버 인스턴스의 이름입니다. |
ReportPath | 보고서에 대한 경로 구조입니다. 루트 폴더에 테스트로 저장된 보고서에 /test 의 ReportPath가 있습니다.Samples 폴더에 저장된 테스트라는 보고서에는 /Samples/test/ 의 ReportPath가 있습니다. |
UserName | 사용자 ID입니다. |
ExecutionID | |
RequestType | 요청 유형이 user 또는 system 입니다. |
형식 | 렌더링 형식 |
매개 변수 | 보고서 실행에 사용되는 매개 변수 값입니다. |
ReportAction | 가능한 값: Render , Sort , BookMarkNavigation , DocumentNavigation , GetDocumentMap , Findstring . |
TimeStart | 보고 프로세스의 기간을 나타내는 시작 시간입니다. |
TimeEnd | 보고 프로세스의 기간을 나타내는 종료 시간입니다. |
TimeDataRetrieval | 데이터를 검색하는 데 소요된 시간(밀리초)입니다. |
TimeProcessing | 보고서를 처리하는 데 소요된 시간(밀리초)입니다. |
TimeRendering | 보고서를 렌더링하는 데 소요된 시간(밀리초)입니다. |
Source | 보고서 실행의 원본입니다. 옵션은 1=Live , 2=Cache , 3=Snapshot , 4=History 입니다. |
상태 | 상태는 rsSuccess 또는 오류 코드입니다. 여러 오류가 발생한 경우 첫 번째 오류만 기록됩니다. |
ByteCount | 렌더링된 보고서의 크기(바이트)입니다. |
RowCount | 쿼리에서 반환된 행 수입니다. |
AdditionalInfo | 실행에 대한 추가 정보를 포함하는 XML 속성 모음입니다. |
로그 필드(ExecutionLog)
다음 샘플은 보기 ExecutionLog에서 행을 검색하는 Transact SQL 문입니다. 샘플에서는 보고서 서버 데이터베이스의 이름이 다음과 같은 것으로 가정합니다. ReportServer
Use ReportServer
select * from ExecutionLog order by TimeStart DESC
다음 표에서는 보고서 실행 로그에 캡처되는 데이터에 대해 설명합니다.
열 | 설명 |
---|---|
InstanceName | 요청을 처리한 보고서 서버 인스턴스의 이름입니다. |
ReportID | 보고서 식별자입니다. |
UserName | 사용자 ID입니다. |
RequestType | 가능한 값: True = 구독 요청 False= 대화형 요청 |
형식 | 렌더링 형식 |
매개 변수 | 보고서 실행에 사용되는 매개 변수 값입니다. |
TimeStart | 보고 프로세스의 기간을 나타내는 시작 및 종료 시간입니다. |
TimeEnd | |
TimeDataRetrieval | 데이터를 검색하고, 보고서를 처리하고, 보고서를 렌더링하는 데 소요된 시간(밀리초)입니다. |
TimeProcessing | |
TimeRendering | |
Source | 보고서 실행의 원본입니다. 가능한 값: (1=Live, 2=Cache, 3=Snapshot, 4=History, 5=Adhoc, 6=Session, 7=RDCE) |
상태 | 가능한 값은 rsSuccess , rsProcessingAborted 또는 오류 코드입니다. 여러 오류가 발생한 경우 첫 번째 오류만 기록됩니다. |
ByteCount | 렌더링된 보고서의 크기(바이트)입니다. |
RowCount | 쿼리에서 반환된 행 수입니다. |