

# Aurora PostgreSQL용 쿼리 실행 계획 및 피크 메모리 모니터링
<a name="AuroraPostgreSQL.Monitoring.Query.Plans"></a>

Aurora PostgreSQL DB 인스턴스에서 쿼리 실행 계획을 모니터링하여 현재 데이터베이스 로드에 영향을 미치는 실행 계획을 감지하고, `aurora_compute_plan_id` 파라미터를 사용하여 시간 경과에 따른 실행 계획의 성능 통계를 추적할 수 있습니다. 쿼리가 실행될 때마다 쿼리에서 사용하는 실행 계획에 식별자가 할당되고 동일한 계획의 후속 실행에서 동일한 식별자가 사용됩니다.

`aurora_compute_plan_id`는 Aurora PostgreSQL 버전 14.10, 15.5 이상 버전의 DB 파라미터 그룹에서 기본적으로 `OFF`로 설정되어 있습니다. 계획 식별자를 할당하려면 파라미터 그룹에서 `aurora_compute_plan_id`를 `ON`으로 설정합니다.

이 계획 식별자는 용도가 다른 여러 유틸리티에서 사용됩니다.

DB 인스턴스의 쿼리 피크 메모리 사용량을 모니터링하여 다음 버전에서 데이터베이스 메모리 사용량을 높이는 쿼리를 감지할 수 있습니다.
+ 16.3 이상의 모든 버전
+ 15.7 이상 버전
+ 14.12 이상 버전

쿼리가 실행될 때마다 쿼리에 사용된 피크 메모리가 추적됩니다. 쿼리는 일반적으로 여러 번 실행됩니다. 각 쿼리에 대해 모든 실행의 평균, 최소 및 최대 메모리 사용량 값을 볼 수 있습니다.

