データ ウェアハウスのパフォーマンスの最適化: チルトの最適化 - 式計算チルトのヒントの最適化

この記事は、Huawei Cloud Community「GaussDB (DWS) Performance Tuning: Skew Optimization - Hint Optimization of Expression Calculation Skew」(著者: Ge Li Ge) から共有されたものです。

1.生のSQL

SELECT 

TMP4.TAX_AMT、

CATE.L1_PUR_ITEM_CATG_CN_NAME || '-' || 

CATE.L2_PUR_ITEM_CATG_CN_NAME || '-' || 

CATE.L3_PUR_ITEM_CATG_CN_NAME AS PRODUCT_CATEGORY、

MATE.ITEM_CODE AS PRODUCT_CODE、

INVEN.INVENTORY_ORG_NAME、

TMP4.INVOICE_WITHHOLDING_TAX_GROUP、

TMP4.PAYMENT_WITHHOLDING_TAX_GROUP 、 

TMP4.PO_CHARGE_ACCOUNT_CODE、

TMP4.CFS_ INVOICE_NUMBER、

APR.TAX_INVOICE_DATE 

FROM DWLTAX.DWL_TAX_TAXDP_ERP_AP_INVOICE_TMP5 TMP4、

DWRDIM_DW1.DWR_DIM_PUR_ITEM_CATEGORY_D CATE、

DWRDIM_DW1.DWR_DIM_MATERIAL_CODE_D MATE 、

DWRDIM_DW1.DWR_DIM_INVENTORY_ORG_D INVEN、

DWTAXDI.DWI_AP_INVOICE_I AP、

DWTAXDI.DWI_AP_INVOICE_REGSTN_I APR 

WHERE 1 = 1

AND TMP4.ITEM_CATEGORY_KEY = CATE.PUR_ITEM_CATG_KEY(+) 

AND CATE.DEL_FLAG(+) = 'N' 

AND TMP4.ITEM_ID = MATE.ITEM_ID(+) 

AND MATE.DEL_FLAG(+) = 'N' 

AND TMP4.PO_SHIPMENT_TARGET_INV_ORG_KEY = INVEN .INVENTORY_ORG_KEY(+)

および INVEN.DEL_FLAG(+) = 'N'

および TMP4.AP_INVOICE_ID = AP.AP_INVOICE_ID(+)

および 6600 || AP.ATTRIBUTE1 = TO_CHAR(APR.AP_INVOICE_REGSTN_ID(+))

実行パフォーマンス、特定の実行ステータスおよびSQL自己診断情報を問い合わせます(詳細は、添付のcase-step1-元の実行情報.txtを参照してください)

ID | 操作 | エータイム | あ行 | E行 | E 特有 | ピークメモリ | Eメモリー | A幅 | E幅 | 電子コスト

----+------------------------------------------ -------------------------------------------------- ----------+--------------------------+---------------+- -----------+----------+-----+---------- --------+----------+----------+--------------- 

1 | -> 行アダプター | 69922.773 | 69237018 | 69237018 | | 87KB | | | 573 | 15160857.61 

2 | -> ベクターストリーミング (タイプ: GATHER) | 65581.989 | 69237018 | 69237018 | | 536KB | | | 573 | 15160857.61 

3 | -> ベクトル ハッシュ右結合 (4, 6) | [61186.201、73129.055] | 69237018 | 69237018 | | [306MB、682MB] | 1113MB(9990MB) | | 573 | 15159431.83

4 | -> ベクター ストリーミング (タイプ: ブロードキャスト ng: LC_DL1->LC_DW1) | [554.217、21008.078] | 1382000544 | 1381572384 | 282184 | [4MB、4MB] | 3MB | | 16 | 7056095.88 

5 | -> dwifin.dwi_ap_invoice_regstns で CStore スキャン | [5.354、11.617] | 28791678 | 28782758 | | [1MB、1MB] | 1MB | | 16 | 28004.18 

6 | -> ベクトル ハッシュ左結合 (7, 19) | [1728.008、2017.488] | 69237018 | 69237018 | 79721 | [834KB、834KB] | 16MB | [229,252] | 578 | 1832322.90 

7 | -> ベクトル ハッシュ左結合 (8, 17) | [1428.799、1925.653] | 69237018 | 69237018 | 179 | [32MB、32MB] | 28MB(8901MB) | | 576 | 1817105.07 

