

# SQL statistics for Performance Insights
<a name="sql-statistics"></a>

*SQL statistics* are performance-related metrics about SQL queries that are collected by Performance Insights. Performance Insights gathers statistics for each second that a query is running and for each SQL call. The SQL statistics are an average for the selected time range.

A SQL digest is a composite of all queries having a given pattern but not necessarily having the same literal values. The digest replaces literal values with a question mark. For example, `SELECT * FROM emp WHERE lname= ?`. This digest might consist of the following child queries:

```
SELECT * FROM emp WHERE lname = 'Sanchez'
SELECT * FROM emp WHERE lname = 'Olagappan'
SELECT * FROM emp WHERE lname = 'Wu'
```

All engines support SQL statistics for digest queries.

For the region, DB engine, and instance class support information for this feature, see [Amazon RDS DB engine, Region, and instance class support for Performance Insights features](USER_PerfInsights.Overview.Engines.md#USER_PerfInsights.Overview.PIfeatureEngnRegSupport)

**Topics**
+ [

# SQL statistics for MariaDB and MySQL
](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.md)
+ [

# SQL statistics for Amazon RDS for Oracle
](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.md)
+ [

# SQL statistics for Amazon RDS for SQL Server
](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.md)
+ [

# SQL statistics for RDS PostgreSQL
](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.md)

# SQL statistics for MariaDB and MySQL
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL"></a>

MariaDB and MySQL collect SQL statistics only at the digest level. No statistics are shown at the statement level.

**Topics**
+ [

## Digest statistics for MariaDB and MySQL
](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.truncation)
+ [

## Per-second statistics for MariaDB and MySQL
](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.per-second)
+ [

## Per-call statistics for MariaDB and MySQL
](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.truncation.per-call)
+ [

## Primary statistics for MariaDB and MySQL
](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.primary)

## Digest statistics for MariaDB and MySQL
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.truncation"></a>

Performance Insights collects SQL digest statistics from the `events_statements_summary_by_digest` table. The `events_statements_summary_by_digest` table is managed by your database. 

The digest table doesn't have an eviction policy. When the table is full, the AWS Management Console shows the following message:

```
Performance Insights is unable to collect SQL Digest statistics on new queries because the table events_statements_summary_by_digest is full. 
Please truncate events_statements_summary_by_digest table to clear the issue. Check the User Guide for more details.
```

In this situation, MariaDB and MySQL don't track SQL queries. To address this issue, Performance Insights automatically truncates the digest table when both of the following conditions are met:
+ The table is full.
+ Performance Insights manages the Performance Schema automatically.

  For automatic management, the `performance_schema` parameter must be set to `0` and the **Source** must not be set to `user`. If Performance Insights isn't managing the Performance Schema automatically, see [Overview of the Performance Schema for Performance Insights on Amazon RDS for MariaDB or MySQL](USER_PerfInsights.EnableMySQL.md).

In the AWS CLI, check the source of a parameter value by running the [describe-db-parameters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-parameters.html) command.

## Per-second statistics for MariaDB and MySQL
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.per-second"></a>

The following SQL statistics are available for MariaDB and MySQL DB instances.


| Metric | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.count\$1star\$1per\$1sec | Calls per second | 
| db.sql\$1tokenized.stats.sum\$1timer\$1wait\$1per\$1sec | Average latency per second (in ms) | 
| db.sql\$1tokenized.stats.sum\$1select\$1full\$1join\$1per\$1sec | Select full join per second | 
| db.sql\$1tokenized.stats.sum\$1select\$1range\$1check\$1per\$1sec | Select range check per second | 
| db.sql\$1tokenized.stats.sum\$1select\$1scan\$1per\$1sec | Select scan per second | 
| db.sql\$1tokenized.stats.sum\$1sort\$1merge\$1passes\$1per\$1sec | Sort merge passes per second | 
| db.sql\$1tokenized.stats.sum\$1sort\$1scan\$1per\$1sec | Sort scans per second | 
| db.sql\$1tokenized.stats.sum\$1sort\$1range\$1per\$1sec | Sort ranges per second | 
| db.sql\$1tokenized.stats.sum\$1sort\$1rows\$1per\$1sec | Sort rows per second | 
| db.sql\$1tokenized.stats.sum\$1rows\$1affected\$1per\$1sec | Rows affected per second | 
| db.sql\$1tokenized.stats.sum\$1rows\$1examined\$1per\$1sec | Rows examined per second | 
| db.sql\$1tokenized.stats.sum\$1rows\$1sent\$1per\$1sec | Rows sent per second | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1disk\$1tables\$1per\$1sec | Created temporary disk tables per second | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1tables\$1per\$1sec | Created temporary tables per second | 
| db.sql\$1tokenized.stats.sum\$1lock\$1time\$1per\$1sec | Lock time per second (in ms) | 

## Per-call statistics for MariaDB and MySQL
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.truncation.per-call"></a>

The following metrics provide per call statistics for a SQL statement.


| Metric | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.sum\$1timer\$1wait\$1per\$1call | Average latency per call (in ms)  | 
| db.sql\$1tokenized.stats.sum\$1select\$1full\$1join\$1per\$1call | Select full joins per call | 
| db.sql\$1tokenized.stats.sum\$1select\$1range\$1check\$1per\$1call | Select range check per call | 
| db.sql\$1tokenized.stats.sum\$1select\$1scan\$1per\$1call | Select scans per call | 
| db.sql\$1tokenized.stats.sum\$1sort\$1merge\$1passes\$1per\$1call | Sort merge passes per call | 
| db.sql\$1tokenized.stats.sum\$1sort\$1scan\$1per\$1call | Sort scans per call | 
| db.sql\$1tokenized.stats.sum\$1sort\$1range\$1per\$1call | Sort ranges per call | 
| db.sql\$1tokenized.stats.sum\$1sort\$1rows\$1per\$1call | Sort rows per call | 
| db.sql\$1tokenized.stats.sum\$1rows\$1affected\$1per\$1call | Rows affected per call | 
| db.sql\$1tokenized.stats.sum\$1rows\$1examined\$1per\$1call | Rows examined per call | 
| db.sql\$1tokenized.stats.sum\$1rows\$1sent\$1per\$1call | Rows sent per call | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1disk\$1tables\$1per\$1call | Created temporary disk tables per call | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1tables\$1per\$1call | Created temporary tables per call | 
| db.sql\$1tokenized.stats.sum\$1lock\$1time\$1per\$1call | Lock time per call (in ms) | 

## Primary statistics for MariaDB and MySQL
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.primary"></a>

The following SQL statistics are available for MariaDB and MySQL DB instances.


| Metric | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.count\$1star | Calls | 
| db.sql\$1tokenized.stats.sum\$1timer\$1wait | Wait time (in ms) | 
| db.sql\$1tokenized.stats.sum\$1select\$1full\$1join | Select full join | 
| db.sql\$1tokenized.stats.sum\$1select\$1range\$1check | Select range checks | 
| db.sql\$1tokenized.stats.sum\$1select\$1scan | Select scans | 
| db.sql\$1tokenized.stats.sum\$1sort\$1merge\$1passes | Sort merge passes | 
| db.sql\$1tokenized.stats.sum\$1sort\$1scan | Sort scans | 
| db.sql\$1tokenized.stats.sum\$1sort\$1range | Sort ranges | 
| db.sql\$1tokenized.stats.sum\$1sort\$1rows | Sort rows | 
| db.sql\$1tokenized.stats.sum\$1rows\$1affected | Rows affected | 
| db.sql\$1tokenized.stats.sum\$1rows\$1examined | Rows examined | 
| db.sql\$1tokenized.stats.sum\$1rows\$1sent | Rows sent | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1disk\$1tables | Created temporary disk tables | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1tables | Created temporary tables | 
| db.sql\$1tokenized.stats.sum\$1lock\$1time | Lock time (in ms) | 

# SQL statistics for Amazon RDS for Oracle
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle"></a>

Amazon RDS for Oracle collects SQL statistics both at the statement and digest level. At the statement level, the ID column represents the value of `V$SQL.SQL_ID`. At the digest level, the ID column shows the value of `V$SQL.FORCE_MATCHING_SIGNATURE`. 

If the ID is `0` at the digest level, Oracle Database has determined that this statement is not suitable for reuse. In this case, the child SQL statements could belong to different digests. However, the statements are grouped together under the `digest_text` for the first SQL statement collected.

**Topics**
+ [

## Per-second statistics for Oracle
](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.per-second)
+ [

## Per-call statistics for Oracle
](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.per-call)
+ [

## Primary statistics for Oracle
](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.primary)

## Per-second statistics for Oracle
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.per-second"></a>

The following metrics provide per-second statistics for an Oracle SQL query.


| Metric | Unit | 
| --- | --- | 
| db.sql.stats.executions\$1per\$1sec | Number of executions per second | 
| db.sql.stats.elapsed\$1time\$1per\$1sec | Average active executions (AAE) | 
| db.sql.stats.rows\$1processed\$1per\$1sec | Rows processed per second | 
| db.sql.stats.buffer\$1gets\$1per\$1sec | Buffer gets per second | 
| db.sql.stats.physical\$1read\$1requests\$1per\$1sec | Physical reads per second | 
| db.sql.stats.physical\$1write\$1requests\$1per\$1sec | Physical writes per second | 
| db.sql.stats.total\$1sharable\$1mem\$1per\$1sec | Total shareable memory per second (in bytes)  | 
| db.sql.stats.cpu\$1time\$1per\$1sec | CPU time per second (in ms) | 

The following metrics provide per-second statistics for an Oracle SQL digest query.


| Metric | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.executions\$1per\$1sec | Number of executions per second | 
| db.sql\$1tokenized.stats.elapsed\$1time\$1per\$1sec | Average active executions (AAE) | 
| db.sql\$1tokenized.stats.rows\$1processed\$1per\$1sec | Rows processed per second | 
| db.sql\$1tokenized.stats.buffer\$1gets\$1per\$1sec | Buffer gets per second | 
| db.sql\$1tokenized.stats.physical\$1read\$1requests\$1per\$1sec | Physical reads per second | 
| db.sql\$1tokenized.stats.physical\$1write\$1requests\$1per\$1sec | Physical writes per second | 
| db.sql\$1tokenized.stats.total\$1sharable\$1mem\$1per\$1sec | Total shareable memory per second (in bytes)  | 
| db.sql\$1tokenized.stats.cpu\$1time\$1per\$1sec | CPU time per second (in ms) | 

## Per-call statistics for Oracle
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.per-call"></a>

The following metrics provide per-call statistics for an Oracle SQL statement.


| Metric | Unit | 
| --- | --- | 
| db.sql.stats.elapsed\$1time\$1per\$1exec | Elapsed time per executions (in ms)  | 
| db.sql.stats.rows\$1processed\$1per\$1exec | Rows processed per execution | 
| db.sql.stats.buffer\$1gets\$1per\$1exec | Buffer gets per execution | 
| db.sql.stats.physical\$1read\$1requests\$1per\$1exec | Physical reads per execution | 
| db.sql.stats.physical\$1write\$1requests\$1per\$1exec | Physical writes per execution | 
| db.sql.stats.total\$1sharable\$1mem\$1per\$1exec | Total shareable memory per execution (in bytes) | 
| db.sql.stats.cpu\$1time\$1per\$1exec | CPU time per execution (in ms) | 

The following metrics provide per-call statistics for an Oracle SQL digest query.


| Metric | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.elapsed\$1time\$1per\$1exec | Elapsed time per executions (in ms)  | 
| db.sql\$1tokenized.stats.rows\$1processed\$1per\$1exec | Rows processed per execution | 
| db.sql\$1tokenized.stats.buffer\$1gets\$1per\$1exec | Buffer gets per execution | 
| db.sql\$1tokenized.stats.physical\$1read\$1requests\$1per\$1exec | Physical reads per execution | 
| db.sql\$1tokenized.stats.physical\$1write\$1requests\$1per\$1exec | Physical writes per execution | 
| db.sql\$1tokenized.stats.total\$1sharable\$1mem\$1per\$1exec | Total shareable memory per execution (in bytes) | 
| db.sql\$1tokenized.stats.cpu\$1time\$1per\$1exec | CPU time per execution (in ms) | 

## Primary statistics for Oracle
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.primary"></a>

The following metrics provide primary statistics for an Oracle SQL query.


| Metric | Unit | 
| --- | --- | 
| db.sql.stats.executions | Number of executions  | 
| db.sql.stats.elapsed\$1time | Elapsed time (in ms) | 
| db.sql.stats.rows\$1processed | Rows processed  | 
| db.sql.stats.buffer\$1gets | Buffer gets  | 
| db.sql.stats.physical\$1read\$1requests | Physical reads  | 
| db.sql.stats.physical\$1write\$1requests | Physical writes  | 
| db.sql.stats.total\$1sharable\$1mem | Total shareable memory (in bytes)  | 
| db.sql.stats.cpu\$1time | CPU time (in ms) | 

The following metrics provide primary statistics for an Oracle SQL digest query.


| Metric | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.executions | Number of executions | 
| db.sql\$1tokenized.stats.elapsed\$1time | Elapsed time (in ms) | 
| db.sql\$1tokenized.stats.rows\$1processed | Rows processed | 
| db.sql\$1tokenized.stats.buffer\$1gets | Buffer gets | 
| db.sql\$1tokenized.stats.physical\$1read\$1requests | Physical reads | 
| db.sql\$1tokenized.stats.physical\$1write\$1requests | Physical writes | 
| db.sql\$1tokenized.stats.total\$1sharable\$1mem | Total shareable memory (in bytes)  | 
| db.sql\$1tokenized.stats.cpu\$1time | CPU time (in ms) | 

# SQL statistics for Amazon RDS for SQL Server
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer"></a>

Amazon RDS for SQL Server collects SQL statistics both at the statement and digest level. At the statement level, the ID column represents the value of `sql_handle`. At the digest level, the ID column shows the value of `query_hash`. 

SQL Server returns NULL values for `query_hash` for a few statements. For example, ALTER INDEX, CHECKPOINT, UPDATE STATISTICS, COMMIT TRANSACTION, FETCH NEXT FROM Cursor, and a few INSERT statements, SELECT @<variable>, conditional statements, and executable stored procedures. In this case, the `sql_handle` value is displayed as the ID at the digest level for that statement. 

**Topics**
+ [

## Per-second statistics for SQL Server
](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.per-second)
+ [

## Per-call statistics for SQL Server
](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.per-call)
+ [

## Primary statistics for SQL Server
](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.primary)

## Per-second statistics for SQL Server
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.per-second"></a>

The following metrics provide per-second statistics for a SQL Server SQL query.


| Metric | Unit | 
| --- | --- | 
| db.sql.stats.execution\$1count\$1per\$1sec | Number of executions per second | 
| db.sql.stats.total\$1elapsed\$1time\$1per\$1sec | Total elapsed time per second | 
| db.sql.stats.total\$1rows\$1per\$1sec | Total rows processed per second | 
| db.sql.stats.total\$1logical\$1reads\$1per\$1sec | Total logical reads per second | 
| db.sql.stats.total\$1logical\$1writes\$1per\$1sec | Total logical writes per second | 
| db.sql.stats.total\$1physical\$1reads\$1per\$1sec | Total physical reads per second | 
| db.sql.stats.total\$1worker\$1time\$1per\$1sec | Total CPU time (in ms) | 

The following metrics provide per-second statistics for a SQL Server SQL digest query.


| Metric | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.execution\$1count\$1per\$1sec | Number of execution per second | 
| db.sql\$1tokenized.stats.total\$1elapsed\$1time\$1per\$1sec | Total elapsed time per second | 
| db.sql\$1tokenized.stats.total\$1rows\$1per\$1sec | Total rows processed per second | 
| db.sql\$1tokenized.stats.total\$1logical\$1reads\$1per\$1sec | Total logical reads per second | 
| db.sql\$1tokenized.stats.total\$1logical\$1writes\$1per\$1sec | Total logical writes per second | 
| db.sql\$1tokenized.stats.total\$1physical\$1reads\$1per\$1sec | Total physical reads per second | 
| db.sql\$1tokenized.stats.total\$1worker\$1time\$1per\$1sec | Total CPU time (in ms) | 

## Per-call statistics for SQL Server
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.per-call"></a>

The following metrics provide per-call statistics for a SQL Server SQL statement.


| Metric | Unit | 
| --- | --- | 
| db.sql.stats.total\$1elapsed\$1time\$1per\$1call | Total elapsed time per execution (in ms) | 
| db.sql.stats.total\$1rows\$1per\$1call | Total rows processed per execution | 
| db.sql.stats.total\$1logical\$1reads\$1per\$1call | Total logical reads per execution | 
| db.sql.stats.total\$1logical\$1writes\$1per\$1call | Total logical writes per execution | 
| db.sql.stats.total\$1physical\$1reads\$1per\$1call | Total physical reads per execution | 
| db.sql.stats.total\$1worker\$1time\$1per\$1call | Total CPU time per execution (in ms) | 

The following metrics provide per-call statistics for a SQL Server SQL digest query.


| Metric | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.total\$1elapsed\$1time\$1per\$1call | Total elapsed time per execution | 
| db.sql\$1tokenized.stats.total\$1rows\$1per\$1call | Total rows processed per execution | 
| db.sql\$1tokenized.stats.total\$1logical\$1reads\$1per\$1call | Total logical reads per execution | 
| db.sql\$1tokenized.stats.total\$1logical\$1writes\$1per\$1call | Total logical writes per execution | 
| db.sql\$1tokenized.stats.total\$1physical\$1reads\$1per\$1call | Total physical reads per execution  | 
| db.sql\$1tokenized.stats.total\$1worker\$1time\$1per\$1call | Total CPU time per execution (in ms) | 

## Primary statistics for SQL Server
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.primary"></a>

The following metrics provide primary statistics for a SQL Server SQL query.


| Metric | Unit | 
| --- | --- | 
| db.sql.stats.execution\$1count | Number of executions | 
| db.sql.stats.total\$1elapsed\$1time | Total elapsed time (in ms) | 
| db.sql.stats.total\$1rows | Total rows processed | 
| db.sql.stats.total\$1logical\$1reads | Total logical reads | 
| db.sql.stats.total\$1logical\$1writes | Total logical writes | 
| db.sql.stats.total\$1physical\$1reads | Total physical reads | 
| db.sql.stats.total\$1worker\$1time | Total CPU time (in ms) | 

The following metrics provide primary statistics for a SQL Server SQL digest query.


| Metric | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.execution\$1count | Number of execution | 
| db.sql\$1tokenized.stats.total\$1elapsed\$1time | Total elapsed time (in ms) | 
| db.sql\$1tokenized.stats.total\$1rows | Total rows processed | 
| db.sql\$1tokenized.stats.total\$1logical\$1reads | Total logical reads | 
| db.sql\$1tokenized.stats.total\$1logical\$1writes | Total logical writes | 
| db.sql\$1tokenized.stats.total\$1physical\$1reads | Total physical reads | 
| db.sql\$1tokenized.stats.total\$1worker\$1time | Total CPU time (in ms) | 

# SQL statistics for RDS PostgreSQL
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL"></a>

For each SQL call and for each second that a query runs, Performance Insights collects SQL statistics. RDS for PostgreSQL collect SQL statistics only at the digest–level. No statistics are shown at the statement-level. 

Following, you can find information about digest-level statistics for RDS for PostgreSQL. 

**Topics**
+ [

## Digest statistics for RDS PostgreSQL
](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.digest)
+ [

## Per-second digest statistics for RDS PostgreSQL
](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.per-second)
+ [

## Per-call digest statistics for RDS PostgreSQL
](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.per-call)
+ [

## Primary statistics for RDS PostgreSQL
](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.primary)

## Digest statistics for RDS PostgreSQL
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.digest"></a>

To view SQL digest statistics, RDS PostgreSQL must load the `pg_stat_statements` library. For PostgreSQL DB instances that are compatible with PostgreSQL 11 or later, the database loads this library by default. For PostgreSQL DB instances that are compatible with PostgreSQL 10 or earlier, enable this library manually. To enable it manually, add `pg_stat_statements` to `shared_preload_libraries` in the DB parameter group associated with the DB instance. Then reboot your DB instance. For more information, see [Parameter groups for Amazon RDS](USER_WorkingWithParamGroups.md).

**Note**  
Performance Insights can only collect statistics for queries in `pg_stat_activity` that aren't truncated. By default, PostgreSQL databases truncate queries longer than 1,024 bytes. To increase the query size, change the `track_activity_query_size` parameter in the DB parameter group associated with your DB instance. When you change this parameter, a DB instance reboot is required.

## Per-second digest statistics for RDS PostgreSQL
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.per-second"></a>

The following SQL digest statistics are available for PostgreSQL DB instances.


| Metric | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.calls\$1per\$1sec | Calls per second | 
| db.sql\$1tokenized.stats.rows\$1per\$1sec | Rows per second | 
| db.sql\$1tokenized.stats.total\$1time\$1per\$1sec | Average active executions per second (AAE) | 
| db.sql\$1tokenized.stats.shared\$1blks\$1hit\$1per\$1sec | Block hits per second | 
| db.sql\$1tokenized.stats.shared\$1blks\$1read\$1per\$1sec | Block reads per second | 
| db.sql\$1tokenized.stats.shared\$1blks\$1dirtied\$1per\$1sec | Blocks dirtied per second | 
| db.sql\$1tokenized.stats.shared\$1blks\$1written\$1per\$1sec | Block writes per second | 
| db.sql\$1tokenized.stats.local\$1blks\$1hit\$1per\$1sec | Local block hits per second | 
| db.sql\$1tokenized.stats.local\$1blks\$1read\$1per\$1sec | Local block reads per second | 
| db.sql\$1tokenized.stats.local\$1blks\$1dirtied\$1per\$1sec | Local block dirtied per second | 
| db.sql\$1tokenized.stats.local\$1blks\$1written\$1per\$1sec | Local block writes per second | 
| db.sql\$1tokenized.stats.temp\$1blks\$1written\$1per\$1sec | Temporary writes per second | 
| db.sql\$1tokenized.stats.temp\$1blks\$1read\$1per\$1sec | Temporary reads per second | 
| db.sql\$1tokenized.stats.blk\$1read\$1time\$1per\$1sec | Average concurrent reads per second | 
| db.sql\$1tokenized.stats.blk\$1write\$1time\$1per\$1sec | Average concurrent writes per second | 

## Per-call digest statistics for RDS PostgreSQL
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.per-call"></a>

The following metrics provide per call statistics for a SQL statement.


| Metric | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.rows\$1per\$1call | Rows per call | 
| db.sql\$1tokenized.stats.avg\$1latency\$1per\$1call | Average latency per call (in ms) | 
| db.sql\$1tokenized.stats.shared\$1blks\$1hit\$1per\$1call | Block hits per call | 
| db.sql\$1tokenized.stats.shared\$1blks\$1read\$1per\$1call | Block reads per call | 
| db.sql\$1tokenized.stats.shared\$1blks\$1written\$1per\$1call | Block writes per call | 
| db.sql\$1tokenized.stats.shared\$1blks\$1dirtied\$1per\$1call | Blocks dirtied per call | 
| db.sql\$1tokenized.stats.local\$1blks\$1hit\$1per\$1call | Local block hits per call | 
| db.sql\$1tokenized.stats.local\$1blks\$1read\$1per\$1call | Local block reads per call | 
| db.sql\$1tokenized.stats.local\$1blks\$1dirtied\$1per\$1call | Local block dirtied per call | 
| db.sql\$1tokenized.stats.local\$1blks\$1written\$1per\$1call | Local block writes per call | 
| db.sql\$1tokenized.stats.temp\$1blks\$1written\$1per\$1call | Temporary block writes per call | 
| db.sql\$1tokenized.stats.temp\$1blks\$1read\$1per\$1call | Temporary block reads per call | 
| db.sql\$1tokenized.stats.blk\$1read\$1time\$1per\$1call | Read time per call (in ms) | 
| db.sql\$1tokenized.stats.blk\$1write\$1time\$1per\$1call | Write time per call (in ms) | 

## Primary statistics for RDS PostgreSQL
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.primary"></a>

The following SQL statistics are available for PostgreSQL DB instances.


| Metric | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.calls | Calls  | 
| db.sql\$1tokenized.stats.rows | Rows  | 
| db.sql\$1tokenized.stats.total\$1time | Total time (in ms) | 
| db.sql\$1tokenized.stats.shared\$1blks\$1hit | Block hits  | 
| db.sql\$1tokenized.stats.shared\$1blks\$1read | Block reads  | 
| db.sql\$1tokenized.stats.shared\$1blks\$1dirtied | Blocks dirtied  | 
| db.sql\$1tokenized.stats.shared\$1blks\$1written | Block writes  | 
| db.sql\$1tokenized.stats.local\$1blks\$1hit | Local block hits  | 
| db.sql\$1tokenized.stats.local\$1blks\$1read | Local block reads  | 
| db.sql\$1tokenized.stats.local\$1blks\$1dirtied | Local blocks dirtied | 
| db.sql\$1tokenized.stats.local\$1blks\$1written | Local block writes  | 
| db.sql\$1tokenized.stats.temp\$1blks\$1written | Temporary writes  | 
| db.sql\$1tokenized.stats.temp\$1blks\$1read | Temporary reads  | 
| db.sql\$1tokenized.stats.blk\$1read\$1time | Average concurrent reads (in ms) | 
| db.sql\$1tokenized.stats.blk\$1write\$1time | Average concurrent writes (in ms) | 

For more information about these metrics, see [pg\$1stat\$1statements](https://www.postgresql.org/docs/current/pgstatstatements.html) in the PostgreSQL documentation.