Aurora PostgreSQL 쿼리 계획 관리를 위한 파라미터 참조
이 섹션에 나열된 파라미터를 사용하여 apg_plan_mgmt
확장에 대한 기본 설정을 지정할 수 있습니다 사용자 지정 DB 클러스터 파라미터 및 Aurora PostgreSQL DB 클러스터와 연결된 DB 파라미터 그룹에서 사용할 수 있습니다. 이러한 파라미터는 쿼리 계획 관리 기능의 동작과 이것이 최적화 프로그램에 미치는 영향을 제어합니다. 쿼리 계획 관리를 설정하는 방법에 대한 자세한 내용은 Aurora PostgreSQL 쿼리 계획 관리 활성화 단원을 참조하세요. apg_plan_mgmt
확장이 해당 섹션에 설명된 대로 설정되지 않은 경우 다음 파라미터를 변경해도 효과가 없습니다. 파라미터 수정에 대한 자세한 정보는 Amazon Aurora에서 DB 클러스터 파라미터 그룹의 파라미터 수정 및 Amazon Aurora DB 인스턴스용 DB 파라미터 그룹 단원을 참조하세요.
파라미터
- apg_plan_mgmt.capture_plan_baselines
- apg_plan_mgmt.plan_capture_threshold
- apg_plan_mgmt.explain_hashes
- apg_plan_mgmt.log_plan_enforcement_result
- apg_plan_mgmt.max_databases
- apg_plan_mgmt.max_plans
- apg_plan_mgmt.plan_hash_version
- apg_plan_mgmt.plan_retention_period
- apg_plan_mgmt.unapproved_plan_execution_threshold
- apg_plan_mgmt.use_plan_baselines
- auto_explain.hashes
apg_plan_mgmt.capture_plan_baselines
각 SQL 문에 대해 최적화 프로그램에서 생성한 쿼리 실행 계획을 캡처하여 dba_plans
뷰에 저장합니다. 기본적으로 저장할 수 있는 최대 계획 수는 apg_plan_mgmt.max_plans
파라미터에서 지정한 대로 10,000개입니다. 참조 정보는 apg_plan_mgmt.max_plans 단원을 참조하세요.
사용자 지정 DB 클러스터 파라미터 그룹 또는 사용자 지정 DB 파라미터 그룹에서 이 파라미터를 설정할 수 있습니다. 이 파라미터의 값을 변경하면 재부팅이 필요하지 않습니다.
기본값 | 허용된 값 | 설명 |
---|---|---|
꺼 | automatic | DB 인스턴스의 모든 데이터베이스에 대한 계획 캡처를 활성화합니다. 두 번 이상 실행되는 각 SQL 문에 대한 계획을 수집합니다. 대규모 또는 진화하는 워크로드에 이 설정을 사용하면 계획 안정성을 제공할 수 있습니다. |
수동 | 다시 끌 때까지 후속 명령문에 대해서만 계획 캡처를 켭니다. 이 설정을 사용하면 특정 중요 SQL 문 또는 알려진 문제가 있는 쿼리에 대한 쿼리 실행 계획만 캡처할 수 있습니다. | |
꺼 | 계획 캡처를 끕니다. |
자세한 내용은 Aurora PostgreSQL 실행 계획 캡처 단원을 참조하십시오.
apg_plan_mgmt.plan_capture_threshold
쿼리 실행 계획의 총 비용이 임계값 미만인 경우 계획이 apg_plan_mgmt.dba_plans
뷰에 캡처되지 않도록 임계값을 지정합니다.
이 파라미터의 값을 변경하면 재부팅이 필요하지 않습니다.
기본값 | 허용된 값 | 설명 |
---|---|---|
0 | 0 - 1.79769e+308 | 캡처 계획을 위한 |
자세한 내용은 dba_plans 보기에서 Aurora PostgreSQL 쿼리 계획 검사 단원을 참조하십시오.
apg_plan_mgmt.explain_hashes
EXPLAIN [ANALYZE]
에서 출력 끝에 sql_hash
및 plan_hash
를 표시할지 지정합니다. 이 파라미터의 값을 변경하면 재부팅이 필요하지 않습니다.
기본값 | 허용된 값 | 설명 |
---|---|---|
0 | 0(꺼짐) | EXPLAIN에는 해시 참 옵션이 없는 sql_hash 및 plan_hash가 표시되지 않습니다. |
1(켜짐) | EXPLAIN에는 해시 참 옵션이 없는 sql_hash 및 plan_hash가 표시됩니다. |
apg_plan_mgmt.log_plan_enforcement_result
QPM 관리형 계획이 제대로 사용되는지 확인하기 위해 결과를 기록해야 할지 지정합니다. 저장된 일반 계획을 사용하면 로그 파일에 레코드가 기록되지 않습니다. 이 파라미터의 값을 변경하면 재부팅이 필요하지 않습니다.
기본값 | 허용된 값 | 설명 |
---|---|---|
없음 | 없음 | 로그 파일에 계획 시행 결과를 표시하지 않습니다. |
on_error | QPM이 관리형 계획을 사용하지 못하는 경우에만 계획 시행 결과를 로그 파일에 표시합니다. | |
모두 | 성공 및 실패를 포함하여 모든 계획 시행 결과를 로그 파일에 표시합니다. |
apg_plan_mgmt.max_databases
쿼리 계획 관리를 사용할 수 있는 Aurora PostgreSQL DB 클러스터의 작성기 인스턴스에 있는 최대 데이터베이스 수를 지정합니다. 기본적으로 최대 10개의 데이터베이스에서 쿼리 계획 관리를 사용할 수 있습니다. 인스턴스에 10개 이상의 데이터베이스가 있는 경우 이 설정의 값을 변경할 수 있습니다. 특정 인스턴스에 있는 데이터베이스 수를 확인하려면 psql
을 사용하여 인스턴스에 연결합니다. 그런 다음 psql 메타 명령, \l
을 사용하여 데이터베이스를 나열합니다.
이 파라미터의 값을 변경하려면 설정을 적용하려면 인스턴스를 재부팅해야 합니다.
기본값 | 허용된 값 | 설명 |
---|---|---|
10 | 10-2147483647 | 인스턴스에서 쿼리 계획 관리를 사용할 수 있는 최대 데이터베이스 수입니다. |
사용자 지정 DB 클러스터 파라미터 그룹 또는 사용자 지정 DB 파라미터 그룹에서 이 파라미터를 설정할 수 있습니다.
apg_plan_mgmt.max_plans
쿼리 계획 관리자가 apg_plan_mgmt.dba_plans
보기에서 유지할 수 있는 최대 SQL 문 수를 설정합니다. 모든 Aurora PostgreSQL 버전에서 이 파라미터를 10000
또는 그 이상으로 설정하는 것이 좋습니다.
사용자 지정 DB 클러스터 파라미터 그룹 또는 사용자 지정 DB 파라미터 그룹에서 이 파라미터를 설정할 수 있습니다. 이 파라미터의 값을 변경하려면 설정을 적용하려면 인스턴스를 재부팅해야 합니다.
기본값 | 허용된 값 | 설명 |
---|---|---|
10000 | 10-2147483647 |
Aurora PostgreSQL 버전 10 및 이전 버전의 기본값은 1000입니다. |
자세한 내용은 dba_plans 보기에서 Aurora PostgreSQL 쿼리 계획 검사 단원을 참조하십시오.
apg_plan_mgmt.plan_hash_version
plan_hash 계산이 처리하도록 설계된 사용 사례를 지정합니다. 상위 apg_plan_mgmt.plan_hash_version
버전에는 하위 버전의 모든 기능이 포함됩니다. 예를 들어, 버전 3은 버전 2에서 지원하는 사용 사례를 지원합니다.
이 파라미터의 값을 변경한 다음 apg_plan_mgmt.validate_plans('update_plan_hash')
로 호출해야 합니다. apg_plan_mgmt가 설치되어 있고 계획 테이블에 항목이 있는 각 데이터베이스의 plan_hash 값을 업데이트합니다. 자세한 내용은 계획 검증 단원을 참조하세요.
기본값 | 허용된 값 | 설명 |
---|---|---|
1 | 1 | 기본 plan_hash 계산입니다. |
2 | plan_hash 계산이 다중 스키마 지원을 위해 수정되었습니다. | |
3 | plan_hash 계산이 다중 스키마 및 파티셔닝된 테이블 지원을 위해 수정되었습니다. | |
4 | plan_hash 계산이 병렬 연산자 및 구체화 노드를 지원하도록 수정되었습니다. |
apg_plan_mgmt.plan_retention_period
apg_plan_mgmt.dba_plans
보기에서 계획을 유지할 일 수를 지정하고 이후에는 자동으로 삭제됩니다. 기본적으로 계획이 마지막으로 사용된 후 32일이 경과하면 계획이 삭제됩니다(apg_plan_mgmt.dba_plans
보기의 last_used
열). 이 설정을 1 이상의 숫자로 변경할 수 있습니다.
이 파라미터의 값을 변경하려면 설정을 적용하려면 인스턴스를 재부팅해야 합니다.
기본값 | 허용된 값 | 설명 |
---|---|---|
32 | 1-2147483647 | 계획이 삭제되기 전에 마지막으로 사용된 이후 최대 일수입니다. |
자세한 내용은 dba_plans 보기에서 Aurora PostgreSQL 쿼리 계획 검사 단원을 참조하십시오.
apg_plan_mgmt.unapproved_plan_execution_threshold
최적화 프로그램에서 승인되지 않은 계획을 사용할 수 있는 비용 임계값을 지정합니다. 기본적으로 임계값은 0이므로 최적화 프로그램은 미승인 계획을 실행하지 않습니다. 이 파라미터를 매우 낮은 임계값(예: 100)으로 설정하면 사소한 계획에 대한 계획 적용 오버헤드를 피할 수 있습니다. 반응형 계획 관리 스타일을 사용하여 이 파라미터를 10000000과 같은 매우 큰 값으로 설정할 수도 있습니다. 이렇게 하면 최적화 프로그램이 계획 적용 오버헤드 없이 선택한 모든 계획을 사용할 수 있습니다. 하지만 잘못된 계획이 발견되면 다음 번에 사용되지 않도록 수동으로 '거부됨'으로 표시할 수 있습니다.
이 파라미터의 값은 주어진 계획을 실행하기 위한 예상 비용을 나타냅니다. 승인되지 않은 계획이 예상 비용보다 낮으면 최적화 프로그램은 SQL 문에 이를 사용합니다. 캡처된 계획과 해당 상태(승인됨, 승인되지 않음)를 dba_plans
보기에서 볼 수 있습니다. 자세한 내용은 dba_plans 보기에서 Aurora PostgreSQL 쿼리 계획 검사을 참조하십시오.
이 파라미터의 값을 변경하면 재부팅이 필요하지 않습니다.
기본값 | 허용된 값 | 설명 |
---|---|---|
0 | 0-2147483647 | 승인되지 않은 계획이 사용되는 아래의 예상 계획 비용입니다. |
자세한 내용은 Aurora PostgreSQL 관리형 계획 사용 단원을 참조하십시오.
apg_plan_mgmt.use_plan_baselines
최적화 프로그램이 apg_plan_mgmt.dba_plans
보기에 캡처되고 저장된 승인된 계획 중 하나를 사용해야 함을 지정합니다. 기본적으로 이 파라미터는 꺼져 있으므로(거짓) 최적화 프로그램은 추가 평가 없이 생성한 최소 비용 계획을 사용합니다. 이 파라미터를 켜면(true로 설정) 최적화 프로그램이 계획 기준선에서 명령문에 대한 쿼리 실행 계획을 선택하도록 합니다. 자세한 내용은 Aurora PostgreSQL 관리형 계획 사용 단원을 참조하십시오. 이 프로세스를 자세히 설명하는 이미지를 찾으려면 최적화 프로그램에서 실행할 계획을 선택하는 방식. 단원을 참조하세요.
사용자 지정 DB 클러스터 파라미터 그룹 또는 사용자 지정 DB 파라미터 그룹에서 이 파라미터를 설정할 수 있습니다. 이 파라미터의 값을 변경하면 재부팅이 필요하지 않습니다.
기본값 | 허용된 값 | 설명 |
---|---|---|
false | true | apg_plan_mgmt.dba_plans 에서 승인, 선호 또는 승인되지 않은 계획을 사용합니다. 이들 중 어느 것도 최적화 프로그램에 대한 모든 평가 기준을 충족하지 않으면 자체 생성된 최소 비용 계획을 사용할 수 있습니다. 자세한 내용은 최적화 프로그램에서 실행할 계획을 선택하는 방식. 단원을 참조하십시오. |
false | 옵티마이저에서 생성한 최소 비용 계획을 사용합니다. |
필요에 따라 다른 캡처된 계획의 응답 시간을 평가하고 계획 상태를 변경할 수 있습니다. 자세한 내용은 Aurora PostgreSQL 쿼리 계획 개선 단원을 참조하십시오.
auto_explain.hashes
auto_explain 출력에 sql_hash 및 plan_hash가 표시되는지 지정합니다. 이 파라미터의 값을 변경하면 재부팅이 필요하지 않습니다.
기본값 | 허용된 값 | 설명 |
---|---|---|
0(꺼짐) | 0(꺼짐) | auto_explain 결과는 sql_hash 및 plan_hash 를 표시하지 않습니다. |
1(켜짐) | auto_explain 결과는 sql_hash 및 plan_hash 를 표시합니다. |