RDS PostgreSQL의 SQL 통계
RDS PostgreSQL의 SQL 통계
AWS Performance Insights에서 RDS PostgreSQL 인스턴스의 SQL 통계를 어떻게 수집하고 확인하는지 설명하는 페이지예요. PostgreSQL은 다이제스트(digest) 단위로만 통계를 수집한다는 점이 특징이에요.
출처: 문서
본문
Performance Insights는 각 SQL 호출에 대해, 그리고 쿼리가 실행되는 매초마다 SQL 통계를 수집해요. RDS for PostgreSQL은 다이제스트 단위에서만 SQL 통계를 수집하며, 문장 단위의 통계는 표시되지 않아요.
아래에서 RDS for PostgreSQL의 다이제스트 단위 통계에 대한 정보를 확인할 수 있어요.
RDS PostgreSQL용 다이제스트 통계
SQL 다이제스트 통계를 보려면 RDS PostgreSQL에 pg_stat_statements 라이브러리가 로드되어 있어야 해요. PostgreSQL 11 이상과 호환되는 DB 인스턴스는 기본적으로 이 라이브러리를 로드해요. 반면 PostgreSQL 10 이하와 호환되는 DB 인스턴스는 이 라이브러리를 수동으로 활성화해야 해요. 수동으로 활성화하려면 DB 인스턴스와 연결된 DB 파라미터 그룹의 shared_preload_libraries에 pg_stat_statements를 추가한 다음, DB 인스턴스를 재부팅하면 돼요. 자세한 내용은 Amazon RDS의 파라미터 그룹 문서를 참고해요.
참고 — Performance Insights는
pg_stat_activity에서 잘리지 않은(truncate) 쿼리에 대해서만 통계를 수집할 수 있어요. 기본적으로 PostgreSQL은 4,096바이트보다 긴 쿼리를 잘라버려요. 쿼리 크기를 늘리려면 DB 인스턴스와 연결된 DB 파라미터 그룹에서track_activity_query_size파라미터를 변경하면 돼요. 이 파라미터를 변경하면 DB 인스턴스 재부팅이 필요해요.
RDS PostgreSQL용 초당 다이제스트 통계
PostgreSQL DB 인스턴스에서 사용할 수 있는 SQL 다이제스트 통계는 다음과 같아요.
| 지표 (Metric) | 단위 (Unit) |
|---|---|
db.sql_tokenized.stats.calls_per_sec |
초당 호출 수 |
db.sql_tokenized.stats.rows_per_sec |
초당 행 수 |
db.sql_tokenized.stats.total_time_per_sec |
초당 평균 활성 실행 수 (AAE) |
db.sql_tokenized.stats.shared_blks_hit_per_sec |
초당 블록 히트 수 |
db.sql_tokenized.stats.shared_blks_read_per_sec |
초당 블록 읽기 |
db.sql_tokenized.stats.shared_blks_dirtied_per_sec |
초당 변경(dirty)된 블록 수 |
db.sql_tokenized.stats.shared_blks_written_per_sec |
초당 블록 쓰기 |
db.sql_tokenized.stats.local_blks_hit_per_sec |
초당 로컬 블록 히트 수 |
db.sql_tokenized.stats.local_blks_read_per_sec |
초당 로컬 블록 읽기 |
db.sql_tokenized.stats.local_blks_dirtied_per_sec |
초당 변경(dirty)된 로컬 블록 수 |
db.sql_tokenized.stats.local_blks_written_per_sec |
초당 로컬 블록 쓰기 |
db.sql_tokenized.stats.temp_blks_written_per_sec |
초당 임시 쓰기 |
db.sql_tokenized.stats.temp_blks_read_per_sec |
초당 임시 읽기 |
db.sql_tokenized.stats.blk_read_time_per_sec |
초당 평균 동시 읽기 |
db.sql_tokenized.stats.blk_write_time_per_sec |
초당 평균 동시 쓰기 |
RDS PostgreSQL용 호출당 다이제스트 통계
다음 지표들은 SQL 문장에 대한 호출당 통계를 제공해요.
| 지표 (Metric) | 단위 (Unit) |
|---|---|
db.sql_tokenized.stats.rows_per_call |
호출당 행 수 |
db.sql_tokenized.stats.avg_latency_per_call |
호출당 평균 지연 시간 (ms) |
db.sql_tokenized.stats.shared_blks_hit_per_call |
호출당 블록 히트 수 |
db.sql_tokenized.stats.shared_blks_read_per_call |
호출당 블록 읽기 |
db.sql_tokenized.stats.shared_blks_written_per_call |
호출당 블록 쓰기 |
db.sql_tokenized.stats.shared_blks_dirtied_per_call |
호출당 변경(dirty)된 블록 수 |
db.sql_tokenized.stats.local_blks_hit_per_call |
호출당 로컬 블록 히트 수 |
db.sql_tokenized.stats.local_blks_read_per_call |
호출당 로컬 블록 읽기 |
db.sql_tokenized.stats.local_blks_dirtied_per_call |
호출당 변경(dirty)된 로컬 블록 수 |
db.sql_tokenized.stats.local_blks_written_per_call |
호출당 로컬 블록 쓰기 |
db.sql_tokenized.stats.temp_blks_written_per_call |
호출당 임시 블록 쓰기 |
db.sql_tokenized.stats.temp_blks_read_per_call |
호출당 임시 블록 읽기 |
db.sql_tokenized.stats.blk_read_time_per_call |
호출당 읽기 시간 (ms) |
db.sql_tokenized.stats.blk_write_time_per_call |
호출당 쓰기 시간 (ms) |
RDS PostgreSQL용 기본 통계
PostgreSQL DB 인스턴스에서 사용할 수 있는 SQL 통계는 다음과 같아요.
| 지표 (Metric) | 단위 (Unit) |
|---|---|
db.sql_tokenized.stats.calls |
호출 수 |
db.sql_tokenized.stats.rows |
행 수 |
db.sql_tokenized.stats.total_time |
총 시간 (ms) |
db.sql_tokenized.stats.shared_blks_hit |
블록 히트 수 |
db.sql_tokenized.stats.shared_blks_read |
블록 읽기 |
db.sql_tokenized.stats.shared_blks_dirtied |
변경(dirty)된 블록 수 |
db.sql_tokenized.stats.shared_blks_written |
블록 쓰기 |
db.sql_tokenized.stats.local_blks_hit |
로컬 블록 히트 수 |
db.sql_tokenized.stats.local_blks_read |
로컬 블록 읽기 |
db.sql_tokenized.stats.local_blks_dirtied |
변경(dirty)된 로컬 블록 수 |
db.sql_tokenized.stats.local_blks_written |
로컬 블록 쓰기 |
db.sql_tokenized.stats.temp_blks_written |
임시 쓰기 |
db.sql_tokenized.stats.temp_blks_read |
임시 읽기 |
db.sql_tokenized.stats.blk_read_time |
평균 동시 읽기 (ms) |
db.sql_tokenized.stats.blk_write_time |
평균 동시 쓰기 (ms) |
이 지표들에 대한 자세한 내용은 PostgreSQL 문서의 pg_stat_statements를 참고해요.