8 | -> ベクトルストリーミング(タイプ: PART REDISTRIBUTE PART ROUNDROBIN) | [996.780、1635.826] | 69237018 | 69237018 | 4167 | [1MB、1MB] | 2MB | | 570 | 1788113.85

9 | -> ベクトル ハッシュ左結合 (10, 14) | [1086.903、1780.641] | 69237018 | 69237018 | | [173MB、174MB] | 227MB(9067MB) | | 570 | 1304897.12 

10 | -> ベクトルストリーミング(タイプ: PART REDISTRIBUTE PART ROUNDROBIN) | [153.628、891.680] | 69237018 | 69237018 | 20271 | [1MB、1MB] | 2MB | | 567 | 847160.16 

11 | -> ベクトル ハッシュ左結合 (12, 13) | [367.155、465.821] | 69237018 | 69237018 | | [30MB、30MB] | 22MB(8896MB) | | 567 | 363943.43 

12 | -> dwltax.dwl_tax_taxdp_erp_ap_invoice_tmp5 tmp4 での CStore スキャン | [150.676、178.827] | 69237018 | 69237018 | 526 | [4MB、4MB] | 1MB | | 553 | 340168.44 

13 | -> dwrdim_dw1.dwr_dim_pur_item_category_d cate での CStore スキャン | [14.549、24.399] | 8228448 | 8228448 | 171426 | [2MB、2MB] | 1MB | [104,104] | 26 | 9056.99

14 | -> ベクター ストリーミング (タイプ: PART REDISTRIBUTE PART BROADCAST ng: LC_DL1->LC_DW1) | [315.926、339.782] | 117191217 | 117191170 | 2441483 | [1MB、1MB] | 3MB | [47,47] | 22 | 406136.10 

15 | -> ベクトル パーティション イテレータ | [118.307、151.248] | 117191170 | 117191170 | | [41KB、41KB] | 1MB | | 22 | 300641.93 

16 | -> dwifin.dwi_ap_invoice でのパーティション化された CStore スキャン | [86.557、111.947] | 117191170 | 117191170 | | [6MB、6MB] | 1MB | | 22 | 300641.93 

17 | -> ベクトルストリーミング(タイプ: PART LOCAL PART BROADCAST) | [60.429、99.381] | 15442613 | 15442566 | 321720 | [584KB、584KB] | 2MB | [58,58] | 19 | 49578.19 

18 | -> dwrdim_dw1.dwr_dim_material_code_d mate で CStore スキャン | [19.779、33.206] | 15442566 | 15442566 | | [1MB、2MB] | 1MB | | 19 | 35704.02

19 | -> dwrdim_dw1.dwr_dim_inventory_org_d で CStore スキャンを実行 | [0.383、0.739] | 135072 | 135072 | 2814 | [1MB、1MB] | 1MB | [53,53] | 14 | 2823.85 

SQL 診断情報

-------------------------------------- --------------------------------------------

診断情報

PlanNodeの実行[4] ブロードキャスト内の大きなテーブル「Vector Streaming(type: BROADCAST ng: LC_DL1->LC_DW1)」

述語情報 (プラン ID で識別) 

-------------------- -------------------------------------------------- -------------------------------------------------- ------ 

3 --ベクトル ハッシュ右結合 (4, 6)

ハッシュ条件: (((numeric_out(s.ap_invoice_regstn_id))::charactervariing)::text = ('6600'::text || ( s.attribute1)::text))

6 -- ベクトル ハッシュ左結合 (7, 19)

ハッシュ条件: (tmp4.po_shipment_target_inv_org_key = inven.inventory_org_key) 

7 -- ベクトル ハッシュ左結合 (8, 17)

ハッシュ条件: (tmp4.item_id = mate.item_id)

スキュー結合統計による最適化

8 --Vector Streaming(type: PART REDISTRIBUTE PART ROUNDROBIN) 

Skew Filter(type: ROUNDROBIN): ((tmp4.item_id = (-999999)::numeric) OR (tmp4.item_id IS NULL)) 

9 --ベクトル ハッシュ左結合 (10, 14)

ハッシュ条件: (tmp4.ap_invoice_id = s.ap_invoice_id)

統計

10 によって最適化されたスキュー結合 -- ベクトル ストリーミング (タイプ: PART REDISTRIBUTE PART ROUNDROBIN)

