イントロスペクション ツールの概要

Cloud Spanner のイントロスペクション ツールを使用すると、データベースの問題を調査できます。これらのツールは、クエリ、トランザクション、読み取りなどについてより詳細な情報を取得する目的でクエリを実行する対象となる一連の組み込みテーブルで構成されています。特定の問題に対して、どのツールを使用するべきかご不明な場合については、次の一覧に、各ツールと回答を見つける際にツールを活用できる質問の種類の概要を示しています。

クエリの統計情報

データベースの問題を調査する際には、高コストのクエリ、頻繁に実行されるクエリ、大量のデータをスキャンするクエリを把握すると便利です。

クエリ統計は、クエリについての集計統計で、1 分、10 分、60 分間隔で収集されます。正常に完了したクエリのほか、失敗したクエリ、タイムアウトになったクエリ、ユーザーがキャンセルしたクエリに関する統計情報が収集されます。

統計情報には、CPU 使用率の最高値、クエリの合計実行数、平均レイテンシ、スキャンされた大部分のデータ、追加の基本的なクエリ統計が含まれます。これらの統計情報を使用して、高コストで実行頻繁の高いクエリ、またはデータ量の多いクエリを特定できます。

最も古いアクティブなクエリ

実行中のクエリを調べて、システム上の現在のワークロードを確認したい場合があります。最も古いアクティブなクエリのツールを使用して、データベースのパフォーマンスに影響する可能性のある長時間実行クエリを調査します。このツールを使用すると、クエリの内容、実行日時、クエリが属するセッションを確認できます。

読み取りの統計情報

読み取りの統計情報を使用すると、Cloud Spanner の Reads API を使用して、データベースで最も頻繁に実行される読み取りと、最もリソース消費量の多い読み取りを調査できます。これらの統計情報は、3 つの異なる時間間隔(1分、10 分、1 時間)で収集および保存されます。Cloud Spanner は、時間間隔ごとに、最も多くのリソースを使用する読み取りを追跡します。

読み取りの統計情報を使用して、すべての読み取りの合計リソース使用量、最も CPU 使用率の高い読み取り、特定の読み取りの実行頻度が経時的にどのように変化するかを特定します。

トランザクションの統計情報

トランザクションの統計情報は、トランザクションに関連した問題を調査するために使用できます。たとえば、競合を引き起こす可能性のある実行速度が遅いトランザクションを確認する、またはパフォーマンスの低下につながるトランザクションの状態に関する変化を特定することができます。各行には、1 分、10 分、60 分の時間間隔でデータベース経由で実行されたすべてのトランザクションの統計情報が含まれています。

ロックの統計情報

ロックの統計情報を使用すると、データベースにおけるロック競合を調査できます。トランザクションの統計情報と併用すると、同じセルで同時にロックを取得することにより、ロック競合を引き起こすトランザクションを見つけることができます。

各ツールに含まれる API メソッド

Cloud Spanner では、トランザクション間の読み取りクエリとの間に重複があります。このため、各イントロスペクション ツールの結果をコンパイルする際に、どの API メソッドを含めるのかが明確になりません。次の表に、主な API メソッドと各ツールとの関係を示します。

API メソッド トランザクション モード クエリの統計情報 最も古いアクティブなクエリ 読み取りの統計情報 トランザクションの統計情報 ロックの統計情報
Read、StreamingRead 読み取り専用トランザクション1 × × ×
読み取り / 書き込みトランザクション ×
ExecuteSql、ExecuteStreamingSql 読み取り専用トランザクション1 × × × ×
読み取り / 書き込みトランザクション × ×
ExecuteBatchDml 読み取り / 書き込みトランザクション × × ×
commit 読み取り / 書き込みトランザクション(DML2、ミューテーション3 × 4 ×

注:

1 読み取り専用トランザクションは、トランザクションの統計情報やロックの統計情報には含まれません。読み取り / 書き込みトランザクションのみがトランザクションの統計情報やロックの統計情報に含まれます。

2 commit されていない DML オペレーションは、トランザクションの統計情報には含まれません。

3 実質的に一切のオペレーションを伴わない空のミューテーションは、トランザクションの統計情報には含まれません。

4 DML オペレーションのクエリ部分は、最も古いアクティブなクエリの結果に含まれます。