このガイドでは、PolarDB-X コンソールのスロークエリログ機能を使用して、データベースのパフォーマンスに影響を与えているクエリを検索、分析、および最適化する方法を示します。
概念
開始する前に、次の概念を理解することが重要です。
スロークエリの定義: 実行時間が 1 秒を超えるクエリは「遅い」と定義されます。
計算ノード (CN) スロークエリ (論理 SQL):
アプリケーションから PolarDB-X に送信された元の SQL クエリ。完全なビジネスレベルのリクエストを表します。
CN スロークエリのみが診断と最適化の提案をサポートしています。これは、元のアプリケーションロジックを反映しているためです。主にこれらの論理クエリを分析および最適化します。
ストレージノード (DN) スロークエリ (物理 SQL):
PolarDB-X が単一の CN クエリを実行するために基盤となるストレージノードに送信する内部サブクエリ。 1 つの CN クエリは複数の DN クエリを生成できます。
DN スロークエリは直接最適化をサポートしていません。分散実行レイヤーの高度なトラブルシューティングに使用されます。
主な機能
スロークエリログ機能は、パフォーマンスの問題を迅速に診断して解決するのに役立つ包括的なツールスイートを提供します。
パフォーマンスの急上昇をクエリに関連付けます。
PolarDB-X コンソールには、CPU 使用率とスロークエリの数が 1 つのグラフに表示されます。これにより、データベースの負荷の急上昇を引き起こした特定のクエリをすぐに確認できます。
類似のクエリをグループ化して単一の SQL テンプレートに分析します。これにより、最も頻繁に発生するパフォーマンスの問題を特定できます。各テンプレートについて、次の主要な詳細を表示できます。
実行回数
平均および最大期間
返された行数
自動最適化の提案を取得します。
PolarDB-X はスロークエリを分析し、具体的で実行可能なアドバイスを提供します。これには、新しいインデックス (ローカルインデックスやグローバルセカンダリインデックスなど) の推奨と、修正を適用した後に期待できるパフォーマンス上の利点の推定が含まれます。
ログの保持: スロークエリログは最大 30 日間保存され、その後自動的に削除されます。
PolarDB-X Standard Edition は、ストレージノード (DN) スロークエリのみをサポートしています。
スロークエリログを表示する方法
パフォーマンスのボトルネックを見つけて解決するには、次の手順に従います。
PolarDB for Xscaleコンソール にログインします。
上部のナビゲーションバーで、インスタンスがデプロイされているリージョンを選択します。
[インスタンス] ページで、[PolarDB-X 2.0] タブをクリックします。
インスタンスを見つけて、その名前をクリックします。
左側のナビゲーションウィンドウで、 を選択します。必要に応じて、[ロール] と [ノード] を選択します。
時間範囲を指定し、指定した時間範囲内で [スロークエリログのトレンド]、[イベント分布]、[スロークエリログ統計]、および [スロークエリログの詳細] を表示します。
説明時間範囲を指定する場合、終了時刻は開始時刻よりも後でなければならず、開始時刻と終了時刻の間隔は 24 時間を超えることはできません。過去 1 か月以内のスロークエリログをクエリできます。
[スロークエリログのトレンド] セクションで、[計算ノード (CN)] タブと [データノード (DN)] タブをクリックして、計算ノードとデータノードのスロークエリログを表示できます。
[スロークエリログのトレンド] セクションで、トレンドチャートの時刻をクリックして、その時刻のスロークエリログの統計と詳細を表示できます。
説明GUI の長さ制限のために SQL 文の内容が完全には表示されない場合は、ポインターを SQL 文の上に移動すると、完全な内容を表示できます。
[ノード ID] ドロップダウンリストから目的のノードを選択して、ノード上のスロークエリの数を表示します。
アイコンをクリックして、スロークエリログをコンピューターにダウンロードします。
をクリックして、選択して入力したパラメーターを API デバッグ用の OpenAPI コンソールに入力します。[イベント分布] セクションで、次の操作を実行します。
指定した時間範囲内でスロークエリログイベントをクエリできます。イベントをクリックして詳細を表示します。
[スロークエリログ統計] タブで、次の操作を実行します。
管理する SQL テンプレートを見つけて、操作 列の [詳細] をクリックします。[スローログサンプル] ダイアログボックスで、SQL テンプレートのスロークエリログサンプルを表示します。
SQL テンプレートに対応する 操作 列の 最適化 をクリックします。SQL 診断の最適化 ダイアログボックスで、SQL 診断結果を表示します。
SQL 最適化の提案を受け入れる場合は、右上隅にある コピー をクリックし、最適化された SQL 文をデータベースクライアントまたは Data Management (DMS) に貼り付けて実行します。SQL 最適化の提案を受け入れない場合は、Cancel をクリックします。
説明DAS は、SQL 文の複雑さ、テーブル内のデータ量、およびデータベースの負荷に基づいて SQL 診断を実行します。SQL 診断の実行後、20 秒以上経過してから提案が返される場合があります。診断が完了すると、SQL 診断エンジンは診断結果、最適化の提案、および予想される最適化の利点を提供します。診断結果に基づいて、提案を受け入れるかどうかを決定できます。
管理する SQL テンプレートを見つけて、操作 列の スロットリングを実行してください。 をクリックします。SQL スロットリング ダイアログボックスで、パラメーターを構成します。詳細については、「SQL スロットリング」をご参照ください。
管理する SQL 文を見つけて、操作 列の [論理 SQL] [文] をクリックして、計算ノードとデータノードの SQL 文を表示します。