필터를 사용하여 보고서 성능 개선
게시 날짜: 2017년 1월
적용 대상: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
큰 데이터 집합을 반환하는 보고서는 사용하기 어렵고 성능 문제가 발생할 수 있습니다. 보고서에 표시되는 데이터를 제한하려면 데이터 필터를 사용합니다.
Reporting Services에서 지원되는 데이터 필터링 외에도 Microsoft Dynamics 365은 데이터 사전 필터링을 지원합니다. 다음과 같은 경우 데이터 사전 필터링을 사용할 수 있습니다.
보고서의 범위를 축소하여 보고서를 상황에 맞도록 관련 많은 데이터를 반환합니다.
관련 많은 데이터만 반환되므로 빠르게 결과 집합을 검색하고 표시합니다.
상세하게 찾기 기능을 사용하여 보고서를 필터링할 수 있습니다.
중요
현재 Under 연산자 같은 계층적 연산자를 사용한 보고서 쿼리는 보고서 필터링에 사용할 수 없습니다. 계층적 연산자를 사용하는 보고서를 실행하려고 하면 보고서가 렌더링되지 않습니다.
이 항목의 내용
Fetch 기반 보고서에서 데이터 사전 필터링 설정
SQL 기반 보고서에서 데이터 사전 필터링 활성화(Dynamics 365 온-프레미스만 해당)
필터 요약에서 필터 전달
기본 필터
Fetch 기반 보고서에서 데이터 사전 필터링 설정
Fetch 기반 보고서는 자동 데이터 사전 필터링만 지원합니다. 보고서는 여러 데이터 집합과 FetchXML 쿼리를 사용할 수 있습니다. 하나의 데이터 집합은 하나의 FetchXML 쿼리를 지원합니다. Fetch 기반 보고서의 기본 엔터티 또는 연결된 엔터티에 대해 사전 필터링을 설정하려면 enableprefiltering 매개 변수 값을 "1"로 설정하고 prefilterparametername 속성의 매개 변수 이름을 지정해야 합니다. 매개 변수 이름은 숨겨진 매개 변수로 지정하는 “CRM_”으로 시작해야 합니다.Microsoft SQL Server 기반 보고서와 함께 FetchXML 쿼리에 지정된 이 매개 변수는 FetchXML 쿼리 내에서 하위 쿼리로 작동하고, 보고서를 실행하는 동안 하위 쿼리는 상세하게 찾기 영역에서 사용자가 지정한 값으로 구성됩니다.
다음 예제는 FetchXML 쿼리의 기본 엔터티에 대해 사전 필터링을 설정하는 방법을 나타냅니다.
<CommandText
<fetch distinct="false" mapping="logical">
<entity name="account" enableprefiltering="1" prefilterparametername="CRM_FilteredAccount">
<attribute name="name" />
<attribute name="accountid" />
</entity>
</fetch>
</CommandText>
<DataSourceName>CRM</DataSourceName>
마찬가지로 연결된 엔터티에 대해 사전 필터링을 사용할 수 있습니다.prefilterparametername 속성의 매개 변수 이름에 고유한 다른 이름을 지정하여 FetchXML 쿼리의 연결된 엔터티에 대해 다른 사전 필터링 조건을 지정할 수도 있습니다.
Microsoft Dynamics 365 웹 응용 프로그램 또는 SQL Server 데이터 도구에서 보고서 마법사를 사용하지 않고 Fetch 기반 보고서 정의를 수동으로 수정하면 기본 엔터티 및 연결된 엔터티에 대해 사전 필터링을 설정할 수 있습니다. 다음을 확인하십시오.
마찬가지로 연결된 엔터티에 대해 사전 필터링을 사용할 수 있습니다.prefilterparametername 속성의 매개 변수 이름에 고유한 다른 이름을 지정하여 FetchXML 쿼리의 연결된 엔터티에 대해 다른 사전 필터링 조건을 지정할 수도 있습니다.
Microsoft Dynamics 365 웹 응용 프로그램 또는 SQL Server 데이터 도구에서 보고서 마법사를 사용하지 않고 Fetch 기반 보고서 정의를 수동으로 수정하면 기본 엔터티 및 연결된 엔터티에 대해 사전 필터링을 설정할 수 있습니다. 다음을 확인하십시오.
<fetch distinct="false" mapping="logical"> <entity name="account" enableprefiltering="1" prefilterparametername="CRM_FilteredAccount">
prefilterparametername 속성에 지정된 것과 같은 이름으로 해당 쿼리 매개 변수를 만듭니다. 매개 변수 이름은 숨겨진 매개 변수로 지정하도록 CRM_으로 시작해야 합니다.
<QueryParameters> <QueryParameter Name="CRM_FilteredAccount"> <Value>=Parameters!CRM_FilteredAccount.Value</Value> </QueryParameter>
이름이 같은 해당 보고서 매개 변수를 만듭니다.
<ReportParameters> <ReportParameter Name="CRM_FilteredAccount"> <DataType>String</DataType> <Prompt>CRM Filtered Account</Prompt> </ReportParameter> </ReportParameters>
SQL 기반 보고서에서 데이터 사전 필터링 활성화(Dynamics 365 온-프레미스만 해당)
Microsoft Dynamics 365SQL 기반 보고서에서 두 가지 방법(자동 및 명시적)으로 데이터 사전 필터링을 설정할 수 있습니다.
자동 사전 필터링
자동 데이터 사전 필터링은 단순 쿼리에 적합합니다. 보고서에서 자동 데이터 사전 필터링을 활성화하려면 쿼리에서 엔터티 테이블에 대해 별칭을 사용할 수 있습니다.CRMAF_로 시작하는 별칭 이름을 사용하여 이 작업을 수행합니다.
예를 들어 다음 표는 Account 엔터티에서 사전 필터링을 설정하여 수정된 간단한 쿼리를 보여 줍니다.
사전 필터링 없이 쿼리 |
자동 사전 필터링이 설정된 수정된 쿼리 |
|||||
---|---|---|---|---|---|---|
```sql
SELECT
CRMAF_ 접두사를 사용하여 자동 데이터 사전 필터링 기능을 설정하면 다음 표와 같이 Microsoft Dynamics 365은 매개 변수를 포함하도록 Microsoft Dynamics 365으로 업로드될 때 쿼리를 수정합니다(예: P1)
|