スキュー フィルター (タイプ: ROUNDROBIN): (tmp4.ap_invoice_id = s.ap_invoice_id) ap_invoice_id = 1001113812002::numeric) 

11 --ベクトル ハッシュ左結合 (12, 13)

ハッシュ条件: (tmp4.item_category_key = cate.pur_item_catg_key) 

13 --CStore Scan on dwrdim_dw1.dwr_dim_pur_item_category_d cate

フィルター: ((cate.del_flag)::text = 'N'::text)

プッシュダウン述語フィルター: ((cate.del_flag) )::text = 'N'::text) 

14 --Vector Streaming(type: PART REDISTRIBUTE PART BROADCAST ng: LC_DL1->LC_DW1) 

Skew Filter(type: BROADCAST): (s.ap_invoice_id = 1001113812002::numeric) 

15 --Vector Partition Iterator 

Iterations: 147 

16 --dwifin.dwi_ap_invoice で分割された CStore スキャン

静的プルーンによって選択されたパーティション: 1..147 

17 --Vector Streaming (タイプ: PART LOCAL PART BROADCAST) 

Skew Filter(type: BROADCAST): (mate.item_id = (-999999)::数値)

18 --CStore Scan on dwrdim_dw1.dwr_dim_material_code_d mate

フィルター: ((mate.del_flag)::text = 'N'::text)

プッシュダウン述語フィルター: ((mate.del_flag)::text = 'N'::text) 

19 --CStore Scan on dwrdim_dw1.dwr_dim_inventory_org_d inven

フィルター: ((inven.del_flag)::text = 'N'::text)

プッシュダウン述語フィルター: ((inven.del_flag)::text = 'N'::text)

2.大時計放送の禁止

上のセクションで示したように、id=4 のステップは実際にブロードキャストされた大きな結果セット (2879w アイテム) であり、後続の id=5 の HashJoin には長い時間がかかります。したがって、dwifin.dwi_ap_invoice_regstn はヒントを追加することでブロードキャストを禁止します。分析の結果、ビュー apr が展開されたときにテーブル dwifin.dwi_ap_invoice_regstn が表示されたことが判明したため、次のヒント情報が追加されました。

1. no merge (apr) は、ビュー apr 内のステートメントがプロモートされ、ヒント情報が失われることを防ぐためのものです。

2. 放送禁止 (apr) は、放送を禁止することを意味します。

EXPLAIN パフォーマンス

SELECT /*+ マージなし (apr) ブロードキャストなし (apr) */ 

TMP4.TAX_AMT, 

CATE.L1_PUR_ITEM_CATG_CN_NAME || '-' || 

CATE.L2_PUR_ITEM_CATG_CN_NAME || '-' || 

CATE.L3_PUR_ITEM_CATG_CN_NAME AS PRODUCT_CATEGORY、

MATE.ITEM_CODE AS PRODUCT_CODE、

INVEN.INVENTORY_ORG_NAME、

TMP4.INVOICE_WITHHOLDING_TAX_GROUP、

TMP4.PAYMENT_WITHHOLDING_TAX_GROUP 、 

TMP4.PO_CHARGE_ACCOUNT_CODE、

TMP4.CFS_ INVOICE_NUMBER、

APR.TAX_INVOICE_DATE 

FROM DWLTAX.DWL_TAX_TAXDP_ERP_AP_INVOICE_TMP5 TMP4、

DWRDIM_DW1.DWR_DIM_PUR_ITEM_CATEGORY_D CATE、

DWRDIM_DW1.DWR_DIM_MATERIAL_CODE_D MATE 、

DWRDIM_DW1.DWR_DIM_INVENTORY_ORG_D INVEN、

DWTAXDI.DWI_AP_INVOICE_I AP、

DWTAXDI.DWI_AP_INVOICE_REGSTN_I APR 

WHERE 1 = 1 

AND TMP4.ITEM_CATEGORY_KEY = CATE.PUR_ITEM_CATG_KEY(+) 

AND CATE.DEL_FLAG(+) = 'N' 

AND TMP4.ITEM_ID = MATE.ITEM_ID(+) 

AND MATE.DEL_FLAG(+) = ' N' 

AND TMP4.PO_SHIPMENT_TARGET_INV_ORG_KEY = INVEN.INVENTORY_ORG_KEY(+) 

AND INVEN.DEL_FLAG(+) = 'N' 

