EXPLAIN 加入 Amazon Redshift 查詢計劃 - AWS 方案指引

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

EXPLAIN 加入 Amazon Redshift 查詢計劃

Amazon Redshift 使用不同的聯結運算子,根據下列項目擷取資料:

  • 要聯結之資料表的實體設計

  • 查詢的結構

  • 聯結所需的資料位置

  • 查詢本身的特定需求

下列聯結類型常用於 Amazon Redshift:

  • 巢狀迴圈 – 當無法在兩個資料表之間建立雜湊資料表時,就會發生巢狀迴圈。巢狀迴圈主要用於跨聯結 (卡氏產品) 和一些不等式聯結。這將需要資料庫檢查左側資料表中的每個值與右側資料表中的每個值。巢狀迴圈聯結的複雜性是「二次」,您必須在其中執行大約 N*N (或 N2) 不同的操作來處理聯結。巢狀迴圈是最不理想的聯結類型。

  • 雜湊聯結 – 在雜湊聯結中,聯結條件彼此並不完美,但 Amazon Redshift 可以使用雜湊聯結搭配一些工作來管理 。雜湊聯結通常比巢狀迴圈聯結更快。Amazon Redshift 會查看兩個資料表,並在它們之間建立雜湊資料表,就像位於資料表中間的查詢資料表。例如,聯結資料表時,會使用雜湊聯結和雜湊運算子,其中聯結資料欄不是分佈索引鍵和排序索引鍵。

  • 合併聯結 – 合併聯結通常是最快的聯結,用於內部聯結和外部聯結。在合併聯結中,兩個資料表彼此完美。這表示每一端的聯結條件都是分佈索引鍵和排序索引鍵。兩個資料表都完美排列,無需調整。請注意,資料表中未排序的資料列應小於聯結資料表的 20%。若要檢視未排序資料列的百分比,請查詢 SVV_TABLE_INFO 系統資料表。合併聯結不會用於完整聯結。