<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                [TOC] # 分布式執行計劃調度 分布式執行計劃的簡單調度模型如下: 在執行計劃生成的最后階段,以 EXCHANGE 節點為界,拆分成多個子計劃,每個子計劃被封裝成為一個 DFO,在并行度大于 1 的場景下,會一次調度兩個 DFO,依次完成 DFO 樹的遍歷執行;在并行度等于 1 的場景下,每個 DFO 會將產生的數據存入中間結果管理器,按照后序遍歷的形式完成整個 DFO 樹的遍歷執行。 ## 單 DFO 調度 示例:在并行度為 1 的場景下,對于查詢計劃執行單 DFO 調度。 ~~~ ====================================================================================== |ID|OPERATOR |NAME |EST. ROWS |COST | -------------------------------------------------------------------------------------- |0 |LIMIT | |10 |6956829987| |1 | PX COORDINATOR MERGE SORT | |10 |6956829985| |2 | EXCHANGE OUT DISTR |:EX10002 |10 |6956829976| |3 | LIMIT | |10 |6956829976| |4 | TOP-N SORT | |10 |6956829975| |5 | HASH GROUP BY | |454381562 |5815592885| |6 | HASH JOIN | |500918979 |5299414557| |7 | EXCHANGE IN DISTR | |225943610 |2081426759| |8 | EXCHANGE OUT DISTR (PKEY) |:EX10001 |225943610 |1958446695| |9 | MATERIAL | |225943610 |1958446695| |10| HASH JOIN | |225943610 |1480989849| |11| JOIN FILTER CREATE | |30142669 |122441311 | |12| PX PARTITION ITERATOR | |30142669 |122441311 | |13| TABLE SCAN |CUSTOMER |30142669 |122441311 | |14| EXCHANGE IN DISTR | |731011898 |900388059 | |15| EXCHANGE OUT DISTR (PKEY)|:EX10000 |731011898 |614947815 | |16| JOIN FILTER USE | |731011898 |614947815 | |17| PX BLOCK ITERATOR | |731011898 |614947815 | |18| TABLE SCAN |ORDERS |731011898 |614947815 | |19| PX PARTITION ITERATOR | |3243094528|1040696710| |20| TABLE SCAN |LINEITEM(I_L_Q06_001)|3243094528|1040696710| ====================================================================================== ~~~ 如下圖所示,DFO 樹除 ROOT DFO 外,在垂直方向上被分別劃分為 0、1、2 號 DFO, 從而后序遍歷調度的順序為 0->1->2,即可完成整個計劃樹的迭代。 ![](https://img.kancloud.cn/64/a6/64a607e50a0b664e94d41dd473522ec1_567x596.png) ## 兩 DFO 調度 示例:對于并行度大于 1 的計劃, 對于查詢計劃執行兩 DFO 調度。 ~~~ Query Plan ============================================================================= |ID|OPERATOR |NAME |EST. ROWS|COST | ----------------------------------------------------------------------------- |0 |PX COORDINATOR MERGE SORT | |9873917 |692436562| |1 | EXCHANGE OUT DISTR |:EX10002|9873917 |689632565| |2 | SORT | |9873917 |689632565| |3 | SUBPLAN SCAN |VIEW5 |9873917 |636493382| |4 | WINDOW FUNCTION | |29621749 |629924873| |5 | HASH GROUP BY | |29621749 |624266752| |6 | HASH JOIN | |31521003 |591048941| |7 | JOIN FILTER CREATE | |407573 |7476793 | |8 | EXCHANGE IN DISTR | |407573 |7476793 | |9 | EXCHANGE OUT DISTR (BROADCAST) |:EX10001|407573 |7303180 | |10| HASH JOIN | |407573 |7303180 | |11| JOIN FILTER CREATE | |1 |53 | |12| EXCHANGE IN DISTR | |1 |53 | |13| EXCHANGE OUT DISTR (BROADCAST)|:EX10000|1 |53 | |14| PX BLOCK ITERATOR | |1 |53 | |15| TABLE SCAN |NATION |1 |53 | |16| JOIN FILTER USE | |10189312 |3417602 | |17| PX BLOCK ITERATOR | |10189312 |3417602 | |18| TABLE SCAN |SUPPLIER|10189312 |3417602 | |19| JOIN FILTER USE | |803481600|276540086| |20| PX PARTITION ITERATOR | |803481600|276540086| |21| TABLE SCAN |PARTSUPP|803481600|276540086| ============================================================================= ~~~ 如下圖所示,DFO 樹除 ROOT DFO 外,被劃分為 3 個 DFO,調度時會先調 0 和 1 對應的 DFO,待 0 號 DFO 執行完畢后,會再調度 1 號和 2 號 DFO,依次迭代完成執行。 ![](https://img.kancloud.cn/31/e4/31e4aa96d7a52c4b44d117c05a97e2ef_621x609.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看