이 페이지에서는 데이터베이스에서 활성 상태로 있는 쿼리를 모니터링하고 문제 해결하는 방법을 설명합니다. 이러한 쿼리를 모니터링하면 시스템 지연 시간 및 높은 CPU 사용량에 대한 원인을 파악하는 데 도움이 될 수 있습니다.
쿼리 통계 대시보드에서 활성 트랜잭션 요약과 연결된 쿼리 및 통계와 함께 트랜잭션 목록을 볼 수 있습니다. 트랜잭션은 트랜잭션 시작 시간으로 표시됩니다. 실행 중인 쿼리 수가 많으면 총 쿼리 중 일부만 결과가 표시될 수 있습니다.
시작하기 전에
맞춤 역할을 만들고 다음 권한을 추가합니다. 그런 다음 쿼리 통계를 사용해야 하는 각 사용자 계정에 역할을 부여합니다.
Tasks | 역할 | 권한 |
---|---|---|
데이터베이스 활동 요약 및 장기 실행 트랜잭션 보기 |
databaseinsights.viewer
|
databaseinsights.activeQueries.fetch databaseinsights.activitySummary.fetch
|
인스턴스 활동 요약 보기 |
cloudsql.viewer
|
해당 사항 없음 |
세션 종료 |
cloudsql.editor databaseinsights.operationsAdmin
|
해당 사항 없음 |
활성 쿼리 사용 설정
활성 쿼리를 사용 설정하려면 다음 단계를 완료하세요.
-
Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.
- 인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.
- 구성 타일에서 구성 수정을 클릭합니다.
- 쿼리 통계 창을 펼칩니다.
- 쿼리 통계 사용 설정 체크박스가 선택 해제되어 있으면 선택합니다. 쿼리 통계가 사용 설정된 경우 활성 쿼리를 사용할 수 있습니다.
- 저장을 클릭합니다.
활성 쿼리 보기
활성 쿼리를 보려면 다음 단계를 완료하세요.
활성 쿼리를 보려는 각 사용자에 대해 이 역할을 추가합니다.
Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.
인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.
다음 중 하나를 수행하여 쿼리 통계 대시보드를 표시합니다.
- 쿼리 통계 탭을 선택합니다.
- 쿼리 통계로 이동하여 쿼리 및 성능에 대한 자세한 정보 보기를 클릭합니다. 쿼리 통계 대시보드가 열립니다. 상단에 인스턴스 세부정보가 표시됩니다.
활성 쿼리 탭을 클릭합니다.
여기에서 가장 오래 실행 중인 트랜잭션 테이블에 표시되는 쿼리 정보를 수정할 수 있습니다.
- 데이터베이스: 특정 데이터베이스 또는 모든 데이터베이스에서 쿼리 로드를 필터링합니다.
- 사용자: 특정 사용자 계정의 쿼리 부하를 필터링합니다.
정규화된 활성 쿼리 보기
쿼리 통계 대시보드에서 정규화된 활성 쿼리와 함께 오래 실행 중인 상위 트랜잭션 목록을 볼 수 있습니다. 정규화된 활성 쿼리는 민감한 정보를 삭제하고 다이제스트를 반환합니다. 다이제스트는 다음 예시에 사용된 여러 값 모두 동일합니다.
정규 쿼리
select * from test_table where id=1;
select * from test_table_where id=2;
다이제스트 또는 정규화된 쿼리
select * from test_table where id=?;
다른 세션에서 실행되는 쿼리는 대시보드에 다른 항목으로 표시됩니다.
가장 오래 실행 중인 트랜잭션 보기
쿼리 통계 대시보드의 가장 오래 실행 중인 트랜잭션 테이블에는 다음 열이 포함됩니다.
열 이름 | 설명 |
---|---|
세션 ID | 세션의 고유 식별자입니다. |
쿼리 | SQL 쿼리 텍스트입니다. |
세션 상태 | 세션 상태입니다. |
쿼리 기간 | 쿼리가 실행된 기간입니다. |
대기 이벤트 유형 | 쿼리 실행을 위해 요청이 차단된 경우 대기 이벤트 유형입니다. |
차단 세션 ID | 세션을 차단하는 세션의 ID입니다. |
트랜잭션 대기 기간 | 세션이 차단된 경우 현재 대기 시간입니다. |
수정된 트랜잭션 행 | 이 쿼리에서 클라이언트에 반환된 행 수입니다. |
완료율 | 쿼리가 진행 상황을 보고하는 경우 완료된 작업의 비율입니다. |
데이터베이스 | 세션이 실행되는 데이터베이스입니다. |
애플리케이션 이름 | 세션을 시작한 애플리케이션의 이름입니다. |
사용자 | 데이터베이스에 연결된 사용자의 이름입니다. |
클라이언트 주소 | 쿼리를 보낸 클라이언트의 특정 IP 주소입니다. |
작업 | 세션을 종료하기 위한 링크가 포함됩니다. |
디스플레이가 60초마다 자동으로 새로고침됩니다.
세션 종료
쿼리 또는 트랜잭션을 종료하려면 databaseinsights.operationsAdmin
역할이 있어야 합니다. 자세한 내용은 IAM 기본 및 사전 정의된 역할 참조를 확인하세요.
쿼리 또는 트랜잭션을 종료하려면 Cloud SQL Enterprise Plus 버전의 쿼리 통계도 사용 설정되어야 합니다.
장기 실행 작업을 종료하는 데 시간이 더 오래 걸릴 수 있습니다.
쿼리 또는 트랜잭션을 종료하려면 다음 단계를 수행합니다.
- 가장 오래 실행 중인 트랜잭션 테이블에서 쿼리를 선택합니다.
- 작업 열에서 세션 종료를 클릭합니다.
- 세션 종료 창에서 확인을 클릭합니다.