使用排除的資料欄調整效能

分析很常會包含未使用的資料欄。不需要但仍被選取的資料欄會嚴重影響效能。改善效能的最簡單方式便是移除所有不需要的資料欄。

識別未使用的資料欄

當您在分析中包含檢視中所沒有的資料欄時 (本範例中為 Year),會影響效能:
  • 增加了必須從資料庫擷取的資料量。
  • 增加了需要擷取及處理的資料欄數目。
  • 強制分析計算多個聚總層級的結果。

以下為 GUID-8C5CB0DE-417C-45A7-8410-FEC11E2FEDC7-default.jpg 的說明
.jpg

例如,這份簡單的報表依區域和年度顯示客戶數目。

以下為 GUID-39B953E5-433E-4991-B3BA-BB1064CE8D83-default.jpg 的說明
.jpg

報表以圖表形式顯示,其中依區域顯示客戶數目。請注意,並不包含 Year 資料欄。

以下為 GUID-CFF82673-4988-4185-915E-0F1AA5027E42-default.jpg 的說明
.jpg

包含未使用 Year 資料欄的邏輯查詢

即使檢視中並未顯示 Year 資料欄,但仍包含在邏輯查詢中。

以下為 GUID-104759F4-A6F4-4366-ACD6-472BA2931E18-default.jpg 的說明
.jpg

在分析中包含 Year 資料欄的影響如下:
  • 需要擷取並處理額外的資料欄。
  • 需要擷取並處理額外的資料列,因為同時依據 region 和 year 選取了客戶資料列數目。
  • 需要進一步聚總。

包含未使用 Year 資料欄的實體查詢

當您複查實體查詢時,可以發現效能受到影響的區域。

以下為 GUID-D9F85168-B448-49BE-9261-78270C01784C-default.jpg 的說明
.jpg

本範例顯示客戶數目聚總規則的 SELECT count distinct。在某些情況下,它也會影響到包含總和聚總規則的報表。此案例中產生的查詢也使用群組集。在資料庫層級,它可能會選取許多資料列 (數百萬個),然後必須依 YearRegion,以及 Region 進行分組。這會耗用大量非必要的資料庫資源。

移除未使用的資料欄

現在,讓我們移除 Year 資料欄,然後分析對所產生邏輯查詢和實體查詢的影響。

以下為 GUID-DE47CCCB-7F6E-481D-8618-6F58B22807C5-default.jpg 的說明
.jpg

移除 Year 資料欄後的邏輯查詢

現在,邏輯查詢不包含 Year 資料欄了,而且更重要的是,報表聚總也被移除了。

以下為 GUID-A28E8FC3-37ED-4350-866C-A9BC58356833-default.jpg 的說明
.jpg

移除 Year 資料欄後的實體查詢

現在,實體查詢變得更為簡潔,其中不包含群組集,而且選取的記錄數目大幅減少。

以下為 GUID-96421968-C978-4383-853C-EAACB0079CEB-default.jpg 的說明
.jpg

只要複查效能不佳報表的分析,並且只需簡單移除多餘的未使用資料欄,便可顯著提升效能。所產生實體查詢的複雜度也有所降低,而且傳回的記錄數目也變少,因此需要進行的處理也減少了。