分析查詢計劃 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

分析查詢計劃

分析查詢計畫之前,您應該熟悉如何閱讀它。如果您對於閱讀查詢計畫不熟悉,建議您閱讀查詢計劃之後再繼續。

執行 EXPLAIN 命令來取得查詢計畫。若要分析查詢計畫提供的資料,請遵循這些步驟:

  1. 識別具有最高成本的步驟。繼續進行其餘步驟時,請專注在那些。

  2. 查看聯結類型:

    • 巢狀迴路:這類聯結的發生通常是因為省略了聯結條件。如需建議的解決方案,請參閱巢狀迴圈

    • 雜湊和雜湊聯結:當聯結資料表中的聯結資料欄不是散發索引鍵也不是排序索引鍵時,會使用雜湊聯結。如需建議的解決方案,請參閱雜湊聯結

    • 合併聯結:不需變更。

  3. 注意哪個資料表用於內部聯結,以及哪個用於外部聯結。查詢引擎一般會對內部聯結選擇較小的資料表,以及對外部聯結選擇較大的資料表。如果這類選擇未發生,那麼,您的統計資料很可能過時。如需建議的解決方案,請參閱資料表統計資訊遺漏或過時

  4. 查看是否有任何高成本的排序操作。如果有,請參閱未排序或排序錯誤的資料列以取得建議的解決方案。

  5. 尋找具有高成本操作的下列播送運算子:

    • DS_BCAST_INNER:表示資料表已廣播至所有運算節點。這對於小資料表來說很好,但對於較大的資料表來說並不理想。

    • DS_DIST_ALL_INNER:指出所有工作負載位於單一配量上。

    • DS_DIST_BOTH:指出繁重的重新配送。

    如需這些情況的建議解決方案,請參閱次佳資料分佈