フルトレース表示機能は、ユーザーが業務システムを簡単に管理および分析できるよう支援します。この機能では、JDBCまたはSQLインターフェースを使用して業務データベースに接続する際に、呼び出しリクエストに関連付けられたTrace IDを設定できます。このTrace IDはその後、OceanBaseデータベースのフルトレースシステムに記録され、ユーザーが後でシステムパフォーマンス分析や障害調査を行いやすくなります。Show Traceコマンドを使用すると、Trace IDに関連する詳細情報を照会でき、システムの稼働状況をより明確に把握できます。
OceanBase運用管理プラットフォーム(OCP)によるトレース情報の表示
OCPを使用すると、特定のリクエストを迅速に検索し、システムパフォーマンス分析や障害診断を実行できます。
位置特定分析
OCPは、時間消費量検索、Trace IDまたはSQL ID検索など、さまざまな検索軸をサポートしており、ユーザーが問題の発生箇所を迅速に特定できるよう支援します。さらに、OCPは直感的なフルリンクトレース情報表示方式も提供しており、ユーザーはクライアントからデータベース内部の各段階に至るまでのリクエストの実行詳細を確認できます。
操作手順
OCPでリンク情報を照会するには、以下の手順を実行します。詳細については、リンクの照会を参照してください。
- OCPにログインします。
- 左側のナビゲーションバーでシステム管理 > ログサービスを選択します。
- リンククエリタブをクリックして、リンククエリ画面に移動します。
- リンククエリ画面でクエリ条件を設定することで、ターゲットTraceの特定を補助します。
- クエリボタンをクリックします。スパンノードのタイムライン上にカーソルを合わせると、ポップアップウィンドウにスパンの詳細情報が表示されます。
コマンドラインでトレース情報を表示する
OceanBaseデータベースのコマンドラインインターフェースでは、Show Trace機能を使用することもできます。この機能は、SQLステートメント実行後に、実行プロセスの詳細な呼び出しチェーンと所要時間情報を迅速に取得するために便利です。この方法により、パフォーマンスボトルネックを簡単に特定し、さらなる分析やチューニングを行うことができます。
位置分析
ユーザーがコマンドラインで特定のステートメントを手動で実行した後、その実行プロセスに対するパフォーマンス分析やチューニングが必要な場合は、「Show Trace」機能を使用して、そのステートメントの実行呼び出しチェーンと、チェーン内の各段階での時間消費状況を確認できます。この機能により、ユーザーはパフォーマンスのボトルネックポイントを容易に特定し、それに基づいて分析や最適化を行うことができます。
操作手順
以下の例は、2つの分散パラレル実行タスク(px_task)の実行状況を示しています。リンク関連のログ情報を表示するには、Trace機能に基づいて前回のSQLリクエストログを検索するを参照してください。
SQL Trace機能を有効にします。
obclient [test]>SET ob_enable_show_trace = 1;クエリ対象のSQL文を手動で実行します。
obclient [test]>select/*+parallel(2)*/ count(*) from t1; +----------+ | count(*) | +----------+ | 5 | +----------+ 1 row in set (0.005 sec)SHOW TRACEステートメントを使用して、そのステートメントの実行呼び出しリンクとリンク内の各段階の時間消費状況を確認します。obclient [test]>show trace; +-------------------------------------------+----------------------------+------------+ | Operation | StartTime | ElapseTime | +-------------------------------------------+----------------------------+------------+ | obclient | 2023-06-25 17:51:30.143537 | 4.667 ms | | └─ ob_proxy | 2023-06-25 17:51:30.143716 | 4.301 ms | | └─ com_query_process | 2023-06-25 17:51:30.145119 | 2.527 ms | | └─ mpquery_single_stmt | 2023-06-25 17:51:30.145123 | 2.513 ms | | ├─ sql_compile | 2023-06-25 17:51:30.145133 | 0.107 ms | | │ └─ pc_get_plan | 2023-06-25 17:51:30.145135 | 0.061 ms | | └─ sql_execute | 2023-06-25 17:51:30.145252 | 2.350 ms | | ├─ open | 2023-06-25 17:51:30.145252 | 0.073 ms | | ├─ response_result | 2023-06-25 17:51:30.145339 | 2.186 ms | | │ ├─ px_schedule | 2023-06-25 17:51:30.145342 | 1.245 ms | | │ │ ├─ px_task | 2023-06-25 17:51:30.146391 | 1.113 ms | | │ │ │ ├─ get_das_id | 2023-06-25 17:51:30.146979 | 0.001 ms | | │ │ │ ├─ do_local_das_task | 2023-06-25 17:51:30.147012 | 0.050 ms | | │ │ │ └─ close_das_task | 2023-06-25 17:51:30.147237 | 0.014 ms | | │ │ └─ px_task | 2023-06-25 17:51:30.146399 | 0.868 ms | | │ │ ├─ get_das_id | 2023-06-25 17:51:30.147002 | 0.001 ms | | │ │ ├─ do_local_das_task | 2023-06-25 17:51:30.147036 | 0.041 ms | | │ │ └─ close_das_task | 2023-06-25 17:51:30.147183 | 0.011 ms | | │ └─ px_schedule | 2023-06-25 17:51:30.147437 | 0.001 ms | | └─ close | 2023-06-25 17:51:30.147536 | 0.049 ms | | └─ end_transaction | 2023-06-25 17:51:30.147571 | 0.002 ms | +-------------------------------------------+----------------------------+------------+