MySQL 8.0 リファレンスマニュアル


28.4.4.2 diagnostics() プロシージャ

診断目的で現在のサーバーステータスのレポートを作成します。

このプロシージャは、sql_log_bin システム変数のセッション値を操作して、実行中にバイナリロギングを無効にします。 これは制限付き操作であるため、このプロシージャには制限付きセッション変数を設定するのに十分な権限が必要です。 セクション5.1.9.1「システム変数権限」を参照してください。

diagnostics() 用に収集されるデータには、次の情報が含まれます:

  • metrics ビューからの情報 (セクション28.4.3.21「メトリックビュー」 を参照)

  • 95 パーセンタイルでクエリーを検出するビューなど、その他の関連する sys スキーマビューからの情報

  • MySQL サーバーが NDB Cluster の一部である場合、ndbinfo スキーマからの情報

  • レプリケーションステータス (ソースとレプリカの両方)

sys スキーマビューの一部は、初期値 (オプション)、全体値およびデルタ値として計算されます:

  • 初期ビューは、diagnostics() プロシージャの開始時のビューの内容です。 この出力は、デルタ表示に使用される開始値と同じです。 初期ビューは、diagnostics.include_raw 構成オプションが ON の場合に含まれます。

  • 全体的なビューは、diagnostics() プロシージャの最後にあるビューの内容です。 この出力は、デルタ表示に使用される終了値と同じです。 ビュー全体が常に含まれます。

  • デルタビューは、プロシージャの実行の開始と終了の違いです。 最小値と最大値は、それぞれ終了ビューの最小値と最大値です。 監視対象期間の最小値および最大値を反映しているとはかぎりません。 metrics ビューを除き、デルタは最初の出力と最後の出力の間でのみ計算されます。

パラメータ
  • in_max_runtime INT UNSIGNED: データ収集の最大時間 (秒)。 NULL を使用して、デフォルトの 60 秒のデータを収集します。 それ以外の場合は、0 より大きい値を使用します。

  • in_interval INT UNSIGNED: データ収集間のスリープ時間 (秒)。 NULL を使用して、デフォルトの 30 秒間スリープします。 それ以外の場合は、0 より大きい値を使用します。

  • in_auto_config ENUM('current', 'medium', 'full'): 使用するパフォーマンススキーマ構成。 許可される値は次のとおりです:

    • current: 現在のインストゥルメントおよびコンシューマ設定を使用します。

    • medium: 一部のインストゥルメントおよびコンシューマを有効にします。

    • full: すべてのインストゥルメントおよびコンシューマを有効にします。

    注記

    インストゥルメントおよびコンシューマが有効になるほど、MySQL サーバーのパフォーマンスへの影響が大きくなります。 medium 設定、特にパフォーマンスに大きな影響を与える full 設定には注意してください。

    medium または full 設定を使用するには、SUPER 権限が必要です。

    current 以外の設定を選択すると、現在の設定がプロシージャの最後にリストアされます。

構成オプション

diagnostics() 操作は、次の構成オプションまたは対応するユーザー定義変数を使用して変更できます (セクション28.4.2.1「sys_config テーブル」 を参照):

  • debug, @sys.debug

    このオプションが ON の場合は、デバッグ出力を生成します。 デフォルトは OFF です。

  • diagnostics.allow_i_s_tables, @sys.diagnostics.allow_i_s_tables

    このオプションが ON の場合、diagnostics() プロシージャは INFORMATION_SCHEMA.TABLES テーブルに対してテーブルスキャンを実行できます。 多くのテーブルがある場合、これはコストがかかる可能性があります。 デフォルトは OFF です。

  • diagnostics.include_raw, @sys.diagnostics.include_raw

    このオプションが ON の場合、diagnostics() プロシージャの出力には、metrics ビューのクエリーからの RAW 出力が含まれます。 デフォルトは OFF です。

  • statement_truncate_len, @sys.statement_truncate_len

    format_statement() 関数によって戻されるステートメントの最大長。 長いステートメントはこの長さに切り捨てられます。 デフォルトは 64 です。

30 秒ごとに反復を開始し、現在のパフォーマンススキーマ設定を使用して最大 120 秒間実行する診断レポートを作成します:

mysql> CALL sys.diagnostics(120, 30, 'current');

diagnostics() プロシージャの実行時にファイル内の出力を取得するには、mysql クライアントの tee filename および notee コマンドを使用します (セクション4.5.1.2「mysql クライアントコマンド」 を参照):

mysql> tee diag.out;
mysql> CALL sys.diagnostics(120, 30, 'current');
mysql> notee;

関連キーワード:  プロシージャ, sys, 関数, summary, latency, user, schema, diagnostics, setup, host