AND TMP4.AP_INVOICE_ID = AP.AP_INVOICE_ID(+) 

AND 6600 || AP.ATTRIBUTE1 = TO_CHAR(APR.AP_INVOICE_REGSTN_ID(+))

上記のステートメントのパフォーマンス情報を取得します (詳細については、添付の case-step2-prohibit の大きなテーブル、broadcast.txt を参照してください)。

ID | 操作 | エータイム | あ行 | E行 | E 特有 | ピークメモリ | Eメモリー | A幅 | E幅 | 電子コスト

----+------------------------------------------ -------------------------------------------------- -------------+-------------+---------- +-----------+-----------+-----+------- --------+----------+----------+--------------- 

1 | -> 行アダプター | 15685.781 | 69237018 | 69237018 | | 87KB | | | 573 | 33341721.22 

2 | -> ベクターストリーミング (タイプ: GATHER) | 11361.740 | 69237018 | 69237018 | | 536KB | | | 573 | 33341721.22 

3 | -> ベクトル ハッシュ左結合 (4, 19) | [15269.267、18985.791] | 69237018 | 69237018 | | [74MB、74MB] | 101MB(9984MB) | | 573 | 33340295.43

4 | -> ベクターストリーミング(種類: REDISTRIBUTE) | [4743.867、18632.182] | 69237018 | 69237018 | 79721 | [1MB、2MB] | 2MB | | 578 | 29821930.76 

5 | -> ベクトル ハッシュ左結合 (6, 18) | [1473.990、15359.055] | 69237018 | 69237018 | | [866KB、898KB] | 16MB | | 578 | 1832322.90 

6 | -> ベクトル ハッシュ左結合 (7, 16) | [1130.814、15223.646] | 69237018 | 69237018 | 179 | [32MB、32MB] | 28MB(9923MB) | | 576 | 1817105.07 

7 | -> ベクトルストリーミング(タイプ: PART REDISTRIBUTE PART ROUNDROBIN) | [681.709、14909.424] | 69237018 | 69237018 | 4167 | [1MB、1MB] | 2MB | | 570 | 1788113.85 

8 | -> ベクトル ハッシュ左結合 (9, 13) | [1049.201、12602.796] | 69237018 | 69237018 | | [173MB、174MB] | 227MB(10089MB) | | 570 | 1304897.12

9 | -> ベクトルストリーミング(タイプ: PART REDISTRIBUTE PART ROUNDROBIN) | [128.704、11737.099] | 69237018 | 69237018 | 20271 | [1MB、1MB] | 2MB | | 567 | 847160.16 

10 | -> ベクトル ハッシュ左結合 (11, 12) | [368.537、443.623] | 69237018 | 69237018 | | [30MB、30MB] | 22MB(9918MB) | | 567 | 363943.43 

11 | -> dwltax.dwl_tax_taxdp_erp_ap_invoice_tmp5 tmp4 での CStore スキャン | [148.366、175.347] | 69237018 | 69237018 | 526 | [4MB、4MB] | 1MB | | 553 | 340168.44 

12 | -> dwrdim_dw1.dwr_dim_pur_item_category_d cate での CStore スキャン | [13.319、24.442] | 8228448 | 8228448 | 171426 | [2MB、2MB] | 1MB | [104,104] | 26 | 9056.99 

13 | -> ベクター ストリーミング (タイプ: PART REDISTRIBUTE PART BROADCAST ng: LC_DL1->LC_DW1) | [242.053、294.233] | 117191217 | 117191170 | 2441483 | [1MB、1MB] | 3MB | [47、47] | 22 | 406136.10

14 | -> ベクトル パーティション イテレータ | [118.124、154.954] | 117191170 | 117191170 | | [41KB、41KB] | 1MB | | 22 | 300641.93 

15 | -> dwifin.dwi_ap_invoice でのパーティション化された CStore スキャン | [86.942、105.441] | 117191170 | 117191170 | | [6MB、6MB] | 1MB | | 22 | 300641.93 

16 | -> ベクトルストリーミング(タイプ: PART LOCAL PART BROADCAST) | [83.793、117.853] | 15442613 | 15442566 | 321720 | [584KB、584KB] | 2MB | [58,58] | 19 | 49578.19 

17 | -> dwrdim_dw1.dwr_dim_material_code_d mate で CStore スキャン | [21.898、35.895] | 15442566 | 15442566 | | [1MB、2MB] | 1MB | | 19 | 35704.02 

