점검 도구 개요

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

쿼리 통계

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

쿼리 통계는 1분, 10분, 60분 �����으로 수집된 쿼리(DML 문 및 변경 내역 쿼리 포함)의 집계 통계입니다. 통계는 성공적으로 완료된 문과 실패했거나 시간을 초과했거나 사용자가 취소한 문에 대해 수집됩니다.

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

쿼리 통계 대시보드를 사용하여 시계열에서 이러한 측정항목을 시각화할 수 있습니다. 이러한 사전 빌드된 대시보드를 사용하면 CPU 사용률 급증을 확인하고 비효율적인 쿼리를 식별할 수 있습니다.

가장 오래된 활성 쿼리

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

변경 내역 쿼리는 가장 오래된 활성 쿼리에 포함되지 않습니다.

읽기 통계

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

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

트랜잭션 통계

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

트랜잭션 통계 대시보드를 사용하여 시계열에서 이러한 측정항목을 시각화할 수 있습니다. 사전 빌드된 대시보드를 사용하면 트랜잭션의 지연 시간을 확인하고 문제가 있는 트랜잭션을 식별할 수 있습니다.

잠금 통계

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

잠금 통계 대시보드를 사용해서 시계열에서 이러한 측정항목을 시각화할 수 있습니다. 사전 빌드된 대시보드는 잠금 대기 시간을 보고 잠금 대기 시간이 높은 잠금 경합으로 인해 지연 시간이 발생했는지 확인하는 데 도움이 됩니다.

각 도구에 포함된 API 메서드

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

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

참고:

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

2 PartitionQuery API에서 실행되는 쿼리는 쿼리 통계 또는 가장 오래된 활성 쿼리에 포함되지 않습니다.

3 DML 문 배치는 쿼리 통계에서 단일 항목으로 나타납니다.

4 배치에 있는 문은 전체 배치가 아닌 가장 오래된 활성 쿼리에 나타납니다.

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

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

테이블 크기 통계

테이블 크기 통계를 사용하여 데이터베이스의 테이블 및 색인의 이전 크기를 모니터링할 수 있습니다.

테이블 크기 통계를 사용하여 테이블, 색인, 변경 내역 테이블의 크기 트렌드를 찾습니다. 가장 큰 테이블과 색인을 추적할 수도 있습니다.

이 기능은 이전 기록만 제공합니다. 실시간 모니터링용이 아닙니다.

테이블 작업 통계

테이블 작업 통계를 사용하여 다음을 수행할 수 있습니다.

  • 데이터베이스에서 테이블과 색인의 사용량을 모니터링합니다.
  • 테이블 및 색인의 사용 추세를 확인합니다.
  • 트래픽 변화를 식별합니다.

또한 테이블 스토���지의 변경사항과 쓰기 트래픽 변경사항의 상관관계를 보여줄 수 있습니다.