ユーザーガイド > TDV超並列処理エンジンの構成 > クエリー実行プランビューアーからのMPPエンジンの構成
 
クエリー実行プランビューアーからのMPPエンジンの構成
Studio Viewエディターで、[Show Execution Plan(実行プランの表示)]ボタンをクリックして、クエリー実行プランを生成します。次のプランが[Execution Plan(実行プラン)]ペインに表示されます。
 
左側のPARALLEL_FETCHをクリックして、右側に詳細なクエリー実行プランを表示します。PARALLEL_FETCHが行われなかった場合は、SELECTをクリックして理由を調査します。右ペインで説明されている理由は、設定を調整するのに役立ちます。MPPエンジンを使用する際に考慮すべき事項のリストについては、セクション「MPPエンジンの使用に関する考慮事項」を参照してください。
名前: PARALLEL FETCH
[Estimated Rows Returned(返される行の推定数)]: 8000000(0から9223372036854775807行の間)
[SQL]: SELECT `R_1`.`nation`,`R_1`.`o_year`,SUM(1) AS `sum_profit` FROM (SELECT `R_3`.`nation`,EXTRACT(YEAR FROM `R_5`.`o_orderdate`) AS `o_year` FROM `ciscodv.Q-1919832149200026`.`R_3` INNER JOIN `ciscodv.Q-1919832149200026`.`R_4` ON `R_3`.`n_nationkey` = `R_4`.`s_nationkey` INNER JOIN `ciscodv.Q-1919832149200026`.`R_5` ON `R_4`.`s_suppkey` = `R_5`.`l_suppkey` INNER JOIN `ciscodv.Q-1919832149200026`.`R_2` ON `R_5`.`l_partkey` = `R_2`.`ps_partkey` AND `R_5`.`l_suppkey` = `R_2`.`ps_suppkey`) `R_1` GROUP BY `R_1`.`nation`,`R_1`.`o_year` ORDER BY `R_1`.`nation` NULLS FIRST,`R_1`.`o_year` DESC NULLS LAST
仮想スキャンR_2:
R_2 - データソースパス: /users/composite/drill/ds/impala20_247
R_2- データソースタイプ: Impala
R_2 - SQL: SELECT tpch.partsupp.`ps_partkey`,tpch.partsupp.`ps_suppkey` FROM tpch.partsupp
R_2 - 推定行データ量: 64
R_2 - 推定行数: 8000000
R_2 - 推定総データ量: 512000000
R_2 - パーティション数: 1
R_2 - パーティション列名: ps_partkey
R_2 - パーティションランク: 100
仮想スキャンR_3:
R_3 - データソースパス: /users/composite/drill/ds/impala20_247
R_3 - データソースタイプ: Impala
R_3 - SQL: SELECT tpch.nation.`n_name` AS `nation`,tpch.nation.`n_nationkey` FROM tpch.nation WHERE (tpch.nation.`n_nationkey` > 5 AND tpch.nation.`n_nationkey` < 19)
R_3 - 推定行データ量: 4294967398
R_3 - 推定行数: 14
R_3 - 推定総データ量: 60129543572
R_3 - パーティション数: 8
R_3 - パーティション列名: nation
R_3 - パーティションランク: 150
仮想スキャンR_4:
R_4 - データソースパス: /users/composite/drill/ds/tpchorcl236
R_4 - データソースタイプ: Oracle
R_4 - SQL: SELECT "C##TPCH10"."H_SUPPLIER"."S_SUPPKEY","C##TPCH10"."H_SUPPLIER"."S_NATIONKEY" FROM "C##TPCH10"."H_SUPPLIER" WHERE ("C##TPCH10"."H_SUPPLIER"."S_NATIONKEY" < 19 AND "C##TPCH10"."H_SUPPLIER"."S_NATIONKEY" > 5)
R_4 - 推定行データ量: 64
R_4 - 推定行数: 56089
R_4 - 推定総データ量: 3589696
R_4 - パーティション数: 1
R_4 - パーティション列名: s_suppkey
R_4 - パーティションランク: 100
仮想スキャンR_5:
R_5 - データソースパス: /users/composite/drill/ds/tpchorcl234
R_5 - データソースタイプ: オラクル
R_5 - SQL: SELECT "C##TPCH10"."H_PART"."P_PARTKEY","C##TPCH10"."H_ORDER"."O_ORDERDATE","C##TPCH10"."H_LINEITEM"."L_PARTKEY","C##TPCH10"."H_LINEITEM"."L_SUPPKEY" FROM "C##TPCH10"."H_PART" INNER JOIN ("C##TPCH10"."H_LINEITEM" INNER JOIN "C##TPCH10"."H_ORDER" ON "C##TPCH10"."H_LINEITEM"."L_ORDERKEY" = "C##TPCH10"."H_ORDER"."O_ORDERKEY") ON "C##TPCH10"."H_PART"."P_NAME" LIKE '%dodger%' AND "C##TPCH10"."H_PART"."P_PARTKEY" = "C##TPCH10"."H_LINEITEM"."L_PARTKEY"
R_5 - 推定行データ量: 168
R_5 - 推定行数: 31959459
R_5 - 推定総データ量: 5369189112
R_5 - パーティション数: 1
R_5 - パーティション列名: p_partkey
R_5 - パーティションランク: 100
次の表で、クエリー実行プランのさまざまなフィールドについて説明します。
フィールド
説明
[Estimated rows returned(返される行の推定数)]
クエリー全体で返される推定行数。上記の例では、クエリーに複数のデータソースが使用されており、返される行の推定数が8Mであることに注目します。
[SQL]
実行されているSQLクエリー。上記の例では、最上位のクエリーがメインクエリーであり、パーティション化されたクエリーに分解されることに注目します。
[Virtual Scan(仮想スキャン)]
 
 
仮想スキャンは、パーティション列によってパーティション化された複数のクエリーを生成するデータソースに対するFETCHを表します。
[Data Source Path(データソースパス)]
各仮想スキャンで使用されている各データソースのパス。
[Data Source Type(データソースタイプ)]
各仮想スキャンで使用されている各データソースの種類。
[Estimated Row Data Volume(推定行データ量)]
バイト単位の推定行データ量。
[Estimated Number of Rows(推定行数)]
各仮想スキャンで返される推定行数。
[Estimated Total Data Volume(推定総データ量)]
各仮想スキャンの推定総データ量。
[Partition Count(パーティション数)]
[Partition Count(パーティション数)]は、動的に計算されるパーティション列の範囲の数を表します。これは、各仮想スキャンの一部として発行されるパーティション化されたクエリーの数を示します。
[Partition Column Name(パーティション列名)]
これは、パーティション化されたクエリーを発行するための最適な候補として選択された列です。最も可能性の高い候補は数値列です。
[Partition Rank(パーティションランク)]
パーティションランクは、データ型、値の一意性、および値の分散に使用できる統計の種類(詳細または境界)に基づいて、候補パーティション列に割り当てられる重みです。重みが最も大きい列の1つがパーティション列として指定されます。
注意: クエリー実行プランの最上位のSELECTノードで、注「No Parallelization(並列化なし)」は、クエリーが並行して処理される条件に一致しなかったことを示します。このようなシナリオの理由には、同時要求制限が設定されていない、データソースの特性が並列処理に適していない、[Case Sensitivity(大文字と小文字の区別)]または[Trailing Spaces(末尾のスペース)]の設定で並列処理が許可されていない、準結合の最適化が並列処理よりも優先されるなどがあります。このような場合は、該当する設定を調整して、並列モードを強制します。
クエリープランに並列フェッチが表示されているにもかかわらず、クエリーが並列モードで実行されない場合は、ランタイム障害が発生し、クラシックエンジンへのフォールバックが発生する可能性があります。フォールバックの理由は、[Server(サーバー)] > [SQL Engine(SQLエンジン)] > [Parallel Processing(並列処理)] > [Log Level(ログレベル)]([HIGH(高)]に設定されている場合)のDVログに記録されます。ランタイム障害が発生する理由はさまざまです。たとえば、ノードがクラスターから切断された、構成されたメモリーがクエリーを終了するのに十分でなかった、ランタイムコードの生成によって障害が発生したなどです。