フルリンクトレースの表示機能は、ユーザーが業務システムを簡単に管理および分析するのに役立ちます。この機能により、JDBCまたはSQLインターフェースを介して業務データベースに接続する際に、呼び出し要求に関連付けるTrace IDを設定できます。このTrace IDはその後、OceanBaseデータベースのフルリンクトレースシステムに記録され、ユーザーが後からシステムのパフォーマンス分析や障害調査を行うのに便利です。Show Traceコマンドを使用すると、Trace IDに関連する詳細情報を照会でき、システムの稼働状況をより明確に把握できます。
OceanBase運用管理プラットフォーム(OCP)によるトレース情報の確認
OCPを使用すると、特定のリクエストを迅速に検索し、システム性能分析や障害調査を実行できます。
ロケーション分析
OCPは、時間消費検索、Trace ID検索、SQL ID検索など、さまざまな検索軸をサポートしており、ユーザーが問題の発生箇所を素早く特定できるようにします。さらに、OCPは直感的な全リンクトレース情報の表示方法も提供しており、ユーザーはクライアントからデータベース内部の各段階におけるリクエストの実行詳細を確認できます。
手順
OCPでは以下の手順でリンク情報を照会できます。詳細については、リンクの照会を参照してください。
- OCPにログインします。
- 左側のナビゲーションバーで、システム管理 > ログサービスを選択します。
- リンク照会タブをクリックし、リンク照会画面に入ります。
- リンク照会画面で検索条件を設定することで、対象Traceの特定を支援します。
- 照会ボタンをクリックします。カーソルをspanノードのタイムライン上に合わせると、ポップアップウィンドウにそのspanの詳細情報が表示されます。
コマンドラインでのトレース情報の表示
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 | +-------------------------------------------+----------------------------+------------+