점검 도구 개요

Cloud Spanner용 점검 도구를 사용하면 데이터베이스의 문제를 조사할 수 있습니다. 이 도구는 쿼리, 트랜잭션, 읽기 등에 대한 자세한 정보를 얻기 위해 쿼리할 수 있는 기본 제공 테이블 집합으로 구성됩니다. 특정 문제에 어떤 도구를 사용해야 할지 모르시겠습니까? 다음 목록에는 각 도구와 답변 가능한 질문의 유형이 요약되어 있습니다.

쿼리 통계

데이터베이스의 문제를 조사할 때 어떤 쿼리가 비용이 많이 드는지, 자주 실행되거나 많은 데이터를 검사하는 지 파악하는 것이 도움이 됩니다.

쿼리 통계는 1, 10, 60분 간격으로 쿼리를 수집하여 집계한 통계입니다. 통계는 성공적으로 완료된 쿼리뿐 아니라 실패했거나 시간을 초과했거나 사용자가 취소한 쿼리에 대해 수집됩니다.

이 통계에는 가장 높은 CPU 사용량, 총 쿼리 실행 횟수, 평균 지연 시간, 스캔된 대부분의 데이터, 추가 기본 쿼리 통계가 포함됩니다. 이러한 통계를 사용하여 비용이 높거나 자주 실행되는 쿼리 또는 데이터 집약적인 쿼리를 식별할 수 있습니다.

가장 오래된 활성 쿼리

실행 중인 쿼리를 검사하여 시스템에서 현재 워크로드를 살펴보려는 경우가 있습니다. 가장 오래된 활성 쿼리 도구를 사용하여 데이터베이스 성능에 영향을 미칠 수 있는 장기 실행 쿼리를 조사할 수 있습니다. 이 도구를 통해 쿼리가 무엇인지, 언제 실행이 시작되었는지, 어떤 세션이 속해 있는지 확인할 수 있습니다.

읽기 통계

읽기 통계는 Cloud Spanner Reads API를 사용하여 데이터베이스에서 가장 빈번하고 가장 리소스를 많이 사용하는 읽기를 조사하는 데 사용할 수 있습니다. 이러한 통계는 1분, 10분, 1시간의 세 가지 간격으로 수집되고 저장됩니다. 각 시간 간격마다 Cloud Spanner는 리소스를 가장 많이 사용하는 읽기를 추적합니다.

읽기 통계를 사용하여 모든 읽기에서 결합된 리소스 사용을 찾고, CPU 사용량이 가장 많은 읽기를 찾고, 시간 경과에 따른 특정 읽기의 빈도가 어떻게 변경되는지 확인합니다.

트랜잭션 통계

트랜잭션 통계를 사용하여 트랜잭션 관련 문제를 조사할 수 있습니다. 예를 들어 경합을 유발하는 느린 실행 트랜잭션이 있는지 확인하거나 성능 회귀로 이어지는 트랜잭션 형태의 변경사항을 식별할 수 있습니다. 각 행에는 1, 10, 60분 간격으로 데이터베이스에 대해 실행된 모든 트랜잭션의 통계가 포함됩니다.

잠금 통계

잠금 통계를 사용하여 데이터베이스의 잠금 충돌을 조사할 수 있습니다. 트랜잭션 통계와 함께 사용하면 동시에 동일한 셀에 대한 잠금을 획득하도록 시도하여 잠금 충돌을 유발하는 트랜잭션을 찾을 수 있습니다.

각 도구에 포함된 API 메서드

Cloud Spanner에서 트랜잭션, 읽기, 쿼리 간에 일부 겹치는 부분이 있습니다. 따라서 각 점검 도구 결과를 컴파일할 때 포함되는 API 메서드가 명확하지 않을 수 있습니다. 다음 표에는 주요 API 메서드와 각 도구와의 관계가 나와 있습니다.

API 메서드 트랜잭션 모드 쿼리 통계 가장 오래된 활성 쿼리 읽기 통계 트랜잭션 통계 잠금 통계
읽기, StreamingRead 읽기 전용 트랜잭션1 아니요 아니요 아니요
읽기-쓰기 트랜잭션 아니요
ExecuteSql, ExecuteStreamingSql 읽기 전용 트랜잭션1 아니요 아니요 아니요 아니요
읽기-쓰기 트랜잭션 아니요 아니요
ExecuteBatchDml 읽기-쓰기 트랜잭션 아니요 아니요 아니요
커밋 읽기-쓰기 트랜잭션(DML2, 변형3) 아니요 4 아니요

참고:

1 읽기 전용 트랜잭션은 트랜잭션 통계 또는 잠금 통계에 포함되지 않습니다. 읽기-쓰기 트랜잭션만 트랜잭션 통계 및 잠금 통계에 포함됩니다.

2 커밋되지 않은 DML 작업은 트랜잭션 통계에 포함되지 않습니다.

3 사실상 작동하지 않는 빈 변형은 트랜잭션 통계에 포함되지 않습니다.

4 DML 작업의 쿼리 부분은 가장 오래된 활성 쿼리 결과에 포함됩니다.