

# 성능 개선 도우미의 상위 SQL 탭을 사용하여 쿼리 분석
<a name="USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics"></a>

Amazon RDS 성능 개선 도우미 대시보드에서 **상위 차원(Top dimensions)** 테이블의 **상위 SQL(Top SQL)** 탭에서 실행 중인 쿼리 및 최근 쿼리에 대한 정보를 확인할 수 있습니다. 이 정보를 사용하여 쿼리를 튜닝할 수 있습니다.

**Topics**
+ [상위 SQL(Top SQL) 탭 개요](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL)
+ [성능 개선 도우미 대시보드에서 더 많은 SQL 텍스트에 액세스](USER_PerfInsights.UsingDashboard.SQLTextSize.md)
+ [성능 개선 도우미 대시보드에서 SQL 통계 보기](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.AnalyzingSQLLevel.md)

## 상위 SQL(Top SQL) 탭 개요
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL"></a>

기본적으로 **상위 SQL** 탭은 DB 로드에 가장 많은 영향을 미치는 25개의 쿼리를 보여줍니다. 쿼리를 조정하는 데 도움이 되도록 쿼리 텍스트 및 SQL 통계와 같은 정보를 분석할 수 있습니다. **상위 SQL(Top SQL)** 탭에 표시될 통계를 선택할 수도 있습니다.

