本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用Spark成本型最佳化工具
Spark 2.09 版和更新版本可以使用成本型最佳化工具 (CBO)。CBO 會根據各種資料表統計資料,為查詢選取最便宜的執行計畫。CBO 會嘗試最佳化與 CPU 使用率和 I/O 相關的查詢執行,因此會盡快傳回。不過,在大多數情況下,資料統計資料通常不存在,特別是當統計資料收集比資料處理更昂貴時。即使統計資料可用,它們仍可能已過期。以下是使用 CBO 的最佳實務:
-
收集用於聯結、篩選條件和依 分組等操作的所有資料欄的統計資料。這有助於最佳化工具做出更好的決策。使用
ANALYZE TABLE
收集統計資料。 -
如果資料快速變更,請提高統計資料收集的頻率。過時的統計資料可能會導致未最佳化的計劃。
-
從預設 CBO 參數開始,並僅在需要時進行調校。積極最佳化可以增加執行時間。
-
透過強制執行最佳化計劃並比較效能,確認 CBO 是否選擇最佳計劃。啟用最佳化工具記錄以比較計劃。
-
為了獲得更好的最佳化,請使用 CBO 搭配分割、儲存貯體和資料扭曲提示。分割可協助 CBO 擴展。
-
若要及早偵測計畫迴歸,請在啟用 CBO 後持續監控查詢效能。