18 | -> dwrdim_dw1.dwr_dim_inventory_org_d で CStore スキャンを実行 | [0.389、0.661] | 135072 | 135072 | 2814 | [1MB、1MB] | 1MB | [53,53] | 14 | 2823.85

19 | -> ベクター ストリーミング (タイプ: REDISTRIBUTE ng: LC_DL1->LC_DW1) | [30.667、49.474] | 28791678 | 28782758 | 599641 | [2MB、2MB] | 3MB | [75,75] | 16 | 56030.49 

20 | -> 4 月のベクトル サブクエリ スキャン | [42.087、61.734] | 28791678 | 28782758 | | [376KB、376KB] | 1MB | | 16 | 30826.02 

21 | -> dwifin.dwi_ap_invoice_regstns で CStore スキャン | [5.177、8.049] | 28791678 | 28782758 | | [1MB、1MB] | 1MB | | 16 | 28004.18 

SQL 診断情報

-------------------------------------- -------------------------------------------------- ----------

診断情報の実行

PlanNode[4] DataSkew:"Vector Streaming(type: REDISTRIBUTE)", min_dn_tuples:257082, max_dn_tuples:47206637 

Predicate 情報 (プラン ID で識別)

-------------------------------------------------- -------------------------------------------------- ---------------------------- 

3 --ベクトル ハッシュ左結合 (4, 19)

ハッシュ Cond: ((('6600 '::text || (s.attribute1)::text)) = ((numeric_out(apr.ap_invoice_regstn_id))::charactervariing)::text) 

5 --ベクトル ハッシュ左結合 (6, 18)

ハッシュ条件: (tmp4.po_shipment_target_inv_org_key = inven.inventory_org_key) 

6 --Vector Hash Left Join (7, 16) 

Hash Cond: (tmp4.item_id = mate.item_id)

統計によって最適化されたスキュー結合

7 --Vector Streaming(type: PART REDISTRIBUTE PART ROUNDROBIN) ) 

Skew Filter(type: ROUNDROBIN): ((tmp4.item_id = (-999999)::numeric) OR (tmp4.item_id IS NULL)) 

8 -- ベクトル ハッシュ左結合 (9, 13)

ハッシュ条件: (tmp4.ap_invoice_id = s.ap_invoice_id)

統計によって最適化されたスキュー結合

9 --Vector Streaming(タイプ: PART REDISTRIBUTE PART ROUNDROBIN)

スキュー フィルター(タイプ: ROUNDROBIN): (tmp4.ap_invoice_id = 1001113812002::numeric) 

10 - -ベクトル ハッシュ左結合 (11, 12)

ハッシュ条件: (tmp4.item_category_key = cate.pur_item_catg_key) 

12 --CStore Scan on dwrdim_dw1.dwr_dim_pur_item_category_d cate

フィルター: ((cate.del_flag)::text = 'N'::text )

プッシュダウン述語フィルター: ((cate.del_flag)::text = 'N'::text) 

13 --Vector Streaming(type: PART REDISTRIBUTE PART BROADCAST ng: LC_DL1->LC_DW1) 

Skew Filter(type: BROADCAST): ( s.ap_invoice_id = 1001113812002::numeric) 

14 --ベクトル パーティション イテレータの

反復数: 147

15 -- dwifin.dwi_ap_invoice のパーティション化された CStore スキャン

静的プルーンによって選択されたパーティション: 1..147 

16 -- ベクター ストリーミング (タイプ: PART LOCAL PART BROADCAST)

スキュー フィルター (タイプ: BROADCAST): (mate.item_id = (-999999) )::numeric) 

17 --CStore dwrdim_dw1.dwr_dim_material_code_d でスキャン メイト

フィルター: ((mate.del_flag)::text = 'N'::text)

プッシュダウン述語フィルター: ((mate.del_flag)::text = 'N '::text) 

18 --CStore Scan on dwrdim_dw1.dwr_dim_inventory_org_d inven

フィルター: ((inven.del_flag)::text = 'N'::text)

プッシュダウン述語フィルター: ((inven.del_flag)::text = 'N '::文章)

3. 傾き表現のヒント

自己診断情報に坂道警告が表示されました

cke_176.png

そして、プラン ID 4 のオペレーターは、

cke_177.png

