Azure Database for MySQL での低速クエリ ログSlow query logs in Azure Database for MySQL

Azure Database for MySQL では、ユーザーは低速クエリ ログを使用できます。In Azure Database for MySQL, the slow query log is available to users. トランザクション ログへのアクセスはサポートされていません。Access to the transaction log is not supported. 低速クエリ ログは、トラブルシューティングの目的でパフォーマンスのボトルネックを特定するために使用できます。The slow query log can be used to identify performance bottlenecks for troubleshooting.

MySQL の低速クエリ ログの詳細については、MySQL のリファレンス マニュアルの低速クエリ ログに関するセクションを参照してください。For more information about the MySQL slow query log, see the MySQL reference manual's slow query log section.

低速クエリ ログにアクセスするAccess slow query logs

Azure portal と Azure CLI を使用して、Azure Database for MySQL の低速クエリ ログを一覧表示およびダウンロードできます。You can list and download Azure Database for MySQL slow query logs using the Azure portal, and the Azure CLI.

Azure Portal で、ご利用の Azure Database for MySQL サーバーを選択します。In the Azure portal, select your Azure Database for MySQL server. [監視] の見出しの下の、 [サーバー ログ] ページを選択します。Under the Monitoring heading, select the Server Logs page.

Azure CLI の詳細については、Azure CLI を使用した低速クエリ ログの構成とアクセスに関するページを参照してください。For more information on Azure CLI, see Configure and access slow query logs using Azure CLI.

同様に、診断ログを使用してログを Azure Monitor にパイプできます。Similarly, you can pipe the logs to Azure Monitor using Diagnostic Logs. 詳細については、以下を参照してください。See below for more information.

ログのリテンション期間Log retention

ログは、作成日から最大 7 日間使用できます。Logs are available for up to seven days from their creation. 使用可能なログの合計サイズが 7 GB を超える場合は、空き領域を利用できるようになるまで、古いファイルから削除されます。If the total size of the available logs exceeds 7 GB, then the oldest files are deleted until space is available.

ログのローテーションは、24 時間ごとか 7 GB ごとのどちらか早い方のタイミングで行われます。Logs are rotated every 24 hours or 7 GB, whichever comes first.

低速クエリ ログを構成するConfigure slow query logging

既定では、低速クエリ ログは無効です。By default the slow query log is disabled. 有効にするには、slow_query_log をオンに設定します。To enable it, set slow_query_log to ON.

調整できるその他のパラメーターは次のとおりです。Other parameters you can adjust include:

  • long_query_time: long_query_time (秒単位) より長いクエリがある場合は、そのクエリが記録されます。long_query_time: if a query takes longer than long_query_time (in seconds) that query is logged. 既定値は 10 秒です。The default is 10 seconds.
  • log_slow_admin_statements: オンの場合は、slow_query_log に書き込まれるステートメントに、ALTER_TABLE や ANALYZE_TABLE などの管理ステートメントが含まれます。log_slow_admin_statements: if ON includes administrative statements like ALTER_TABLE and ANALYZE_TABLE in the statements written to the slow_query_log.
  • log_queries_not_using_indexes: インデックスを使用していないクエリを slow_query_log に記録するかどうかを決定します。log_queries_not_using_indexes: determines whether queries that do not use indexes are logged to the slow_query_log
  • log_throttle_queries_not_using_indexes:このパラメーターは、低速クエリ ログに書き込むことができる、インデックスを使用していないクエリの数を制限します。log_throttle_queries_not_using_indexes: This parameter limits the number of non-index queries that can be written to the slow query log. このパラメーターは、Log_queries_not_using_indexes がオンに設定されている場合に有効です。This parameter takes effect when log_queries_not_using_indexes is set to ON.
  • log_output: "File" の場合、ローカル サーバー ストレージと Azure Monitor 診断ログの両方に低速クエリ ログの書き込みが許可されます。log_output: if "File", allows the slow query log to be written to both the local server storage and to Azure Monitor Diagnostic Logs. "None" の場合、低速クエリ ログはローカル サーバー ストレージのみに書き込まれます。If "None", the slow query log will only be written to the local server storage.

注意

sql_text の場合、2048 文字を超えたログは切り捨てられます。For sql_text, log will be truncated if it exceeds 2048 characters.

低速クエリ ログのパラメーターの完全な説明については、MySQL の低速クエリ ログのドキュメントを参照してください。See the MySQL slow query log documentation for full descriptions of the slow query log parameters.

診断ログDiagnostic logs

Azure Database for MySQL は、Azure Monitor の診断ログと統合されます。Azure Database for MySQL is integrated with Azure Monitor Diagnostic Logs. MySQL サーバーで低速クエリ ログを有効にしたら、Azure Monitor ログ、Event Hubs、または Azure Storage に対して、それらが出力されるように選択できます。Once you have enabled slow query logs on your MySQL server, you can choose to have them emitted to Azure Monitor logs, Event Hubs, or Azure Storage. 診断ログを有効にする方法の詳細については、診断ログのドキュメントの操作方法のセクションを参照してください。To learn more about how to enable diagnostic logs, see the how to section of the diagnostic logs documentation.

重要

サーバー ログに対するこの診断機能は、General Purpose 価格レベルとメモリ最適化価格レベルでのみ使用できます。This diagnostic feature for server logs is only available in the General Purpose and Memory Optimized pricing tiers.

次の表は、各ログの内容を説明しています。The following table describes what's in each log. 出力方法に応じて、含まれるフィールドとそれらが表示される順序が異なることがあります。Depending on the output method, the fields included and the order in which they appear may vary.

プロパティProperty 説明Description
TenantId テナント IDYour tenant ID
SourceSystem Azure
TimeGenerated [UTC]TimeGenerated [UTC] ログが記録されたときのタイムスタンプ (UTC)Time stamp when the log was recorded in UTC
Type ログの種類。Type of the log. 常に AzureDiagnosticsAlways AzureDiagnostics
SubscriptionId サーバーが属するサブスクリプションの GUIDGUID for the subscription that the server belongs to
ResourceGroup サーバーが属するリソース グループの名前Name of the resource group the server belongs to
ResourceProvider リソース プロバイダーの名前。Name of the resource provider. 常に MICROSOFT.DBFORMYSQLAlways MICROSOFT.DBFORMYSQL
ResourceType Servers
ResourceId リソース URIResource URI
Resource サーバーの名前Name of the server
Category MySqlSlowLogs
OperationName LogEvent
Logical_server_name_s サーバーの名前Name of the server
start_time_t [UTC]start_time_t [UTC] クエリの開始時刻Time the query began
query_time_s クエリの実行にかかった合計時間 (秒)Total time in seconds the query took to execute
lock_time_s クエリのロックにかかった合計時間 (秒)Total time in seconds the query was locked
user_host_s ユーザー名Username
rows_sent_s 送信された行の数Number of rows sent
rows_examined_s 検査された行の数Number of rows examined
last_insert_id_s last_insert_idlast_insert_id
insert_id_s 挿入 IDInsert ID
sql_text_s クエリ全体Full query
server_id_s サーバーの IDThe server's ID
thread_id_s スレッド IDThread ID
\_ResourceId リソース URIResource URI

次の手順Next Steps