ディストリビューション計画は、以下の手順でクエリの問題を分析します:
(G)V$OB_PLAN_CACHE_PLAN_STATビューおよび(G)V$OB_SQL_AUDITの実行計画タイプのレコードを確認し、ディストリビューション計画であるかどうかを判断します。その実行計画が正しいかどうかを分析します。
trace_idを使用してクエリ(G)V$OB_SQL_AUDITに関連付け、実行されたすべてのサブ計画の時間消費状況を確認します。各サブ計画のRPC実行には1つのSQL Auditレコードが対応しており、このSQL Auditレコードを分析して問題を特定します。
以下の例のように、is_executor_rpc = 1はサブ計画の実行がSQL Auditに記録されていることを示し、主に実行関連情報を記録します。is_executor_rpc = 0は、SQLリクエストを受信したスレッドのSQL Auditにおける記録を示します。この記録には、SQL実行プロセスの情報が含まれており、SQL情報や実行計画情報の取得などが含まれます。
obclient> SELECT/*+ PARALLEL(15)*/
sql_id,
is_executor_rpc,
elapsed_time
FROM oceanbase.GV$OB_SQL_AUDIT
WHERE trace_id = 'YB420AB74FC6-00056349D323483A';
実行結果は次のとおりです:
+----------------------------------+-----------------+--------------+
| sql_id | is_executor_rpc | elapsed_time |
+----------------------------------+-----------------+--------------+
| | 1 | 124 |
| | 1 | 191 |
| | 1 | 123447 |
| | 1 | 125 |
| 20172B18BC9EE3F806D4149895754CE0 | 0 | 125192 |
| | 1 | 148 |
| | 1 | 149 |
| | 1 | 140 |
+----------------------------------+-----------------+--------------+