

# 성능 개선 도우미에 대한 SQL 통계
<a name="sql-statistics"></a>

*SQL 통계*(SQL statistics)는 성능 개선 도우미에서 수집하는 SQL 쿼리에 대한 성능 관련 지표입니다. 성능 개선 도우미는 쿼리가 실행되는 초당 통계와 각 SQL 호출에 대한 통계를 수집합니다. SQL 통계는 선택한 시간 범위의 평균입니다.

SQL 다이제스트는 주어진 패턴을 갖지만 반드시 동일한 리터럴 값을 가질 필요는 없는 모든 쿼리의 합성입니다. 다이제스트는 리터럴 값을 물음표로 바꿉니다. 예: `SELECT * FROM emp WHERE lname= ?`. 이 다이제스트에는 다음 하위 쿼리가 구성될 수 있습니다.

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

모든 엔진은 다이제스트 쿼리에 대한 SQL 통계를 지원합니다.

이 기능에 대한 리전, DB 엔진 및 인스턴스 클래스 지원 정보는 [성능 개선 도우미 기능에 대한 Amazon RDS DB 엔진, 리전 및 인스턴스 클래스 지원](USER_PerfInsights.Overview.Engines.md#USER_PerfInsights.Overview.PIfeatureEngnRegSupport) 섹션을 참조하세요.

**Topics**
+ [MariaDB 및 MySQL에 대한 SQL 통계](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.md)
+ [Amazon RDS for Oracle에 대한 SQL 통계](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.md)
+ [Amazon RDS for SQL Server에 대한 SQL 통계](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.md)
+ [RDS PostgreSQL에 대한 SQL 통계](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.md)

# MariaDB 및 MySQL에 대한 SQL 통계
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL"></a>

MariaDB 및 MySQL은 다이제스트 수준에서만 SQL 통계를 수집합니다. 명령문 수준에는 통계가 표시되지 않습니다.

**Topics**
+ [MariaDB 및 MySQL에 대한 다이제스트 통계](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.truncation)
+ [MariaDB 및 MySQL에 대한 초당 통계](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.per-second)
+ [MariaDB 및 MySQL에 대한 호출당 통계](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.truncation.per-call)
+ [MariaDB 및 MySQL에 대한 기본 통계](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.primary)

## MariaDB 및 MySQL에 대한 다이제스트 통계
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.truncation"></a>

성능 개선 도우미는 `events_statements_summary_by_digest` 테이블에서 SQL 다이제스트 통계를 수집합니다. `events_statements_summary_by_digest` 테이블은 데이터베이스에 의해 관리됩니다.

다이제스트 테이블에는 제거 정책이 없습니다. 테이블이 가득 차면 AWS Management Console에 다음 메시지가 표시됩니다.

```
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.
```

이 상황에서는 MariaDB 및 MySQL은 SQL 쿼리를 추적하지 않습니다. 이 문제를 해결하기 위해 성능 개선 도우미는 다음 조건이 모두 충족되면 자동으로 다이제스트 테이블을 자릅니다.
+ 테이블이 꽉 찼습니다.
+ 성능 개선 도우미가 성능 스키마를 자동으로 관리합니다.

  자동으로 관리하려면 `performance_schema` 파라미터를 `0`으로 설정하고 [**소스(Source)**]를 `user` 이외의 값으로 설정해야 합니다. 성능 개선 도우미가 성능 스키마를 자동으로 관리하지 않는 경우 [Amazon RDS for MariaDB 또는 MySQL에서 성능 개선 도우미의 성능 스키마 개요](USER_PerfInsights.EnableMySQL.md) 섹션을 참조하세요.

AWS CLI에서 [describe-db-parameters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-parameters.html) 명령을 실행하여 파라미터 값의 소스를 확인합니다.

## MariaDB 및 MySQL에 대한 초당 통계
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.per-second"></a>

MariaDB 및 MySQL DB 인스턴스에 다음 SQL 통계를 사용할 수 있습니다.


| 측정치 | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.count\$1star\$1per\$1sec | 초당 호출 수 | 
| db.sql\$1tokenized.stats.sum\$1timer\$1wait\$1per\$1sec | 초당 평균 지연 시간(단위: ms) | 
| db.sql\$1tokenized.stats.sum\$1select\$1full\$1join\$1per\$1sec | 초당 전체 조인 선택 | 
| db.sql\$1tokenized.stats.sum\$1select\$1range\$1check\$1per\$1sec | 초당 범위 검사 선택 | 
| db.sql\$1tokenized.stats.sum\$1select\$1scan\$1per\$1sec | 초당 스캔 선택 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1merge\$1passes\$1per\$1sec | 초당 병합 패스 정렬 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1scan\$1per\$1sec | 초당 스캔 정렬 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1range\$1per\$1sec | 초당 범위 정렬 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1rows\$1per\$1sec | 초당 행 정렬 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1affected\$1per\$1sec | 초당 영향을 받는 행 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1examined\$1per\$1sec | 초당 검사된 행 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1sent\$1per\$1sec | 초당 전송된 행 | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1disk\$1tables\$1per\$1sec | 초당 생성된 임시 디스크 테이블 | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1tables\$1per\$1sec | 초당 생성된 임시 테이블 | 
| db.sql\$1tokenized.stats.sum\$1lock\$1time\$1per\$1sec | 초당 잠금 시간(ms) | 

## MariaDB 및 MySQL에 대한 호출당 통계
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.truncation.per-call"></a>

다음 지표에서는 SQL 문의 호출당 통계를 제공합니다.


| 측정치 | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.sum\$1timer\$1wait\$1per\$1call | 호출당 평균 지연 시간(단위: ms)  | 
| db.sql\$1tokenized.stats.sum\$1select\$1full\$1join\$1per\$1call | 호출당 전체 조인 선택 | 
| db.sql\$1tokenized.stats.sum\$1select\$1range\$1check\$1per\$1call | 호출당 범위 검사 선택 | 
| db.sql\$1tokenized.stats.sum\$1select\$1scan\$1per\$1call | 호출당 스캔 선택 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1merge\$1passes\$1per\$1call | 호출당 병합 패스 정렬 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1scan\$1per\$1call | 호출당 스캔 정렬 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1range\$1per\$1call | 호출당 범위 정렬 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1rows\$1per\$1call | 호출당 행 정렬 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1affected\$1per\$1call | 호출당 영향을 받는 행 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1examined\$1per\$1call | 호출당 검사된 행 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1sent\$1per\$1call | 호출당 전송된 행 | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1disk\$1tables\$1per\$1call | 호출당 생성된 임시 디스크 테이블 | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1tables\$1per\$1call | 호출당 생성된 임시 테이블 | 
| db.sql\$1tokenized.stats.sum\$1lock\$1time\$1per\$1call | 호출당 잠금 시간(ms) | 

## MariaDB 및 MySQL에 대한 기본 통계
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.MySQL.primary"></a>

MariaDB 및 MySQL DB 인스턴스에 다음 SQL 통계를 사용할 수 있습니다.


| 측정치 | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.count\$1star | 호출 | 
| db.sql\$1tokenized.stats.sum\$1timer\$1wait | 대기 시간(밀리초) | 
| db.sql\$1tokenized.stats.sum\$1select\$1full\$1join | 전체 조인 선택 | 
| db.sql\$1tokenized.stats.sum\$1select\$1range\$1check | 범위 확인 선택 | 
| db.sql\$1tokenized.stats.sum\$1select\$1scan | 스캔 선택 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1merge\$1passes | 병합 전달 정렬 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1scan | 스캔 정렬 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1range | 정렬 범위 | 
| db.sql\$1tokenized.stats.sum\$1sort\$1rows | 행 정렬 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1affected | 영향을 받는 행 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1examined | 검사된 행 | 
| db.sql\$1tokenized.stats.sum\$1rows\$1sent | 전송된 행 | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1disk\$1tables | 만들어진 임시 디스크 테이블 | 
| db.sql\$1tokenized.stats.sum\$1created\$1tmp\$1tables | 만들어진 임시 테이블 | 
| db.sql\$1tokenized.stats.sum\$1lock\$1time | 잠금 시간(밀리초) | 

# Amazon RDS for Oracle에 대한 SQL 통계
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle"></a>

Amazon RDS for Oracle은 명령문과 다이제스트 수준에서 SQL 통계를 수집합니다. 명령문 수준에서 ID 열은 `V$SQL.SQL_ID` 값을 나타냅니다. 다이제스트 수준에서 ID 열에는 `V$SQL.FORCE_MATCHING_SIGNATURE` 값이 표시됩니다.

다이제스트 레벨에서 ID가 `0`인 경우, Oracle Database는 이 문이 재사용에 적합하지 않다고 판단했습니다. 이 경우 하위 SQL 문은 서로 다른 다이제스트에 속할 수 있습니다. 그러나 문은 수집된 첫 번째 SQL 문에 대해 `digest_text` 아래에 함께 그룹화됩니다.

**Topics**
+ [Oracle의 초당 통계](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.per-second)
+ [Oracle의 호출당 통계](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.per-call)
+ [Oracle에 대한 기본 통계](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.primary)

## Oracle의 초당 통계
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.per-second"></a>

다음 지표는 Oracle SQL 쿼리에 대한 초당 통계를 제공합니다.


| 지표 | Unit | 
| --- | --- | 
| db.sql.stats.executions\$1per\$1sec | 초당 실행 수 | 
| db.sql.stats.elapsed\$1time\$1per\$1sec | 평균 활성 실행(AAE) | 
| db.sql.stats.rows\$1processed\$1per\$1sec | 초당 처리된 행 | 
| db.sql.stats.buffer\$1gets\$1per\$1sec | 초당 버퍼 GET의 수 | 
| db.sql.stats.physical\$1read\$1requests\$1per\$1sec | 초당 물리적 읽기 수 | 
| db.sql.stats.physical\$1write\$1requests\$1per\$1sec | 초당 물리적 쓰기 수 | 
| db.sql.stats.total\$1sharable\$1mem\$1per\$1sec | 초당 공유 가능 메모리 합계(단위: 바이트)  | 
| db.sql.stats.cpu\$1time\$1per\$1sec | 초당 CPU 시간(단위: ms) | 

다음 지표는 Oracle SQL 다이제스트 쿼리에 대한 초당 통계를 제공합니다.


| 지표 | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.executions\$1per\$1sec | 초당 실행 수 | 
| db.sql\$1tokenized.stats.elapsed\$1time\$1per\$1sec | 평균 활성 실행(AAE) | 
| db.sql\$1tokenized.stats.rows\$1processed\$1per\$1sec | 초당 처리된 행 | 
| db.sql\$1tokenized.stats.buffer\$1gets\$1per\$1sec | 초당 버퍼 GET의 수 | 
| db.sql\$1tokenized.stats.physical\$1read\$1requests\$1per\$1sec | 초당 물리적 읽기 수 | 
| db.sql\$1tokenized.stats.physical\$1write\$1requests\$1per\$1sec | 초당 물리적 쓰기 수 | 
| db.sql\$1tokenized.stats.total\$1sharable\$1mem\$1per\$1sec | 초당 공유 가능 메모리 합계(단위: 바이트)  | 
| db.sql\$1tokenized.stats.cpu\$1time\$1per\$1sec | 초당 CPU 시간(단위: ms) | 

## Oracle의 호출당 통계
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.per-call"></a>

다음 지표에서는 Oracle SQL 문의 호출당 통계를 제공합니다.


| 지표 | Unit | 
| --- | --- | 
| db.sql.stats.elapsed\$1time\$1per\$1exec | 실행당 경과 시간(단위: ms)  | 
| db.sql.stats.rows\$1processed\$1per\$1exec | 실행당 처리된 행 | 
| db.sql.stats.buffer\$1gets\$1per\$1exec | 실행당 버퍼 GET의 수 | 
| db.sql.stats.physical\$1read\$1requests\$1per\$1exec | 실행당 물리적 읽기 수 | 
| db.sql.stats.physical\$1write\$1requests\$1per\$1exec | 실행당 물리적 쓰기 수 | 
| db.sql.stats.total\$1sharable\$1mem\$1per\$1exec | 실행당 공유 가능 메모리 합계(단위: 바이트) | 
| db.sql.stats.cpu\$1time\$1per\$1exec | 실행당 CPU 시간(단위: ms) | 

다음 지표에서는 Oracle SQL ,다이제스트 쿼리의 호출당 통계를 제공합니다.


| 지표 | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.elapsed\$1time\$1per\$1exec | 실행당 경과 시간(단위: ms)  | 
| db.sql\$1tokenized.stats.rows\$1processed\$1per\$1exec | 실행당 처리된 행 | 
| db.sql\$1tokenized.stats.buffer\$1gets\$1per\$1exec | 실행당 버퍼 GET의 수 | 
| db.sql\$1tokenized.stats.physical\$1read\$1requests\$1per\$1exec | 실행당 물리적 읽기 수 | 
| db.sql\$1tokenized.stats.physical\$1write\$1requests\$1per\$1exec | 실행당 물리적 쓰기 수 | 
| db.sql\$1tokenized.stats.total\$1sharable\$1mem\$1per\$1exec | 실행당 공유 가능 메모리 합계(단위: 바이트) | 
| db.sql\$1tokenized.stats.cpu\$1time\$1per\$1exec | 실행당 CPU 시간(단위: ms) | 

## Oracle에 대한 기본 통계
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.Oracle.primary"></a>

다음 지표는 Oracle SQL 쿼리에 대한 기본 통계를 제공합니다.


| 지표 | Unit | 
| --- | --- | 
| db.sql.stats.executions | 실행 개수  | 
| db.sql.stats.elapsed\$1time | 경과 시간(밀리초) | 
| db.sql.stats.rows\$1processed | 처리된 행  | 
| db.sql.stats.buffer\$1gets | 버퍼 가져오기  | 
| db.sql.stats.physical\$1read\$1requests | 물리적 읽기 수  | 
| db.sql.stats.physical\$1write\$1requests | 물리적 쓰기  | 
| db.sql.stats.total\$1sharable\$1mem | 공유 가능한 총 메모리(바이트)  | 
| db.sql.stats.cpu\$1time | CPU 시간(밀리초) | 

다음 지표는 Oracle SQL 다이제스트 쿼리에 대한 기본 통계를 제공합니다.


| 지표 | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.executions | 실행 개수 | 
| db.sql\$1tokenized.stats.elapsed\$1time | 경과 시간(밀리초) | 
| db.sql\$1tokenized.stats.rows\$1processed | 처리된 행 | 
| db.sql\$1tokenized.stats.buffer\$1gets | 버퍼 가져오기 | 
| db.sql\$1tokenized.stats.physical\$1read\$1requests | 물리적 읽기 수 | 
| db.sql\$1tokenized.stats.physical\$1write\$1requests | 물리적 쓰기 | 
| db.sql\$1tokenized.stats.total\$1sharable\$1mem | 공유 가능한 총 메모리(바이트)  | 
| db.sql\$1tokenized.stats.cpu\$1time | CPU 시간(밀리초) | 

# Amazon RDS for SQL Server에 대한 SQL 통계
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer"></a>

Amazon RDS for SQL Server는 명령문과 다이제스트 수준에서 SQL 통계를 수집합니다. 명령문 수준에서 ID 열은 `sql_handle` 값을 나타냅니다. 다이제스트 수준에서 ID 열에는 `query_hash` 값이 표시됩니다.

SQL Server는 몇 개의 명령문에서 `query_hash`에 대해 NULL 값을 반환합니다. 예를 들어 ALTER INDEX, CHECKPOINT, UPDATE STATISTICS, COMMIT TRANSACTION, FETCH NEXT FROM Cursor 및 몇 개의 INSERT 명령문, SELECT @<variable>, 조건문, 실행 가능한 저장 프로시저 등이 이에 해당합니다. 이 경우 `sql_handle` 값은 해당 명령문의 다이제스트 수준에서 ID로 표시됩니다.

**Topics**
+ [SQL Server의 초당 통계](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.per-second)
+ [SQL Server의 호출당 통계](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.per-call)
+ [SQL Server의 기본 통계](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.primary)

## SQL Server의 초당 통계
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.per-second"></a>

다음 지표는 SQL Server SQL 쿼리에 대한 초당 통계를 제공합니다.


| 지표 | Unit | 
| --- | --- | 
| db.sql.stats.execution\$1count\$1per\$1sec | 초당 실행 수 | 
| db.sql.stats.total\$1elapsed\$1time\$1per\$1sec | 초당 총 경과 시간 | 
| db.sql.stats.total\$1rows\$1per\$1sec | 초당 처리된 총 행 수 | 
| db.sql.stats.total\$1logical\$1reads\$1per\$1sec | 초당 총 논리적 읽기 수 | 
| db.sql.stats.total\$1logical\$1writes\$1per\$1sec | 초당 총 논리적 쓰기 수 | 
| db.sql.stats.total\$1physical\$1reads\$1per\$1sec | 초당 총 물리적 읽기 수 | 
| db.sql.stats.total\$1worker\$1time\$1per\$1sec | 총 CPU 시간(밀리초) | 

다음 지표는 SQL Server SQL 다이제스트 쿼리에 대한 초당 통계를 제공합니다.


| 지표 | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.execution\$1count\$1per\$1sec | 초당 실행 수 | 
| db.sql\$1tokenized.stats.total\$1elapsed\$1time\$1per\$1sec | 초당 총 경과 시간 | 
| db.sql\$1tokenized.stats.total\$1rows\$1per\$1sec | 초당 처리된 총 행 수 | 
| db.sql\$1tokenized.stats.total\$1logical\$1reads\$1per\$1sec | 초당 총 논리적 읽기 수 | 
| db.sql\$1tokenized.stats.total\$1logical\$1writes\$1per\$1sec | 초당 총 논리적 쓰기 수 | 
| db.sql\$1tokenized.stats.total\$1physical\$1reads\$1per\$1sec | 초당 총 물리적 읽기 수 | 
| db.sql\$1tokenized.stats.total\$1worker\$1time\$1per\$1sec | 총 CPU 시간(밀리초) | 

## SQL Server의 호출당 통계
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.per-call"></a>

다음 지표에서는 SQL Server SQL 문의 호출당 통계를 제공합니다.


| 지표 | Unit | 
| --- | --- | 
| db.sql.stats.total\$1elapsed\$1time\$1per\$1call | 실행당 총 경과 시간(단위: ms) | 
| db.sql.stats.total\$1rows\$1per\$1call | 실행당 처리된 총 행 수 | 
| db.sql.stats.total\$1logical\$1reads\$1per\$1call | db.sql\$1tokenized.stats.total\$1rows\$1per\$1sec | 
| db.sql.stats.total\$1logical\$1writes\$1per\$1call | 실행당 총 논리적 쓰기 수 | 
| db.sql.stats.total\$1physical\$1reads\$1per\$1call | 실행당 총 물리적 읽기 수 | 
| db.sql.stats.total\$1worker\$1time\$1per\$1call | 실행당 총 CPU 시간(단위: ms) | 

다음 지표는 SQL Server SQL 다이제스트 쿼리에 대한 호출당 통계를 제공합니다.


| 지표 | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.total\$1elapsed\$1time\$1per\$1call | 실행당 총 경과 시간 | 
| db.sql\$1tokenized.stats.total\$1rows\$1per\$1call | 실행당 처리된 총 행 수 | 
| db.sql\$1tokenized.stats.total\$1logical\$1reads\$1per\$1call | db.sql\$1tokenized.stats.total\$1rows\$1per\$1sec | 
| db.sql\$1tokenized.stats.total\$1logical\$1writes\$1per\$1call | 실행당 총 논리적 쓰기 수 | 
| db.sql\$1tokenized.stats.total\$1physical\$1reads\$1per\$1call | 실행당 총 물리적 읽기 수  | 
| db.sql\$1tokenized.stats.total\$1worker\$1time\$1per\$1call | 실행당 총 CPU 시간(단위: ms) | 

## SQL Server의 기본 통계
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.SQLServer.primary"></a>

다음 지표는 SQL Server SQL 쿼리에 대한 기본 통계를 제공합니다.


| 지표 | Unit | 
| --- | --- | 
| db.sql.stats.execution\$1count | 실행 개수 | 
| db.sql.stats.total\$1elapsed\$1time | 총 경과 시간(밀리초) | 
| db.sql.stats.total\$1rows | 처리된 총 행 수 | 
| db.sql.stats.total\$1logical\$1reads | 총 논리적 읽기 수 | 
| db.sql.stats.total\$1logical\$1writes | 총 논리적 쓰기 수 | 
| db.sql.stats.total\$1physical\$1reads | 총 물리적 읽기 수 | 
| db.sql.stats.total\$1worker\$1time | 총 CPU 시간(밀리초) | 

다음 지표는 SQL Server 다이제스트 쿼리에 대한 기본 통계를 제공합니다.


| 지표 | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.execution\$1count | 실행 수 | 
| db.sql\$1tokenized.stats.total\$1elapsed\$1time | 총 경과 시간(밀리초) | 
| db.sql\$1tokenized.stats.total\$1rows | 처리된 총 행 수 | 
| db.sql\$1tokenized.stats.total\$1logical\$1reads | 총 논리적 읽기 수 | 
| db.sql\$1tokenized.stats.total\$1logical\$1writes | 총 논리적 쓰기 수 | 
| db.sql\$1tokenized.stats.total\$1physical\$1reads | 총 물리적 읽기 수 | 
| db.sql\$1tokenized.stats.total\$1worker\$1time | 총 CPU 시간(밀리초) | 

# RDS PostgreSQL에 대한 SQL 통계
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL"></a>

성능 개선 도우미가 SQL 호출과 쿼리가 실행되는 초당 통계가 SQL 통계를 수집합니다. RDS for PostgreSQL은 다이제스트 수준에서만 SQL 통계를 수집합니다. 명령문 수준에는 통계가 표시되지 않습니다.

다음에서 RDS for PostgreSQL 다이제스트 수준 통계에 대한 정보를 찾을 수 있습니다.

**Topics**
+ [RDS PostgreSQL에 대한 다이제스트 통계](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.digest)
+ [RDS PostgreSQL에 대한 초당 다이제스트 통계](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.per-second)
+ [RDS PostgreSQL에 대한 호출당 다이제스트 통계](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.per-call)
+ [RDS PostgreSQL에 대한 기본 통계](#USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.primary)

## RDS PostgreSQL에 대한 다이제스트 통계
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.digest"></a>

SQL 다이제스트 통계를 보려면 RDS PostgreSQL은 `pg_stat_statements` 라이브러리를 로드해야 합니다. PostgreSQL 11 이상과 호환되는 PostgreSQL DB 인스턴스의 경우 데이터베이스가 이 라이브러리를 기본값으로 로드합니다. PostgreSQL 10 이하와 호환되는 PostgreSQL DB 인스턴스의 경우 이 라이브러리를 수동으로 활성화합니다. 이 라이브러리를 수동으로 활성화하려면 DB 인스턴스와 연결된 DB 파라미터 그룹의 `pg_stat_statements`에 `shared_preload_libraries`를 추가하세요. 그런 다음 DB 인스턴스를 재부팅합니다. 자세한 내용은 [Amazon RDS의 파라미터 그룹](USER_WorkingWithParamGroups.md) 섹션을 참조하세요.

**참고**  
Performance Insights는 `pg_stat_activity`에서 잘리지 않은 쿼리에 대한 통계만 수집할 수 있습니다. 기본적으로 PostgreSQL 데이터베이스는 1,024바이트보다 긴 쿼리를 자릅니다. 쿼리 크기를 늘리려면 DB 인스턴스와 연결된 DB 파라미터 그룹에서 `track_activity_query_size` 파라미터를 변경합니다. 이 파라미터를 변경하면 DB 인스턴스를 재부팅해야 합니다.

## RDS PostgreSQL에 대한 초당 다이제스트 통계
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.per-second"></a>

다음 SQL 다이제스트 통계는 PostgreSQL DB 인스턴스에 제공됩니다.


| 측정치 | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.calls\$1per\$1sec | 초당 호출 수 | 
| db.sql\$1tokenized.stats.rows\$1per\$1sec | 초당 행 | 
| db.sql\$1tokenized.stats.total\$1time\$1per\$1sec | 초당 평균 활성 실행(AAE) | 
| db.sql\$1tokenized.stats.shared\$1blks\$1hit\$1per\$1sec | 초당 블록 히트 수 | 
| db.sql\$1tokenized.stats.shared\$1blks\$1read\$1per\$1sec | 초당 블록 읽기 수 | 
| db.sql\$1tokenized.stats.shared\$1blks\$1dirtied\$1per\$1sec | 초당 더티 블록 수 | 
| db.sql\$1tokenized.stats.shared\$1blks\$1written\$1per\$1sec | 초당 블록 쓰기 수 | 
| db.sql\$1tokenized.stats.local\$1blks\$1hit\$1per\$1sec | 초당 로컬 블록 히트 수 | 
| db.sql\$1tokenized.stats.local\$1blks\$1read\$1per\$1sec | 초당 로컬 블록 읽기 수 | 
| db.sql\$1tokenized.stats.local\$1blks\$1dirtied\$1per\$1sec | 초당 로컬 블록 더티 수 | 
| db.sql\$1tokenized.stats.local\$1blks\$1written\$1per\$1sec | 초당 로컬 블록 쓰기 수 | 
| db.sql\$1tokenized.stats.temp\$1blks\$1written\$1per\$1sec | 초당 임시 쓰기 수 | 
| db.sql\$1tokenized.stats.temp\$1blks\$1read\$1per\$1sec | 초당 임시 읽기 수 | 
| db.sql\$1tokenized.stats.blk\$1read\$1time\$1per\$1sec | 초당 평균 동시 읽기 수 | 
| db.sql\$1tokenized.stats.blk\$1write\$1time\$1per\$1sec | 초당 평균 동시 쓰기 수 | 

## RDS PostgreSQL에 대한 호출당 다이제스트 통계
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.per-call"></a>

다음 지표에서는 SQL 문의 호출당 통계를 제공합니다.


| 측정치 | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.rows\$1per\$1call | 호출당 행 수 | 
| db.sql\$1tokenized.stats.avg\$1latency\$1per\$1call | 호출당 평균 지연 시간(단위: ms) | 
| db.sql\$1tokenized.stats.shared\$1blks\$1hit\$1per\$1call | 호출당 블록 히트 수 | 
| db.sql\$1tokenized.stats.shared\$1blks\$1read\$1per\$1call | 호출당 블록 읽기 수 | 
| db.sql\$1tokenized.stats.shared\$1blks\$1written\$1per\$1call | 호출당 블록 쓰기 수 | 
| db.sql\$1tokenized.stats.shared\$1blks\$1dirtied\$1per\$1call | 통화 당 더티 블록 수 | 
| db.sql\$1tokenized.stats.local\$1blks\$1hit\$1per\$1call | 호출당 로컬 블록 히트 수 | 
| db.sql\$1tokenized.stats.local\$1blks\$1read\$1per\$1call | 호출당 로컬 블록 읽기 수 | 
| db.sql\$1tokenized.stats.local\$1blks\$1dirtied\$1per\$1call | 호출당 로컬 블록 더티 수 | 
| db.sql\$1tokenized.stats.local\$1blks\$1written\$1per\$1call | 호출당 로컬 블록 쓰기 수 | 
| db.sql\$1tokenized.stats.temp\$1blks\$1written\$1per\$1call | 호출당 임시 블록 쓰기 수 | 
| db.sql\$1tokenized.stats.temp\$1blks\$1read\$1per\$1call | 호출당 임시 블록 읽기 수 | 
| db.sql\$1tokenized.stats.blk\$1read\$1time\$1per\$1call | 호출당 읽기 시간(단위: ms) | 
| db.sql\$1tokenized.stats.blk\$1write\$1time\$1per\$1call | 호출당 쓰기 시간(단위: ms) | 

## RDS PostgreSQL에 대한 기본 통계
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.PostgreSQL.primary"></a>

다음 SQL 통계는 PostgreSQL DB 인스턴스에서 사용 가능합니다.


| 지표 | Unit | 
| --- | --- | 
| db.sql\$1tokenized.stats.calls | 호출  | 
| db.sql\$1tokenized.stats.rows | 행  | 
| db.sql\$1tokenized.stats.total\$1time | 총 시간(밀리초) | 
| db.sql\$1tokenized.stats.shared\$1blks\$1hit | 블록 히트  | 
| db.sql\$1tokenized.stats.shared\$1blks\$1read | 블록 읽기  | 
| db.sql\$1tokenized.stats.shared\$1blks\$1dirtied | 더티 블록  | 
| db.sql\$1tokenized.stats.shared\$1blks\$1written | 블록 쓰기  | 
| db.sql\$1tokenized.stats.local\$1blks\$1hit | 로컬 블록 히트  | 
| db.sql\$1tokenized.stats.local\$1blks\$1read | 로컬 블록 읽기  | 
| db.sql\$1tokenized.stats.local\$1blks\$1dirtied | 로컬 블록 더티 | 
| db.sql\$1tokenized.stats.local\$1blks\$1written | 로컬 블록 쓰기  | 
| db.sql\$1tokenized.stats.temp\$1blks\$1written | 임시 쓰기  | 
| db.sql\$1tokenized.stats.temp\$1blks\$1read | 임시 읽기  | 
| db.sql\$1tokenized.stats.blk\$1read\$1time | 평균 동시 읽기(밀리초) | 
| db.sql\$1tokenized.stats.blk\$1write\$1time | 평균 동시 쓰기(밀리초) | 

이러한 지표에 대한 자세한 내용은 PostgreSQL 설명서의 [pg\$1stat\$1statements](https://www.postgresql.org/docs/current/pgstatstatements.html)를 참조하세요.