Spanner는 데이터베이스 내의 테이블 및 색인의 크기를 나열하는 기본 제공 테이블 SPANNER_SYS.TABLE_SIZES_STATS_1HOUR
를 제공합니다. 테이블 크기는 바이트 단위입니다. 테이블 크기에는 데이터 버전이 포함됩니다. SPANNER_SYS.TABLE_SIZES_STATS_1HOUR
를 사용하여 시간 경과에 따른 테이블 및 색인 크기를 모니터링할 수 있습니다. 또한 색인을 생성/삭제하거나 색인을 수정할 때(색인에 행을 더 추가하거나 새 열을 추가할 때) 색인 크기를 모니터링할 수도 있습니다. 또한 변경 내역 테이블의 크기도 볼 수 있습니다.
총 데이터베이스 스토리지 측정항목으로 데이터베이스 스토리지를 모니터링할 수 있습니다. SPANNER_SYS.TABLE_SIZES_STATS_1HOUR
를 사용하여 데이터베이스 스토리지의 분석을 볼 수 있습니다.
사용 가능 여부
SPANNER_SYS
데이터는 SQL 인터페이스를 통해서만 사용할 수 있습니다. 예를 들면 다음과 같습니다.
Google Cloud 콘솔에 있는 데이터베이스의 Spanner 스튜디오 페이지
gcloud spanner databases execute-sql
명령어executeQuery
API
Spanner가 제공하는 다른 단일 읽기 메서드는 SPANNER_SYS
를 지원하지 않습니다.
TABLE_SIZES_STATS_1HOUR
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR
에는 interval_end
에 따라 정렬된 데이터베이스의 모든 테이블 크기가 포함됩니다. 간격은 시계 시간을 기준으로 매시 정각에 끝납니다. 내부적으로 Spanner는 5분마다 모든 서버에서 데이터를 수집한 다음 곧 TABLE_SIZES_STATS_1HOUR
테이블에서 데이터를 사용할 수 있게 합니다. 그런 다음 데이터는 매시간 평균으로 계산됩니다. 예를 들어 오전 11:59:30에 TABLE_SIZES_STATS_1HOUR
에는 오전 10:00:00~오전 10:59:59 사이의 평균 테이블 크기가 표시됩니다.
테이블 스키마
열 이름 | 유형 | 설명 |
---|---|---|
INTERVAL_END |
TIMESTAMP |
테이블 크기가 수집된 종료 시간 간격입니다. |
TABLE_NAME |
STRING |
테이블 또는 색인의 이름입니다. |
USED_BYTES |
FLOAT64 |
테이블 크기(바이트)입니다. |
쿼리 예
이 섹션에는 집계 테이블 작업 통계를 검색하는 SQL 문의 몇 가지 예시가 포함되어 있습니다. 클라이언트 라이브러리, gcloud spanner 또는 Google Cloud 콘솔을 사용하여 이러한 SQL 문을 실행할 수 있습니다.
가장 최근 간격의 대규모 테이블 4개 및 색인 쿼리
다음 쿼리는 가장 최근 간격에 대해 4개의 가장 큰 테이블과 색인을 반환합니다.
SELECT interval_end, table_name, used_bytes FROM spanner_sys.table_sizes_stats_1hour WHERE interval_end = ( SELECT MAX(interval_end) FROM spanner_sys.table_sizes_stats_1hour) ORDER BY used_bytes DESC LIMIT 4;
쿼리 출력
interval_end | table_name | used_bytes |
---|---|---|
2022-11-15 13:00:00-07:00 |
order_item |
60495552 |
2022-11-15 13:00:00-07:00 |
orders |
13350000 |
2022-11-15 13:00:00-07:00 |
item_inventory |
2094549 |
2022-11-15 13:00:00-07:00 |
customer |
870000 |
지난 24시간 동안 특정 테이블 또는 색인의 쿼리 크기 추세
다음 쿼리는 지난 24시간 동안 테이블의 크기를 반환합니다.
GoogleSQL
SELECT interval_end, used_bytes FROM spanner_sys.table_sizes_stats_1hour WHERE interval_end > TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL -24 HOUR) AND table_name = table_name ORDER BY interval_end DESC;
각 항목의 의미는 다음과 같습니다.
table_name
은 데이터베이스의 기존 테이블 또는 색인이어야 합니다.
쿼리 출력
interval_end | used_bytes |
---|---|
2022-11-15 13:00:00-07:00 |
13350000 |
2022-11-15 12:00:00-07:00 |
13350000 |
2022-11-15 11:00:00-07:00 |
13350000 |
2022-11-15 10:00:00-07:00 |
13350000 |
2022-11-15 09:00:00-07:00 |
13350000 |
2022-11-15 08:00:00-07:00 |
12350000 |
2022-11-15 07:00:00-07:00 |
12350000 |
2022-11-15 06:00:00-07:00 |
12350000 |
2022-11-15 05:00:00-07:00 |
11350000 |
2022-11-15 04:00:00-07:00 |
11350000 |
2022-11-15 03:00:00-07:00 |
11350000 |
2022-11-15 02:00:00-07:00 |
11350000 |
2022-11-15 01:00:00-07:00 |
11350000 |
2022-11-15 00:00:00-07:00 |
10350000 |
2022-11-14 23:00:00-07:00 |
10350000 |
2022-11-14 22:00:00-07:00 |
10350000 |
2022-11-14 21:00:00-07:00 |
10350000 |
2022-11-14 20:00:00-07:00 |
10350000 |
2022-11-14 19:00:00-07:00 |
10350000 |
2022-11-14 18:00:00-07:00 |
10350000 |
2022-11-14 17:00:00-07:00 |
10350000 |
2022-11-14 16:00:00-07:00 |
10350000 |
2022-11-14 15:00:00-07:00 |
10350000 |
2022-11-14 14:00:00-07:00 |
10350000 |
2022-11-14 13:00:00-07:00 |
10350000 |
데이터 보관
Spanner는 최소한 SPANNER_SYS.TABLE_SIZES_STATS_1HOUR
의 데이터를 최근 30일 간격으로 보관합니다.
다음 단계
- 다른 점검 도구 알아보기
- Spanner가 각 데이터베이스에 대해 데이터베이스의 정보 스키마 테이블에 저장하는 다른 정보 알아보기
- Spanner 관련 SQL 권장사항에 대해 자세히 알아보기
- 높은 CPU 사용률 조사에 대해 자세히 알아보기