Database Autonomy Service (DAS) は、[SQL エクスプローラー] 機能を提供します。SQL エクスプローラーを使用すると、SQL 文のヘルスステータスを確認し、パフォーマンスの問題をトラブルシューティングできます。このトピックでは、[SQL エクスプローラー] 機能を [SQL Explorer And Audit] モジュールで使用する手順について説明します。
前提条件
管理するデータベースインスタンスが DAS に接続されており、[通常アクセス] 状態であること。
データベースインスタンスで SQL Explorer and Audit モジュールが有効になっていること。詳細については、「概要」トピックの SQL Explorer and Audit を有効にする セクションをご参照ください。
機能の説明
SQL エクスプローラー機能は、実行されたすべての DQL、DML、および DDL 文に関する情報を記録します。DAS はデータベースカーネルから情報を取得するため、CPU リソースの消費量はごくわずかです。
サポートされているデータベースとリージョン
詳細については、「エディションとサポートされている機能」をご参照ください。
使用上の注意
データベースインスタンスで SQL エクスプローラーを有効にすると、SQL エクスプローラーによって生成された分析データと統計データ (SQL の詳細は除く) は 30 日間保存できます。
SQL エクスプローラーによって生成された SQL 詳細の保存期間は、データベースインスタンスに対して DAS Enterprise Edition を有効にしたときに指定した保存期間と同じです。
SQL Explorer and Audit モジュールを無効にしても、ビジネスには影響しません。ただし、SQL Explorer and Audit によって生成されたすべてのデータは消去されます。この機能を無効にする前に、データをコンピューターにエクスポートして保存することをお勧めします。詳細については、「概要」トピックの SQL Explorer and Audit を無効にする セクションをご参照ください。
PolarDB-X 1.0 に接続されている ApsaraDB RDS for MySQL インスタンスで SQL 文が実行されると、シャーディングのため、ApsaraDB RDS for MySQL インスタンスに複数の SQL ログが生成されます。
データベースインスタンスのデータ移行中に、一時的な接続が発生する場合があります。データ移行中は、SQL エクスプローラーのデータ損失は正常です。
データベースインスタンスの負荷が高い場合、データ損失が発生する可能性があります。そのため、SQL エクスプローラーが増分データで収集した統計は不正確になる可能性があります。
SQL ログに記録される SQL 文の長さは最大 8,192 バイトです。ApsaraDB RDS for MySQL インスタンスまたは PolarDB for MySQL クラスタに記録される SQL 文の最大長を指定するパラメーターを設定できます。
SQL 文の最大長を 8,192 バイト以下の長さに指定した場合、指定した長さが上限として使用され、SQL 文の超過部分は記録されません。データの収集と処理中に、SQL 文にプレフィックスが追加されます。その結果、SQL ログの SQL 文の最大長は、指定した長さよりわずかに短くなります。
SQL 文の最大長を 8,192 バイトより大きい長さに指定した場合、上限はデフォルトで 8,192 バイトです。SQL 文の実際の長さが上限を超える場合、超過部分は記録されません。データの収集と処理中に、SQL 文にプレフィックスが追加されます。その結果、SQL ログの SQL 文の最大長は 8,192 バイトよりわずかに短くなります。
説明MySQL 5.6 または 5.7 を実行する ApsaraDB RDS for MySQL インスタンスと PolarDB for MySQL クラスタの場合、SQL 文の最大長は [loose_rds_audit_max_sql_size] パラメーターで指定されます。
MySQL 8.0 を実行する ApsaraDB RDS for MySQL インスタンスと PolarDB for MySQL クラスタの場合、SQL 文の最大長は [loose_rds_audit_log_event_buffer_size] パラメーターで指定されます。
ApsaraDB RDS for PostgreSQL インスタンスで PgBouncer が有効になっている場合、SQL エクスプローラーは PgBouncer を使用して実行された SQL 文を記録しません。
手順
DAS コンソール にログインします。
左側のナビゲーションウィンドウで、[インテリジェント O&M センター] > インスタンスモニター を選択します。
表示されたページで、管理するデータベースインスタンスを見つけ、インスタンス ID をクリックします。インスタンスの詳細ページが表示されます。
左側のナビゲーションウィンドウで、 を選択します。表示されたページで、SQL Explorer タブをクリックします。
[SQL エクスプローラー] タブで、ビジネス要件に基づいて次の機能を使用します。
説明時間範囲を選択する際は、終了時刻が開始時刻より後であり、開始時刻と終了時刻の間隔が 24 時間を超えないようにしてください。データをクエリする時間範囲は、DAS Enterprise Edition が有効になった時刻より後で、SQL エクスプローラーのデータ保存期間内でなければなりません。
時間範囲の表示: SQL エクスプローラーの結果をクエリする実行済み SQL 文の時間範囲を選択します。実行期間の文布、実行時間、実行回数 情報を、時間範囲全体にわたるすべての SQL 文について表示できます。完全なリクエスト統計 セクションで、時間範囲全体にわたるすべての SQL 文の詳細を表示し、エクスポートできます。
説明最大 1,000 件の SQL ログをエクスポートできます。より広い時間範囲内でより多くの SQL ログを取得する場合は、検索 (監査) 機能を使用できます。
比較リストの表示: SQL エクスプローラーの結果を比較する実行済み SQL 文の日付と時間範囲を選択します。実行期間の文布、実行時間、実行回数 の比較結果を、時間範囲全体にわたるすべての SQL 文について表示できます。比較リストのリクエスト セクションで、比較結果の詳細を表示できます。
ソース統計: アクセスソースを収集する実行済み SQL 文の時間範囲を選択します。その後、時間範囲全体にわたるすべてのリクエストソースを表示できます。
SQL レビュー: SQL レビュー機能は、指定された時間範囲とベースライン時間範囲内のデータベースインスタンスのワークロード分析を実行し、データベースインスタンスで実行されている SQL クエリの詳細分析を実行します。この機能は、インデックスの最適化の提案、SQL の書き換えの提案、リソース消費量の多い上位 SQL 文、新しい SQL 文、失敗した SQL 文、SQL 機能分析、実行のばらつきが大きい SQL 文、パフォーマンスが低下した SQL 文、およびデータベースインスタンスのトラフィックを最も多く生成する上位テーブルを表示します。詳細については、「SQL レビュー」をご参照ください。
関連する SQL の特定: 表示するメトリックを選択し、分析 をクリックします。指定されたメトリックのパフォーマンスに最適な SQL 文を特定するには、1 ~ 5 分かかります。
重要ホットストレージとコールドストレージモードの組み合わせを使用する SQL Explorer and Audit モジュールによって 7 日以上前に生成されたデータは、コールドストレージモードで保存されます。7 日以上前に生成された SQL 詳細を分析する場合、DAS は計算と分析のためのタスクを作成します。タスクリスト をクリックして、タスクの進捗状況と履歴タスクを表示できます。
7 日以上前に SQL Explorer and Audit モジュールによって生成されたデータをクエリする場合、クエリに対して従量課金制で課金されます。詳細については、「請求の詳細」をご参照ください。
説明
実行期間の文布: [実行時間分布] タブでは、指定した時間範囲に基づいて、SQL クエリの実行時間の分布を表示できます。統計データは 1 分ごとに収集されます。実行時間は次の 7 つの範囲に分けられます。
[0,1] ms: 実行時間が 0 ms から 1 ms の範囲であることを示します。チャートは、実行時間がこの範囲内にある SQL クエリの割合を示しています。(1,2] ms: 実行時間が 1 ms より大きく 2 ms 以下であることを示します。チャートは、実行時間がこの範囲内にある SQL クエリの割合を示しています。(2,3] ms: 実行時間が 2 ms より大きく 3 ms 以下であることを示します。チャートは、実行時間がこの範囲内にある SQL クエリの割合を示しています。(3,10] ms: 実行時間が 3 ms より大きく 10 ms 以下であることを示します。チャートは、実行時間がこの範囲内にある SQL クエリの割合を示しています。(10,100] ms: 実行時間が 10 ms より大きく 100 ms 以下であることを示します。チャートは、実行時間がこの範囲内にある SQL クエリの割合を示しています。(0.1,1]s: 実行時間が 0.1 秒より大きく 1 秒以下であることを示します。チャートは、実行時間がこの範囲内にある SQL クエリの割合を示しています。> 1s: 実行時間が 1 秒より大きいことを示します。チャートは、実行時間がこの範囲内にある SQL クエリの割合を示しています。
説明実行期間の文布 タブのセクションには、インスタンスでの SQL 文の実行時間が経時的に表示されます。チャートの青い領域が大きいほど、インスタンスで SQL 文が実行されたときのインスタンスのヘルス状態は良好です。チャートのオレンジと赤の領域が大きいほど、インスタンスで SQL 文が実行されたときのインスタンスのヘルス状態は低下します。
実行時間: [実行時間] タブでは、時間範囲を指定して SQL クエリの実行時間を表示できます。
すべてのリクエスト統計: 指定した時間範囲に基づいて、SQL 文の詳細を表示できます。詳細には、各 SQL 文の SQL テキスト、実行時間の割合、平均実行時間、および実行トレンドが含まれます。
説明特定の SQL テンプレートを使用する SQL 文の実行時間の割合は、次の式に基づいて計算できます。実行時間の割合 = (SQL テンプレートを使用する SQL 文の実行時間 × SQL 文の実行回数) / (すべての SQL 文の合計実行時間 × 合計実行回数) × 100%。実行時間の割合が高いほど、データベースインスタンスはより多くの MySQL リソースを使用して対応する SQL 文を実行していることを示します。
SQL ID: [SQL ID] をクリックすると、対応する SQL テンプレートを使用する SQL 文のパフォーマンストレンドとサンプルデータを表示できます。
SQL サンプル: [SQL サンプル] タブでは、各サンプル SQL リクエストを開始したクライアントを表示できます。
説明SQL サンプルのエンコードには UTF-8 文字セットが使用されます。
FAQ
関連 API 操作
操作 | 説明 |
データベースインスタンスの SQL エクスプローラーデータで、失敗した SQL クエリに関する情報を非同期的にクエリします。特定の時間範囲内で最大 20 件の失敗した SQL クエリをクエリできます。 | |
データベースインスタンスの SQL エクスプローラーデータで、SQL テンプレートの失敗した実行回数を非同期的にクエリします。 | |
データベースインスタンスの SQL エクスプローラーデータで、MySQL エラーコードを生成する SQL 文の ID を非同期的にクエリします。 | |
データベースインスタンスの SQL エクスプローラーデータで、MySQL エラーコードと各エラーコードに対応する SQL クエリの数 を非同期的にクエリします。 | |
データベースインスタンスの SQL エクスプローラーデータで、アクセスソース別にすべてのリクエスト統計をクエリします。 | |
データベースインスタンスの SQL エクスプローラーデータで、SQL ID 別にすべてのリクエスト統計を非同期的にクエリします。 | |
データベースインスタンスの SQL エクスプローラーデータで、SQL ID 別にサンプル SQL 文をクエリします。最大 20 件のサンプル SQL 文をクエリできます。 | |
過去 7 日間にデータベースインスタンスに対して SQL Explorer and Audit モジュールが生成したホットストレージデータの詳細をクエリします。 |