使用篩選改善報表效能
發行︰ 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>
同樣地,您可以啟用連結實體的預先篩選。 您也可以為 FetchXML 查詢中的連結實體指定不同的預先篩選條件,方法是在 prefilterparametername 屬性中指定不同的唯一參數名稱。
如果您要手動修改 Fetch 報表定義,而不使用 Microsoft Dynamics 365 Web 應用程式中的 [報表精靈] 或 SQL Server 資料工具 啟用主要和連結實體的預先篩選,請確定:
同樣地,您可以啟用連結實體的預先篩選。 您也可以為 FetchXML 查詢中的連結實體指定不同的預先篩選條件,方法是在 prefilterparametername 屬性中指定不同的唯一參數名稱。
如果您要手動修改 Fetch 報表定義,而不使用 Microsoft Dynamics 365 Web 應用程式中的 [報表精靈] 或 SQL Server 資料工具 啟用主要和連結實體的預先篩選,請確定:
<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),如下表所示。
|