このうち、sはビューdwtaxdi.dwi_ap_invoice_iの拡張テーブルdwifin.dwi_ap_invoiceであり、このテーブルの列attribute1の統計情報は以下の通りであり、NULL値に重大な偏りがあることが分かります。

cke_178.png

再配布列は式 6600 || AP.ATTRIBUTE1 であるため、DWS の現在の傾斜ヒントは式をサポートしていません。これは、式の傾斜値のヒントを実装するために次の回避策を実行しているためです。

SELECT /*+ マージなし (apr) ブロードキャストなし (apr) マージなし (ap) skew(ap (attr1) ('6600')) */ TMP4.TAX_AMT, 

CATE.L1_PUR_ITEM_CATG_CN_NAME 

|| '-' || 

CATE.L2_PUR_ITEM_CATG_CN_NAME || '-' || 

CATE.L3_PUR_ITEM_CATG_CN_NAME AS PRODUCT_CATEGORY、

MATE.ITEM_CODE AS PRODUCT_CODE、

INVEN.INVENTORY_ORG_NAME、

TMP4.INVOICE_WITHHOLDING_TAX_GROUP、

TMP4.PAYMENT_WITHHOLDING_TAX_GROUP 、 

TMP4.PO_CHARGE_ACCOUNT_CODE、

TMP4.CFS_ INVOICE_NUMBER、

APR.TAX_INVOICE_DATE 

FROM DWLTAX.DWL_TAX_TAXDP_ERP_AP_INVOICE_TMP5 TMP4、

DWRDIM_DW1.DWR_DIM_PUR_ITEM_CATEGORY_D CATE、

DWRDIM_DW1.DWR_DIM_MATERIAL_CODE_D MATE 、

DWRDIM_DW1.DWR_DIM_INVENTORY_ORG_D INVEN、

(SELECT *, 6600 || AP.ATTRIBUTE1 AS ATTR1 FROM DWTAXDI.DWI_AP_INVOICE_I AP) AP、

DWTAXDI.DWI_AP_INVOICE_REGSTN_I APR 

WHERE 1 = 1 

AND TMP4.ITEM_CATEGORY_KEY = CATE.PUR_ITEM_CATG_KEY(+) 

AND CATE.DEL_FLAG(+) ) = 'N' 

AND TMP4.ITEM_ID = MATE.ITEM_ID(+) 

AND MATE.DEL_FLAG(+) = 'N' 

AND TMP4.PO_SHIPMENT_TARGET_INV_ORG_KEY = INVEN.INVENTORY_ORG_KEY(+) 

AND INVEN.DEL_FLAG(+) = 'N' 

AND TMP4.AP_INVOICE_ID = AP .AP_INVOICE_ID(+) 

AND ATTR1 = TO_CHAR(APR.AP_INVOICE_REGSTN_ID(+))

サブクエリ AP を構築します

SELECT *, 6600 || DWTAXDI.DWI_AP_INVOICE_I AP からの ATTR1 としての AP.ATTRIBUTE1

元の関連付けられた列式をサブクエリに入力し、6600 || AP.ATTRIBUTE1 に attr1 という名前を付けます。

親クエリでは、まず AP サブクエリの昇格を禁止します。次に、親クエリでは、ヒント サブクエリ AP の結果セットの列 attr1 に歪んだ値「6600」があります。この傾き値が計算され (NULL || 6600 = '6600')、元の関連計算の関連式は次のようになります。つまり、6600 || AP.ATTRIBUTE1 の結果がテキスト型 (文字列型) に変換されます。

cke_179.png

次のように新しいステートメントのパフォーマンスを取得します (詳細については、添付の case-step3-slant optimization.txt を参照してください)。

ID | 操作 | エータイム | あ行 | E行 | E 特有 | ピークメモリ | Eメモリー | A幅 | E幅 | 電子コスト

----+------------------------------------------ -------------------------------------------------- ----------+----------------------+----------+--- --------+-----------+-----+--------------- -----+----------+----------+--------------- 

1 | -> 行アダプター | 9045.793 | 69237018 | 69237018 | | 87KB | | | 573 | 2040755.71 

2 | -> ベクターストリーミング (タイプ: GATHER) | 4842.656 | 69237018 | 69237018 | | 520KB | | | 573 | 2040755.71 

