성능 개선 도우미의 상위 SQL 탭을 사용하여 쿼리 분석
Amazon RDS 성능 개선 도우미 대시보드에서 상위 차원(Top dimensions) 테이블의 상위 SQL(Top SQL) 탭에서 실행 중인 쿼리 및 최근 쿼리에 대한 정보를 확인할 수 있습니다. 이 정보를 사용하여 쿼리를 튜닝할 수 있습니다.
상위 SQL(Top SQL) 탭 개요
기본적으로 상위 SQL 탭은 DB 로드에 가장 많은 영향을 미치는 25개의 쿼리를 보여줍니다. 쿼리를 조정하는 데 도움이 되도록 쿼리 텍스트 및 SQL 통계와 같은 정보를 분석할 수 있습니다. 상위 SQL(Top SQL) 탭에 표시될 통계를 선택할 수도 있습니다.
SQL 텍스트
기본적으로 상위 SQL 테이블의 각 행에는 각 문에 대해 500바이트의 텍스트가 표시됩니다.
기본 500바이트 이상의 SQL 텍스트를 보는 방법에 대한 자세한 내용은 성능 개선 도우미 대시보드에서 더 많은 SQL 텍스트에 액세스 섹션을 참조하세요.
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 문을 보려면 쿼리를 선택한 다음 더하기 기호 (+) 를 선택합니다. 다음 예에서 선택한 쿼리는 다이제스트입니다.
참고
SQL 다이제스트는 유사한 SQL 문을 그룹화하지만, 민감한 정보는 삭제하지 않습니다.
성능 개선 도우미는 Oracle SQL 텍스트를 Unknown으로 표시할 수 있습니다. 각 상황에서 텍스트의 상태는 다음과 같습니다.
-
SYS
이외의 Oracle 데이터베이스 사용자가 활성 상태이지만 현재 SQL을 실행하고 있지 않은 경우입니다. 예를 들어 병렬 쿼리가 완료되면 쿼리 조정자는 도우미가 세션 통계를 전송하기 위해 처리하도록 기다립니다. 대기 기간 동안 쿼리 텍스트가 Unknown으로 표시됩니다. -
Standard Edition 2의 RDS for Oracle 인스턴스의 경우 Oracle Resource Manager가 병렬 스레드의 수를 제한합니다. 이 작업을 수행하는 백그라운드 프로세스로 인해 쿼리 텍스트가 Unknown으로 표시됩니다.
SQL 통계
SQL 통계(SQL statistics)는 SQL 쿼리에 대한 성능 관련 지표입니다. 예를 들어 성능 개선 도우미는 초당 실행 횟수 또는 초당 처리된 행을 표시할 수 있습니다. 성능 개선 도우미는 가장 일반적인 쿼리에 대한 통계만 수집합니다. 일반적으로 이러한 쿼리는 성능 개선 도우미 대시보드에 표시된 부하별로 상위 쿼리와 일치합니다.
상위 SQL(Top SQL) 테이블의 모든 라인은 다음 예에 나온 것처럼 SQL 문 또는 다이제스트에 대한 관련 통계를 보여줍니다.
성능 개선 도우미는 SQL 통계에 대해 0.00
및 -
(알 수 없음)을 보고할 수 있습니다. 이 상황은 다음 조건에서 발생합니다.
-
샘플이 하나만 존재합니다. 예를 들어, 성능 개선 도우미는
pg_stat_statements
보기에서 여러 개의 샘플을 기반으로 RDS PostgreSQL 쿼리의 변경 비율을 계산합니다. 워크로드가 짧은 시간 동안 실행되면 성능 개선 도우미에서 샘플을 하나만 수집할 수 있으며 이런 경우 변경 비율을 계산할 수 없습니다. 값을 알 수 없으므로 대시(-
)로 표시됩니다. -
두 샘플의 값이 같은 경우입니다. 변경이 발생하지 않았기 때문에 성능 개선 도우미가 변경 비율을 계산할 수 없으므로 비율을
0.00
으로 보고합니다. -
RDS PostgreSQL 문에 유효한 식별자가 없는 경우입니다. PostgreSQL은 구문 분석 및 분석 후에만 문에 대한 식별자를 만듭니다. 따라서 PostgreSQL 내부 인 메모리 구조에 식별자가 없는 상태로 문이 존재할 수 있습니다. 성능 개선 도우미는 초당 한 번 내부 인 메모리 구조를 샘플링하므로 하나의 샘플에 대해서만 대기 시간이 짧은 쿼리가 나타날 수 있습니다. 이 샘플에 대해 쿼리 식별자를 사용할 수 없는 경우 성능 개선 도우미는 이 문을 통계와 연결할 수 없습니다. 값을 알 수 없으므로 대시(
-
)로 표시됩니다.
Amazon RDS엔진의 SQL 통계에 대한 설명을 보려면 성능 개선 도우미에 대한 SQL 통계 섹션을 참조하세요.
대기별 로드(AAS)
상위 SQL(Top SQL)에서 대기 시간별 로드(AAS)(Load by waits (AAS)) 열은 각 상위 로드 항목과 연결된 데이터베이스 로드의 비율을 나타냅니다. 이 열에는 현재 DB 부하 차트에서 어떤 그룹화 기준을 선택하든 그 기준에 따라 해당 항목의 부하가 반영됩니다. 평균 활성 세션(AAS)에 대한 자세한 내용은 평균 활성 세션 섹션을 참조하세요.
예를 들어 DB 로드(DB load) 차트를 대기 상태별로 그룹화할 수 있습니다. 상위 부하 항목 테이블에서 SQL 쿼리를 검사합니다. 이 경우 DB Load by Waits(대기별 DB 로드) 막대는 쿼리가 영향을 미치는 대기 상태의 정도를 크기, 세그먼트 및 컬러 코드로 표시합니다. 또한 선택한 쿼리에 영향을 미치는 대기 상태를 표시합니다.
SQL 정보 보기
상위 SQL(Top SQL) 테이블에서 명령문을 열어 해당 정보를 볼 수 있습니다. 맨 아래 창에 정보가 나타납니다.
상위 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 텍스트에 액세스할 수 있는 권한이 없습니다.
통계 기본 설정 선택
기본 설정(Preferences) 아이콘을 선택하여 상위 SQL(Top SQL) 탭에 표시되는 통계를 제어할 수 있습니다.
기본 설정 아이콘을 선택하면 기본 설정 창이 열립니다. 다음 스크린샷은 기본 설정 창의 예입니다.
상위 SQL(Top SQL) 탭에 표시하려는 통계를 활성화하고 마우스를 사용하여 창 아래쪽으로 스크롤한 다음 계속(Continue)을 선택합니다.
Amazon RDS 엔진의 초당 또는 호출당 통계에 대한 자세한 내용은 성능 개선 도우미에 대한 SQL 통계의 엔진별 SQL 통계 섹션을 참조하십시오.