**Topics**
+ [Aurora 함수를 사용하여 쿼리 실행 계획 및 피크 메모리에 액세스](#AuroraPostgreSQL.Monitoring.Query.Plans.Functions)
+ [Aurora PostgreSQL 쿼리 실행 계획에 대한 파라미터 참조](#AuroraPostgreSQL.Monitoring.Query.Plans.Parameters)

## Aurora 함수를 사용하여 쿼리 실행 계획 및 피크 메모리에 액세스
<a name="AuroraPostgreSQL.Monitoring.Query.Plans.Functions"></a>

`aurora_compute_plan_id`를 사용하면 다음 함수를 사용하여 실행 계획에 액세스할 수 있습니다.
+ aurora\$1stat\$1activity
+ aurora\$1stat\$1plans

쿼리 피크 메모리에는 쿼리 처리가 시작되기 전에 할당된 메모리가 포함되지 않습니다. 피크 메모리 사용량은 각 쿼리의 계획 및 실행 단계에서 개별적으로 추적 및 보고됩니다.

![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/aurora-apg-peakmemory.png)


다음 함수를 사용하여 쿼리 피크 메모리 통계에 액세스할 수 있습니다.
+ aurora\$1stat\$1statements
+ aurora\$1stat\$1plans

이러한 함수에 관한 자세한 내용은 [Aurora PostgreSQL 함수 참조](Appendix.AuroraPostgreSQL.Functions.md) 섹션을 참조하세요.

## Aurora PostgreSQL 쿼리 실행 계획에 대한 파라미터 참조
<a name="AuroraPostgreSQL.Monitoring.Query.Plans.Parameters"></a>

DB 파라미터 그룹의 아래 파라미터를 사용하여 쿼리 실행 계획을 모니터링할 수 있습니다.

**Topics**
+ [aurora\$1compute\$1plan\$1id](#aurora.compute_plan_id)
+ [aurora\$1stat\$1plans.minutes\$1until\$1recapture](#aurora.minutes_until_recapture)
+ [aurora\$1stat\$1plans.calls\$1until\$1recapture](#aurora.calls_until_recapture)
+ [aurora\$1stat\$1plans.with\$1costs](#aurora.with_costs)
+ [aurora\$1stat\$1plans.with\$1analyze](#aurora.with_analyze)
+ [aurora\$1stat\$1plans.with\$1timing](#aurora.with_timing)
+ [aurora\$1stat\$1plans.with\$1buffers](#aurora.with_buffers)
+ [aurora\$1stat\$1plans.with\$1wal](#aurora.with_wal)
+ [aurora\$1stat\$1plans.with\$1triggers](#aurora.with_triggers)

**참고**  
`aurora_stat_plans.with_*` 파라미터 구성은 새로 캡처한 계획에만 적용됩니다.

### aurora\$1compute\$1plan\$1id
<a name="aurora.compute_plan_id"></a>

`aurora_compute_plan_id`는 쿼리 실행 중에 계획 식별자가 할당되는지를 제어하는 구성 파라미터입니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Monitoring.Query.Plans.html)

### aurora\$1stat\$1plans.minutes\$1until\$1recapture
<a name="aurora.minutes_until_recapture"></a>

계획이 다시 캡처되기까지 걸리는 시간(분)입니다. 기본값은 0이며, 이 경우 계획을 다시 캡처할 수 없습니다. `aurora_stat_plans.calls_until_recapture` 임계값을 초과한 경우 계획을 다시 캡처할 수 있습니다.


| 기본값 | 허용된 값 | 설명 | 
| --- | --- | --- | 
| 0 | 0-1073741823 | 계획이 다시 캡처되기까지 걸리는 시간(분)을 설정합니다. | 

### aurora\$1stat\$1plans.calls\$1until\$1recapture
<a name="aurora.calls_until_recapture"></a>

플랜이 다시 캡처되기 전 해당 플랜을 호출한 횟수입니다. 기본값은 0이며, 이 경우 해당 횟수만큼 플랜이 호출된 후에는 계획을 다시 캡처할 수 없습니다. `aurora_stat_plans.minutes_until_recapture` 임계값을 초과한 경우 계획을 다시 캡처할 수 있습니다.


| 기본값 | 허용된 값 | 설명 | 
| --- | --- | --- | 
| 0 | 0-1073741823 | 플랜이 다시 캡처되기 전까지 가능한 호출 횟수를 설정합니다. | 

### aurora\$1stat\$1plans.with\$1costs
<a name="aurora.with_costs"></a>

예상 비용이 포함된 EXPLAIN 계획을 캡처합니다. 허용 값은 `on`, `off`입니다. 기본값은 `on`입니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Monitoring.Query.Plans.html)

### aurora\$1stat\$1plans.with\$1analyze
<a name="aurora.with_analyze"></a>

ANALYZE를 사용하여 EXPLAIN 계획을 제어합니다. 이 모드는 계획을 처음 캡처할 때만 사용됩니다. 허용 값은 `on`, `off`입니다. 기본값은 `off`입니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Monitoring.Query.Plans.html)

### aurora\$1stat\$1plans.with\$1timing
<a name="aurora.with_timing"></a>

ANALYZE 사용 시 설명에 계획 타이밍이 캡처됩니다. 기본값은 `on`입니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Monitoring.Query.Plans.html)

### aurora\$1stat\$1plans.with\$1buffers
<a name="aurora.with_buffers"></a>

ANALYZE 사용 시 설명에 계획 버퍼 사용량 통계가 캡처됩니다. 기본값은 `off`입니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Monitoring.Query.Plans.html)

### aurora\$1stat\$1plans.with\$1wal
<a name="aurora.with_wal"></a>

ANALYZE 사용 시 설명에 계획 WAL 사용량 통계가 캡처됩니다. 기본값은 `off`입니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Monitoring.Query.Plans.html)

### aurora\$1stat\$1plans.with\$1triggers
<a name="aurora.with_triggers"></a>

`ANALYZE` 사용 시 설명에 계획 트리거 실행 통계가 캡처됩니다. 기본값은 `off`입니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Monitoring.Query.Plans.html)