3 | -> ベクトル ハッシュ左結合 (4, 21) | [2673.707、11389.688] | 69237018 | 69237018 | | [1MB、1MB] | 16MB | | 573 | 2039329.92

4 | -> ベクトル ハッシュ左結合 (5, 19) | [1951.482、10931.220] | 69237018 | 69237018 | 179 | [32MB、32MB] | 28MB(10018MB) | | 571 | 2009687.71 

5 | -> ベクトルストリーミング(タイプ: PART REDISTRIBUTE PART ROUNDROBIN) | [1541.777、10591.702] | 69237018 | 69237018 | 4167 | [1MB、1MB] | 2MB | | 565 | 1980696.49 

6 | -> ベクトル ハッシュ左結合 (7, 18) | [1703.438、1980.655] | 69237018 | 69237018 | | [30MB、30MB] | 22MB(10010MB) | | 565 | 1497479.76 

7 | -> ベクトル ハッシュ左結合 (8, 10) | [1523.277、1708.622] | 69237018 | 69237018 | 526 | [165MB、166MB] | 191MB(10151MB) | | 551 | 1473704.77 

8 | -> ベクトルストリーミング(タイプ: PART REDISTRIBUTE PART ROUNDROBIN) | [94.501、203.619] | 69237018 | 69237018 | 20271 | [1MB、1MB] | 2MB | | 553 | 823385.17

9 | -> dwltax.dwl_tax_taxdp_erp_ap_invoice_tmp5 tmp4 での CStore スキャン | [142.734、171.486] | 69237018 | 69237018 | | [4MB、4MB] | 1MB | | 553 | 340168.44 

10 | -> ベクター ストリーミング (タイプ: PART REDISTRIBUTE PART BROADCAST ng: LC_DL1->LC_DW1) | [811.192、853.583] | 117191217 | 117191170 | 2441483 | [2MB、2MB] | 3MB | [44,44] | 17 | 598718.74 

11 | -> ベクトル ハッシュ左結合 (12, 15) | [340.998、790.399] | 117191170 | 117191170 | | [39MB、39MB] | 27MB(10015MB) | | 17 | 493224.57 

12 | -> ベクトルストリーミング(タイプ: PART REDISTRIBUTE PART ROUNDROBIN) | [53.170、79.836] | 117191170 | 117191170 | 79721 | [2MB、2MB] | 3MB | | 41 | 412662.90 

13 | -> ベクトル パーティション イテレータ | [145.450、171.527] | 117191170 | 117191170 | | [41KB、41KB] | 1MB | | 22 | 303514.27

14 | -> dwifin.dwi_ap_invoice でのパーティション化された CStore スキャン | [112.099、134.193] | 117191170 | 117191170 | | [6MB、6MB] | 1MB | | 22 | 300641.93 

15 | -> ベクターストリーミング(タイプ: パート再配布 パートブロードキャスト) | [48.632、99.230] | 28791678 | 28782758 | 282184 | [2MB、2MB] | 3MB | [75,75] | 16 | 56928.04 

16 | -> 4 月のベクトル サブクエリ スキャン | [41.916、78.189] | 28791678 | 28782758 | | [376KB、376KB] | 1MB | | 16 | 30826.02 

17 | -> dwifin.dwi_ap_invoice_regstns で CStore スキャン | [5.233、10.667] | 28791678 | 28782758 | | [1MB、1MB] | 1MB | | 16 | 28004.18 

18 | -> dwrdim_dw1.dwr_dim_pur_item_category_d cate での CStore スキャン | [12.065、20.667] | 8228448 | 8228448 | 171426 | [2MB、2MB] | 1MB | [104,104] | 26 | 9056.99

19 | -> ベクトルストリーミング(タイプ: PART LOCAL PART BROADCAST) | [67.272、97.378] | 15442613 | 15442566 | 321720 | [584KB、584KB] | 2MB | [58,58] | 19 | 49578.19 

20 | -> dwrdim_dw1.dwr_dim_material_code_d mate で CStore スキャン | [18.605、31.713] | 15442566 | 15442566 | | [1MB、2MB] | 1MB | | 19 | 35704.02 

21 | -> dwrdim_dw1.dwr_dim_inventory_org_d で CStore スキャンを実行 | [0.378、0.647] | 135072 | 135072 | 2814 | [1MB、1MB] | 1MB | [53,53] | 14 | 2823.85

述語情報 (プラン ID で識別) 