**Topics**
+ [SQL 텍스트](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.text)
+ [SQL 통계](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.statistics)
+ [대기별 로드(AAS)](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.Load-by-waits)
+ [SQL 정보 보기](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.SQL-information)
+ [통계 기본 설정 선택](#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.Preferences)

### SQL 텍스트
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.text"></a>

기본적으로 **상위 SQL** 테이블의 각 행에는 각 문에 대해 500바이트의 텍스트가 표시됩니다.

![\[SQL 텍스트\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/sql-text-apg.png)


기본 500바이트 이상의 SQL 텍스트를 보는 방법에 대한 자세한 내용은 [성능 개선 도우미 대시보드에서 더 많은 SQL 텍스트에 액세스](USER_PerfInsights.UsingDashboard.SQLTextSize.md) 섹션을 참조하세요.

*SQL 다이제스트(SQL digest)*는 구조적으로 유사하지만 리터럴 값이 다를 수 있는 여러 실제 쿼리의 조합입니다. 다이제스트는 하드 코딩된 값을 물음표로 바꿉니다. 예를 들어, 다이제스트는 `SELECT * FROM emp WHERE lname= ?`가 될 수 있습니다. 이 다이제스트에는 다음 하위 쿼리가 포함될 수 있습니다.

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

다이제스트에서 리터럴 SQL 문을 보려면 쿼리를 선택한 다음 더하기 기호 (\$1) 를 선택합니다. 다음 예에서 선택한 쿼리는 다이제스트입니다.

![\[선택된 SQL 다이제스트\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/perf_insights_4b.png)


**참고**  
SQL 다이제스트는 유사한 SQL 문을 그룹화하지만, 민감한 정보는 삭제하지 않습니다.

### SQL 통계
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.statistics"></a>

*SQL 통계(SQL statistics)*는 SQL 쿼리에 대한 성능 관련 지표입니다. 예를 들어 성능 개선 도우미는 초당 실행 횟수 또는 초당 처리된 행을 표시할 수 있습니다. 성능 개선 도우미는 가장 일반적인 쿼리에 대한 통계만 수집합니다. 일반적으로 이러한 쿼리는 성능 개선 도우미 대시보드에 표시된 부하별로 상위 쿼리와 일치합니다.

**상위 SQL(Top SQL)** 테이블의 모든 라인은 다음 예에 나온 것처럼 SQL 문 또는 다이제스트에 대한 관련 통계를 보여줍니다.

![\[상위 SQL\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/perf_insights_4.png)


성능 개선 도우미는 SQL 통계에 대해 `0.00` 및 `-`(알 수 없음)을 보고할 수 있습니다. 이 상황은 다음 조건에서 발생합니다.
+ 샘플이 하나만 존재합니다. 예를 들어, 성능 개선 도우미는 `pg_stat_statements` 보기에서 여러 개의 샘플을 기반으로 Aurora PostgreSQL 쿼리의 변경 비율을 계산합니다. 워크로드가 짧은 시간 동안 실행되면 성능 개선 도우미에서 샘플을 하나만 수집할 수 있으며 이런 경우 변경 비율을 계산할 수 없습니다. 값을 알 수 없으므로 대시(`-`)로 표시됩니다.
+ 두 샘플의 값이 같은 경우입니다. 변경이 발생하지 않았기 때문에 성능 개선 도우미가 변경 비율을 계산할 수 없으므로 비율을 `0.00`으로 보고합니다.
+ Aurora PostgreSQL 문에 유효한 식별자가 없는 경우입니다. PostgreSQL은 구문 분석 및 분석 후에만 문에 대한 식별자를 만듭니다. 따라서 PostgreSQL 내부 인 메모리 구조에 식별자가 없는 상태로 문이 존재할 수 있습니다. 성능 개선 도우미는 초당 한 번 내부 인 메모리 구조를 샘플링하므로 하나의 샘플에 대해서만 대기 시간이 짧은 쿼리가 나타날 수 있습니다. 이 샘플에 대해 쿼리 식별자를 사용할 수 없는 경우 성능 개선 도우미는 이 문을 통계와 연결할 수 없습니다. 값을 알 수 없으므로 대시(`-`)로 표시됩니다.

Aurora엔진의 SQL 통계에 대한 설명을 보려면 [성능 개선 도우미에 대한 SQL 통계](sql-statistics.md) 섹션을 참조하세요.

### 대기별 로드(AAS)
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.Load-by-waits"></a>

**상위 SQL(Top SQL)**에서 **대기 시간별 로드(AAS)(Load by waits (AAS))** 열은 각 상위 로드 항목과 연결된 데이터베이스 로드의 비율을 나타냅니다. 이 열에는 현재 **DB 부하 차트**에서 어떤 그룹화 기준을 선택하든 그 기준에 따라 해당 항목의 부하가 반영됩니다. 평균 활성 세션(AAS)에 대한 자세한 내용은 [평균 활성 세션](USER_PerfInsights.Overview.ActiveSessions.md#USER_PerfInsights.Overview.ActiveSessions.AAS) 섹션을 참조하세요.

예를 들어 **DB 로드(DB load)** 차트를 대기 상태별로 그룹화할 수 있습니다. 상위 부하 항목 테이블에서 SQL 쿼리를 검사합니다. 이 경우 **DB Load by Waits(대기별 DB 로드)** 막대는 쿼리가 영향을 미치는 대기 상태의 정도를 크기, 세그먼트 및 컬러 코드로 표시합니다. 또한 선택한 쿼리에 영향을 미치는 대기 상태를 표시합니다.

![\[대기 시간별 DB 부하\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/perf_insights_6.png)


### SQL 정보 보기
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.SQL-information"></a>

**상위 SQL(Top SQL)** 테이블에서 명령문을 열어 해당 정보를 볼 수 있습니다. 맨 아래 창에 정보가 나타납니다.

![\[리터럴 쿼리가 선택된 상위 SQL 테이블\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/perf-insights-sql-ids-open.png)


상위 SQL 탭에서 SQL 문과 연결된 다음과 같은 식별자(ID) 유형을 볼 수 있습니다.
+ **SQL ID 지원** – SQL ID의 해시 값입니다. 이 값은 AWS Support를 이용할 때 SQL ID를 참조하는 용도로만 사용됩니다. AWS Support는 실제 SQL ID 및 SQL 텍스트에 액세스할 수 없습니다.
+ **Support Digest ID(다이제스트 ID 지원)** – 다이제스트 ID의 해시 값입니다. 이 값은 AWS Support를 이용할 때 다이제스트 ID를 참조하는 용도로만 사용됩니다. AWS Support는 실제 다이제스트 ID 및 SQL 텍스트에 액세스할 수 있는 권한이 없습니다.

### 통계 기본 설정 선택
<a name="USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL.Preferences"></a>

**기본 설정(Preferences)** 아이콘을 선택하여 **상위 SQL(Top SQL)** 탭에 표시되는 통계를 제어할 수 있습니다.

![\[통계 기본 설정\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/perf-insights-sql-ids-preferences-icon.png)


**기본 설정** 아이콘을 선택하면 **기본 설정** 창이 열립니다. 다음 스크린샷은 **기본 설정** 창의 예입니다.

![\[기본 설정 창\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/perf-insights-sql-ids-preferences.png)


**상위 SQL(Top SQL)** 탭에 표시하려는 통계를 활성화하고 마우스를 사용하여 창 아래쪽으로 스크롤한 다음 **계속(Continue)**을 선택합니다.

Aurora 엔진의 초당 또는 호출당 통계에 대한 자세한 내용은 [성능 개선 도우미에 대한 SQL 통계](sql-statistics.md)의 엔진별 SQL 통계 섹션을 참조하십시오.