> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# データベースを監視する

> Monitoringタブを使用して、本番データベースで現在実行中のクエリと、アプリの速度低下の原因となっているクエリを確認します。

**Monitoring**タブでは、データベースの状況を確認できます。現在実行中の処理と、全体で最も多くの時間を消費しているクエリが表示されます。

<Note>
  Monitoringは本番データベースでのみ利用できます。
</Note>

<Accordion title="Monitoringへのアクセス方法">
  **Database**ツールから:

  1. 本番データベースを選択します。
  2. **Monitoring**タブを選択します。
  3. **Active queries**または**Query performance**を選択します。
</Accordion>

## Active queries

現在データベースに対して実行されているすべての処理のライブスナップショットです。

<Frame>
  <img src="https://mintcdn.com/replit/fcHMBvM8WVqfNJC_/images/databases/database-monitoring-active-queries.jpg?fit=max&auto=format&n=fcHMBvM8WVqfNJC_&q=85&s=09c3cfb5069fda33f19ac118047d04e1" alt="PID、ロール、状態、実行時間、SQLとともに、実行中の3つのクエリを表示しているActive queries" width="2000" height="940" data-path="images/databases/database-monitoring-active-queries.jpg" />
</Frame>

* **PID**: クエリを実行している接続のプロセスIDです。
* **Role**: 接続を開いたデータベースユーザーです。
* **State**: `active`はクエリが実行中であることを示します。`idle in transaction`はトランザクションが開いているものの何も実行していない状態を示します。この状態でもロックは保持されます。
* **Duration**: 現在のクエリが実行されている時間です。
* **Query**: ステートメント自体です。

これはログではなくスナップショットです。**Refresh**を選択すると、新しいスナップショットを取得します。ほとんどのクエリはミリ秒単位で完了するため、リストが空であることは通常の状態です。このビューは、本来より長く実行されているクエリを見つけるために使用します。完全にアイドル状態の接続は表示されません。

## Query performance

データベースがこれまでに実行したすべてのクエリの統計で、負荷の高いものから順に表示されます。

<Frame>
  <img src="https://mintcdn.com/replit/fcHMBvM8WVqfNJC_/images/databases/database-monitoring-query-performance.jpg?fit=max&auto=format&n=fcHMBvM8WVqfNJC_&q=85&s=f6ee1580cbcec66d14174e082da047e1" alt="各クエリのロール、呼び出し回数、平均時間、合計時間、行数を表示しているQuery performance" width="2000" height="1153" data-path="images/databases/database-monitoring-query-performance.jpg" />
</Frame>

* **Calls**: クエリが実行された回数です。
* **Average time**: 1回の実行あたりの平均時間です。個々の実行は表示されず、平均のみが表示されます。
* **Total time**: 平均時間に呼び出し回数を掛けた値です。テーブルはこの値でソートされます。
* **Rows**: 1回の呼び出しごとではなく、すべての呼び出しにわたる合計行数です。
* **Query**: ステートメントで、値は`$1`などのプレースホルダーに置き換えられています。

**Average time**と**Calls**を比較すると、2種類の問題を区別できます。平均が高く呼び出しが少ない場合は、遅いクエリであり、多くはインデックスの不足が原因です。平均が低く呼び出しが多い場合は、アプリが過剰に実行している高速なクエリであり、コード側で修正すべき点です。

<Warning>
  これらの統計は、データベースが一時停止または再起動されると保持されません。一定期間操作がないためにデータベースがゼロまでスケールダウンした場合、履歴はリセットされ、データベースが実行されると再び収集が始まります。
</Warning>

## 次のステップ

* [データを操作する](/ja/features/data-and-storage/work-with-your-data): データを閲覧、編集、クエリします。
* [データリカバリー](/ja/features/data-and-storage/data-recovery): 本番データを復元します。