-------------------------------------- -------------------------------------------------- -------------------------------------- 

3 --ベクトル ハッシュ左結合 (4, 21) )

ハッシュ条件: (tmp4.po_shipment_target_inv_org_key = inven.inventory_org_key)

4 -- ベクトル ハッシュ左結合 (5, 19)

ハッシュ条件: (tmp4.item_id = mate.item_id)

統計によって最適化されたスキュー結合

5 -- ベクトル ストリーミング (タイプ: PART REDISTRIBUTE PART ROUNDROBIN)

スキュー フィルター (タイプ: ROUNDROBIN): ((tmp4.item_id = (-999999)::numeric) OR (tmp4.item_id IS NULL)) 

6 -- ベクトル ハッシュ左結合 (7, 18)

ハッシュ演算子: (tmp4.item_category_key = cate.pur_item_catg_key) 

7 --ベクトル ハッシュ左結合 (8, 10)

ハッシュ条件: (tmp4.ap_invoice_id = s.ap_invoice_id)

統計

8 によって最適化されたスキュー結合 -- ベクトル ストリーミング (タイプ: PART REDISTRIBUTE PART ROUNDROBIN)

スキュー フィルター (タイプ: ROUNDROBIN): (tmp4.ap_invoice_id = s.ap_invoice_id) ap_invoice_id = 1001113812002::数値)

10 --ベクター ストリーミング (タイプ: PART REDISTRIBUTE PART BROADCAST ng: LC_DL1->LC_DW1)

スキュー フィルター (タイプ: BROADCAST): (s.ap_invoice_id = 1001113812002::numeric) 

11 -- ベクター ハッシュ左結合 (12、15)

ハッシュCond: ((('6600'::text || (s.attribute1)::text)) = ((numeric_out(apr.ap_invoice_regstn_id))::charactervariing)::text) ヒント 12 によって最適化されたスキュー
結合

--
ベクター ストリーミング (タイプ: PART REDISTRIBUTE PART ROUNDROBIN)

スキュー フィルター (タイプ: ROUNDROBIN): ((('6600'::text || (s.attribute1)::text)) = '6600'::text) 

13 -- Vector Partition Iterator 

Iterations: 147 

14 --dwifin.dwi_ap_invoice のパーティション化された CStore スキャン

静的プルーンによって選択されたパーティション: 1..147 

15 --Vector Streaming(type:一部再配布一部ブロードキャスト)

スキューフィルター(タイプ: BROADCAST): ((((numeric_out(apr.ap_invoice_regstn_id))::charactervariing)::text) = '6600'::text) 18 --CStore 

Scan on dwrdim_dw1.dwr_dim_pur_item_category_d cate

フィルター: (( cate.del_flag)::text = 'N'::text)

プッシュダウン述語フィルター: ((cate.del_flag)::text = 'N'::text) 

19 --Vector Streaming(type: PART LOCAL PART BROADCAST) 

Skewフィルター(タイプ: ブロードキャスト): (mate.item_id = (-999999)::numeric) 

20 --CStore Scan on dwrdim_dw1.dwr_dim_material_code_d mate

フィルター: ((mate.del_flag)::text = 'N'::text)

プッシュダウン述語フィルター: ((mate.del_flag)::text = 'N'::text) 

21 --CStore Scan on dwrdim_dw1.dwr_dim_inventory_org_d inven

フィルター: ((inven.del_flag)::text = 'N'::text)

プッシュダウン述語フィルター: ((inven.del_flag)::text = 'N'::text)

クリックしてフォローして、Huawei Cloudの最新テクノロジーについて初めて学びましょう~

MyBatis-Flex の MyBatis-Plus 盗用に関する明確化 Chrome の代替品であると主張する Arc ブラウザ 1.0 が正式にリリース OpenAI が Android バージョンを正式にリリース ChatGPT VS Code で名前の難読化圧縮が最適化され、組み込み JS が 20% 削減されました。 LK-99: 最初の室温常圧超伝導体? マスク氏は「ゼロ元で購入」し、@x Twitter アカウントを強奪したPython 運営委員会は PEP 703 提案を受け入れる予定で、 グローバル インタープリタ ロックをオプションにする . システムのオープンソースで無料のパケット キャプチャ ソフトウェアへのアクセス数Stack Overflow大幅に下落し、マスク氏はLLMに取って代わられたと述べた
{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/u/4526289/blog/10092215