

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 資料庫執行個體的績效詳情指標
<a name="db-instance-performance-insights"></a>

Performance Insights 會監控不同類型的指標，如下列各節所述。

## 資料庫負載
<a name="dbload"></a>

資料庫負載 (`DBLoad`) 是績效詳情中測量資料庫中活動層級的關鍵指標。它會每秒收集一次，並自動發佈到 Amazon CloudWatch。它代表資料庫執行個體在平均作用中工作階段 (AAS) 中的活動，這是同時執行 SQL 查詢的工作階段數目。`DBLoad` 指標與其他時間序列指標不同，因為它可以使用以下五個維度中的任何一個來解譯：等待、SQL、主機、使用者和資料庫。這些維度是`DBLoad`指標的子類別。您可以使用它們做為*依類別分割*，以代表資料庫載入的不同特性。如需如何計算資料庫負載的詳細說明，請參閱 Amazon RDS 文件中的[資料庫負載](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.ActiveSessions.html)。

下列畫面圖顯示績效詳情工具。

![\[Performance Insights 工具中的資料庫負載\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/database-load.png)


## 維度
<a name="dimensions"></a>
+ *等待事件*是資料庫工作階段等待資源或其他操作完成以繼續處理的條件。如果您執行 SQL 陳述式，例如 `SELECT * FROM big_table`，而且此資料表遠大於配置的 InnoDB 緩衝集區，則您的工作階段很可能會等待`wait/io/file/innodb/innodb_data_file`等待事件，這些事件是由資料檔案的實體 I/O 操作所造成。等待事件是資料庫監控的重要維度，因為它們表示可能的效能瓶頸。等待事件指出您在工作階段中執行的 SQL 陳述式花費最多時間等待的資源和操作。例如，當有大量交易的高資料庫活動時發生`wait/synch/mutex/innodb/trx_sys_mutex`事件，而執行緒已在 InnoDB 緩衝集區上取得鎖定以存取記憶體中的頁面時發生`wait/synch/mutex/innodb/buf_pool_mutex`事件。如需有關所有 MySQL 和 MariaDB 等待事件的資訊，請參閱 MySQL 文件中的[等待事件摘要資料表](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-wait-summary-tables.html)。若要了解如何解譯檢測器名稱，請參閱 MySQL 文件中的[效能結構描述檢測器命名慣例](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-instrument-naming.html)。
+ *SQL* 會顯示哪些 SQL 陳述式對總資料庫負載的貢獻最大。位於 Amazon RDS Performance Insights 中**資料庫負載**圖表下方的**最高維度**資料表是互動式的。您可以按一下「依等待**載入 (AAS)」欄中的列，以取得與 SQL 陳述式相關聯的等待**事件詳細清單。當您在清單中選取 SQL 陳述式時，績效詳情會在**資料庫負載**圖表中顯示相關聯的等待事件，並在 SQL 文字區段中顯示 **SQL 陳述式文字**。SQL 統計資料會顯示在**最高維度**資料表的右側。
+ *主機*會顯示連線用戶端的主機名稱。此維度可協助您識別哪些用戶端主機將大部分負載傳送至資料庫。
+ *使用者*依登入資料庫的使用者將資料庫負載分組。
+ *資料庫*會根據用戶端連線的資料庫名稱，將資料庫負載分組。

## 計數器指標
<a name="counter-metrics"></a>

計數器指標是累積指標，其值只能在資料庫執行個體重新啟動時增加或重設為零。計數器指標的值無法降至其先前的值。這些指標代表單一、單調增加的計數器。
+ [原生計數器](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights_Counters.html#USER_PerfInsights_Counters.MySQL.Native)是由資料庫引擎而非 Amazon RDS 定義的指標。例如：
  + `SQL.Innodb_rows_inserted` 代表插入 InnoDB 資料表的列數。
  + `SQL.Select_scan` 代表完成第一個資料表完整掃描的聯結數目。
  + `Cache.Innodb_buffer_pool_reads` 代表 InnoDB 引擎無法從緩衝集區擷取且必須直接從磁碟讀取的邏輯讀取數目。
  + `Cache.Innodb_buffer_pool_read_requests` 代表邏輯讀取請求的數量。

  如需所有原生指標的定義，請參閱 MySQL 文件中的[伺服器狀態變數](https://dev.mysql.com/doc/refman/8.0/en/server-status-variables.html)。
+ [非原生計數器](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights_Counters.html#USER_PerfInsights_Counters.MySQL.NonNative)由 Amazon RDS 定義。您可以使用特定查詢來取得這些指標，或在計算中使用兩個或多個原生指標來衍生這些指標。非原生計數器指標可以代表延遲、比率或命中率。例如：
  + `Cache.innoDB_buffer_pool_hits` 代表 InnoDB 可以在不使用磁碟的情況下從緩衝集區擷取的讀取操作數目。它根據原生計數器指標計算，如下所示：

    ```
    db.Cache.Innodb_buffer_pool_read_requests - db.Cache.Innodb_buffer_pool_reads
    ```
  + `IO.innoDB_datafile_writes_to_disk` 代表磁碟的 InnoDB 資料檔案寫入操作數目。它只會擷取資料檔案的操作，而不是重寫或重做記錄寫入操作。其計算方式如下：

    ```
    db.IO.Innodb_data_writes - db.IO.Innodb_log_writes - db.IO.Innodb_dblwr_writes
    ```

您可以直接在績效詳情儀表板中視覺化資料庫執行個體指標。選擇**管理指標**，選擇**資料庫指標**索引標籤，然後選取感興趣的指標，如下圖所示。

![\[在績效詳情中選取資料庫執行個體指標\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/selecting-metrics.png)


選擇**更新圖形**按鈕以顯示您選取的指標，如下圖所示。

![\[在績效詳情中檢視資料庫執行個體指標\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/selecting-metrics-results.png)


## SQL Statistics
<a name="sql-stats"></a>

Performance Insights 會針對查詢執行的每個秒和每個 SQL 呼叫，收集 SQL 查詢的效能相關指標。一般而言，績效詳情會在陳述式和摘要層級收集 [SQL 統計資料](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.html)。不過，對於 MariaDB 和 MySQL 資料庫執行個體，統計資料只會在摘要層級收集。
+ 摘要統計資料是具有相同模式但最終具有不同常值之所有查詢的複合指標。摘要會以變數取代特定常值；例如：

  ```
  SELECT department_id, department_name FROM departments WHERE location_id = ?
  ```
+ 有些指標代表每個摘要 SQL 陳述式*的每秒*統計資料。例如， `sql_tokenized.stats.count_star_per_sec`代表每秒呼叫數 （也就是 SQL 陳述式每秒執行多少次）。
+ Performance Insights 也包含提供 SQL 陳述式*每個呼叫*統計資料的指標。例如， `sql_tokenized.stats.sum_timer_wait_per_call` 顯示每次呼叫 SQL 陳述式的平均延遲，以毫秒為單位。

SQL 統計資料可在績效詳情儀表板的**頂部** SQL 索引標籤的**頂部維度**資料表中取得。

![\[SQL Statistics\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/sql-stats.png)
