Aurora PostgreSQL 쿼리 계획 관리 업데이트 - Amazon Aurora

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Aurora PostgreSQL 쿼리 계획 관리 업데이트

확장은 AWS apg_plan_mgmt Aurora PostgreSQL DB 클러스터에 쿼리 계획 관리 기능을 제공합니다. 이를 통해 SQL 애플리케이션의 옵티마이저에서 생성된 쿼리 실행 계획을 관리하여 안정성을 높이고 회귀를 방지할 수 있습니다. 자세한 내용은 Amazon Aurora 사용 설명서의 Aurora Postgre에 대한 쿼리 실행 계획 관리를SQL 참조하세요.

PostgreSQL 16 버전

Aurora PostgreSQL 16.3용 apg_plan_mgmt 버전 2.7

Aurora PostgreSQL 16.3 버전 2.7의 apg_plan_mgmt 확장에 대한 개선 사항은 다음과 같습니다.

새로운 기능
  • 더 이상 를 업데이트할 필요가 없습니다plan_hash_version. 데이터베이스 엔진을 업그레이드한 후 에서 새 기능을 QPM 자동으로 활성화합니다. 새 기능을 사용할 수 있으려면 조치를 취할 필요가 없습니다.

추가 개선 사항 및 기능 향상
  • 파티션된 테이블이 64개 이상 포함된 QPM 계획의 적용 문제를 수정했습니다.

  • 추가 연산자를 포함하는 QPM 계획의 적용 문제를 수정했습니다.

  • update_plan_hash 작업이 포함된 QPM validate_plans 관련 문제를 해결했습니다.

Aurora PostgreSQL 16.2용 apg_plan_mgmt 버전 2.6

Aurora PostgreSQL 16.2용 버전 2.6의 apg_plan_mgmt 확장에 대한 개선 사항은 다음과 같습니다.

새로운 기능
  • QPM 는 집계 연산자가 있는 계획을 적용할 수 있습니다.

추가 개선 사항 및 기능 향상
  • 데이터베이스를 삭제해도 공유 메모리에서 캡처된 관련 계획이 제거되지 않는 문제를 해결했습니다.

  • 뷰가 포함된 계획의 적용 문제를 수정했습니다.

  • 병렬 추가 계획 적용의 개선 사항.

  • 계획 캡처와 관련된 문제를 해결했습니다.

  • 수집 노드가 포함된 계획의 적용 문제를 수정했습니다.

Aurora PostgreSQL 16.1용 apg_plan_mgmt 버전 2.6

Aurora PostgreSQL 16.1용 버전 2.6의 apg_plan_mgmt 확장에 대한 개선 사항은 다음과 같습니다.

새로운 기능
  • update_plan_hash 함수에 대한 apg_plan_mgmt.validate_plans 작업의 일부로 계획 개요가 최신 형식 버전으로 업데이트됩니다.

  • 병렬 쿼리 적용의 일부로 병렬 추가 적용에 대한 지원을 추가했습니다. 병렬 추가 노드를 올바르게 적용하려면 다음을 수행해야 합니다.

    1. apg_plan_mgmt.plan_hash_version을 5로 설정합니다.

    2. apg_plan_mgmt.validate_plans('update_plan_hash')을 호출합니다.

추가 개선 사항 및 기능 향상
  • 계획 해시 계산의 성능을 개선했습니다.

  • 반복적인 하위 계획이 포함된 계획 개요의 메모리 사용률을 개선했습니다.

  • 병렬 쿼리 적용 시 GatherMerge를 적용할 수 없는 문제를 해결했습니다.

  • 적용 계획의 예상 비용이 올바르지 않은 문제를 해결했습니다.

  • 승인된 계획 적용 시 개요에 파티셔닝된 테이블 및 하위 계획이 포함되는 문제를 해결했습니다.

PostgreSQL 15 버전

Aurora PostgreSQL 15.8용 apg_plan_mgmt 버전 2.7, 2024년 9월 30일

Aurora PostgreSQL 15.8용 버전 2.7의 apg_plan_mgmt 확장에 대한 개선 사항은 다음과 같습니다.

추가 개선 사항 및 기능 향상
  • 해시 집계를 포함하는 쿼리 계획 관리 계획의 적용 문제를 수정했습니다.

Aurora PostgreSQL 15.7용 apg_plan_mgmt 버전 2.7, 2024년 8월 8일

Aurora PostgreSQL 15.7용 버전 2.7의 apg_plan_mgmt 확장에 대한 개선 사항은 다음과 같습니다.

새로운 기능
  • 더 이상 를 업데이트할 필요가 없습니다plan_hash_version. 데이터베이스 엔진을 업그레이드한 후 에서 새 기능을 QPM 자동으로 활성화합니다. 새 기능을 사용할 수 있으려면 조치를 취할 필요가 없습니다.

추가 개선 사항 및 기능 향상
  • 파티션된 테이블이 64개 이상 포함된 QPM 계획의 적용 문제를 수정했습니다.

  • 추가 연산자를 포함하는 QPM 계획의 적용 문제를 수정했습니다.

  • update_plan_hash 작업이 포함된 QPM validate_plans 관련 문제를 해결했습니다.

Aurora PostgreSQL 15.6용 apg_plan_mgmt 버전 2.6

Aurora PostgreSQL 15.6용 버전 2.6의 apg_plan_mgmt 확장에 대한 개선 사항은 다음과 같습니다.

새로운 기능
  • QPM 는 집계 연산자가 있는 계획을 적용할 수 있습니다.

추가 개선 사항 및 기능 향상
  • 데이터베이스를 삭제해도 공유 메모리에서 캡처된 관련 계획이 제거되지 않는 문제를 해결했습니다.

  • 뷰가 포함된 계획의 적용 문제를 수정했습니다.

  • 병렬 추가 계획 적용의 개선 사항.

  • 계획 캡처와 관련된 문제를 해결했습니다.

  • 수집 노드가 포함된 계획의 적용 문제를 수정했습니다.

Aurora PostgreSQL 15.5용 apg_plan_mgmt 버전 2.6

Aurora PostgreSQL 15.5용 버전 2.6 apg_plan_mgmt 확장의 개선 사항은 다음과 같습니다.

새로운 기능
  • update_plan_hash 함수에 대한 apg_plan_mgmt.validate_plans 작업의 일부로 계획 개요가 최신 형식 버전으로 업데이트됩니다.

  • 병렬 쿼리 적용의 일부로 병렬 추가 적용에 대한 지원을 추가했습니다. 병렬 추가 노드를 올바르게 적용하려면 다음을 수행해야 합니다.

    1. apg_plan_mgmt.plan_hash_version을 5로 설정합니다.

    2. apg_plan_mgmt.validate_plans('update_plan_hash')을 호출합니다.

추가 개선 사항 및 기능 향상
  • 계획 해시 계산의 성능을 개선했습니다.

  • 반복적인 하위 계획이 포함된 계획 개요의 메모리 사용률을 개선했습니다.

  • 병렬 쿼리 적용 시 GatherMerge를 적용할 수 없는 문제를 해결했습니다.

  • 적용 계획의 예상 비용이 올바르지 않은 문제를 해결했습니다.

  • 승인된 계획 적용 시 개요에 파티셔닝된 테이블 및 하위 계획이 포함되는 문제를 해결했습니다.

Aurora PostgreSQL 15.4용 apg_plan_mgmt 버전 2.5

Aurora PostgreSQL 15.4용 버전 2.5 apg_plan_mgmt 확장의 개선 사항은 다음과 같습니다.

새로운 기능
  • QPM 는 병렬 추가 노드를 제외한 병렬 연산자를 포함하도록 쿼리 계획을 적용할 수 있습니다. 병렬 쿼리 계획을 올바르게 적용하려면 15.4 또는 14.9로 업그레이드한 후 다음을 수행해야 합니다.

    • apg_plan_mgmt.plan_hash_version을 4 이상으로 설정합니다.

    • apg_plan_mgmt.validate_plans('update_plan_hash')을 호출합니다.

    • plan_outline에 수집 노드가 있는 승인된 계획을 다시 캡처합니다.

  • QPM 는 Materialize 노드를 사용하여 쿼리 계획을 적용할 수 있습니다. 구체화 노드를 적용하려면 15.4 또는 14.9로 업그레이드한 후 다음을 수행해야 합니다.

    • apg_plan_mgmt.plan_hash_version을 4 이상으로 설정합니다.

    • apg_plan_mgmt.validate_plans('update_plan_hash')을 호출합니다.

  • 복제본에서 쿼리 계획을 캡처하려면 ALTER EXTENSION apg_plan_mgmt 를 호출하여 apg_plan_mgmt 확장을 업데이트해야 합니다UPDATE.

  • apg_plan_mgmt.plan_capture_threshold 가 쿼리 계획을 캡처하도록 허용하지 않으려면 QPM를 지정해야 합니다.

추가 개선 사항 및 기능 향상
  • plan_hash 계산 시 성능 개선.

Aurora PostgreSQL 15.3용 apg_plan_mgmt 버전 2.4

Aurora PostgreSQL 15.3용 버전 2.4의 apg_plan_mgmt 확장 기능 개선 사항은 다음과 같습니다.

새로운 기능
  • 새로운 GUC auto_explain.hashes를 도입했습니다. true(기본값: false)로 설정하면 자동 설명 결과 끝에 sql_hash 및 plan_hash가 표시됩니다.

  • 새로운 GUC apg_plan_mgmt.explain_hashes를 도입했습니다. true(기본값: false)로 설정하면 해시 true 옵션 없이도 EXPLAIN 결과에 sql_hash 및 plan_hash가 표시됩니다.

  • 새로운 GUC apg_plan_mgmt.log_plan_enforcement_result를 도입했습니다. 해당 값(기본값: 없음)에 따라 계획 적용 결과가 Postgres 로그 파일에 기록됩니다.

  • 파티셔닝된 테이블을 지원하는 새로운 계획 해시 계산 버전을 도입했습니다. apg_plan_mgmt.plan_hash_version을 3으로 설정하고 apg_plan_mgmt가 설치된 각 데이터베이스에서 apg_plan_mgmt.validate_plans('update_plan_hash')와 plans 테이블의 항목을 직접적으로 호출해야 합니다.

  • QPM 는 Memoize 노드를 사용하여 쿼리 계획을 적용할 수 있습니다.

  • apg_plan_mgmt.copy_outline 함수에 새로운 5번째 인수인 force_update_target_plan_hash를 사용할 수 있습니다. true로 설정되면 대상 sql_hash에 대해 소스 계획을 재현할 수 없더라도 대상 계획 해시가 업데이트됩니다.

추가 개선 사항 및 기능 향상
  • JDBC 준비된 문 계획 적용 관련 문제를 해결했습니다.

  • pg_stat_statements와 apg_plan_mgmt.dba_plans 간의 queryid 관련 패리티를 개선했습니다.

  • 인덱스 이름이 숫자로 끝날 때 발생하는 계획 적용 문제를 해결했습니다.

  • 이제 apg_plan_mgmt.copy_outline 함수가 environment_variables를 복사합니다.

  • apg_plan_mgmt.plan_retention_period의 최소값이 32에서 1로 변경되었습니다.

  • 이제 쿼리 계획 관리 기능이 라이터 노드에서 읽기 전용 트랜잭션의 쿼리에 대한 계획을 저장할 수 있습니다.

  • apg_plan_mgmt.evolve_plan_baselines 함수의 문제를 해결했습니다.

  • apg_plan_mgmt가 활성화된 경우 가용성 손실이 발생할 수 있는 문제를 해결했습니다.

apg_plan_mgmt 확장을 설치, 업그레이드 및 사용하는 방법을 알아보려면 Amazon Aurora 사용 설명서의 Aurora Postgre에 대한 쿼리 실행 계획 관리를SQL 참조하세요.

PostgreSQL 14 버전

Aurora PostgreSQL 14.12용 apg_plan_mgmt 버전 2.7, 2024년 8월 8일

Aurora PostgreSQL 14.12용 버전 2.7의 apg_plan_mgmt 확장 기능 개선 사항은 다음과 같습니다.

새로운 기능
  • 더 이상 를 업데이트할 필요가 없습니다plan_hash_version. 데이터베이스 엔진을 업그레이드한 후 에서 새 기능을 QPM 자동으로 활성화합니다. 새 기능을 사용할 수 있으려면 조치를 취할 필요가 없습니다.

추가 개선 사항 및 기능 향상
  • 파티션된 테이블이 64개 이상 포함된 QPM 계획의 적용 문제를 수정했습니다.

  • 추가 연산자를 포함하는 QPM 계획의 적용 문제를 수정했습니다.

  • update_plan_hash 작업이 포함된 QPM validate_plans 관련 문제를 해결했습니다.

Aurora PostgreSQL 14.11용 apg_plan_mgmt 버전 2.6

Aurora PostgreSQL 14.11용 버전 2.6의 apg_plan_mgmt 확장 기능에 대한 개선 사항은 다음과 같습니다.

새로운 기능
  • QPM 는 집계 연산자가 있는 계획을 적용할 수 있습니다.

추가 개선 사항 및 기능 향상
  • 데이터베이스를 삭제해도 공유 메모리에서 캡처된 관련 계획이 제거되지 않는 문제를 해결했습니다.

  • 뷰가 포함된 계획의 적용 문제를 수정했습니다.

  • 병렬 추가 계획 적용의 개선 사항.

  • 계획 캡처와 관련된 문제를 해결했습니다.

  • 수집 노드가 포함된 계획의 적용 문제를 수정했습니다.

Aurora PostgreSQL 14.10용 apg_plan_mgmt 버전 2.6

Aurora PostgreSQL 14.10 버전 2.6의 apg_plan_mgmt 확장 기능 개선 사항은 다음과 같습니다.

새로운 기능
  • update_plan_hash 함수에 대한 apg_plan_mgmt.validate_plans 작업의 일부로 계획 개요가 최신 형식 버전으로 업데이트됩니다.

  • 병렬 쿼리 적용의 일부로 병렬 추가 적용에 대한 지원을 추가했습니다. 병렬 추가 노드를 올바르게 적용하려면 다음을 수행해야 합니다.

    1. apg_plan_mgmt.plan_hash_version을 5로 설정합니다.

    2. apg_plan_mgmt.validate_plans('update_plan_hash')을 호출합니다.

추가 개선 사항 및 기능 향상
  • 계획 해시 계산의 성능을 개선했습니다.

  • 반복적인 하위 계획이 포함된 계획 개요의 메모리 사용률을 개선했습니다.

  • 병렬 쿼리 적용 시 GatherMerge를 적용할 수 없는 문제를 해결했습니다.

  • 적용 계획의 예상 비용이 올바르지 않은 문제를 해결했습니다.

  • 승인된 계획 적용 시 개요에 파티셔닝된 테이블 및 하위 계획이 포함되는 문제를 해결했습니다.

Aurora PostgreSQL 14.9용 apg_plan_mgmt 버전 2.5

Aurora PostgreSQL 14.9용 버전 2.5의 apg_plan_mgmt 확장 기능 개선 사항은 다음과 같습니다.

새로운 기능
  • QPM 는 병렬 추가 노드를 제외한 병렬 연산자를 포함하도록 쿼리 계획을 적용할 수 있습니다. 병렬 쿼리 계획을 올바르게 적용하려면 15.4 또는 14.9로 업그레이드한 후 다음을 수행해야 합니다.

    • apg_plan_mgmt.plan_hash_version을 4 이상으로 설정합니다.

    • apg_plan_mgmt.validate_plans('update_plan_hash')을 호출합니다.

    • plan_outline에 수집 노드가 있는 승인된 계획을 다시 캡처합니다.

  • QPM 는 Materialize 노드를 사용하여 쿼리 계획을 적용할 수 있습니다. 구체화 노드를 적용하려면 15.4 또는 14.9로 업그레이드한 후 다음을 수행해야 합니다.

    • apg_plan_mgmt.plan_hash_version을 4 이상으로 설정합니다.

    • apg_plan_mgmt.validate_plans('update_plan_hash')을 호출합니다.

  • 복제본에서 쿼리 계획을 캡처하려면 ALTER EXTENSION apg_plan_mgmt 를 호출하여 apg_plan_mgmt 확장을 업데이트해야 합니다UPDATE.

  • apg_plan_mgmt.plan_capture_threshold 가 쿼리 계획을 캡처하도록 허용하지 않으려면 QPM를 지정해야 합니다.

추가 개선 사항 및 기능 향상
  • plan_hash 계산 시 성능 개선.

Aurora PostgreSQL 14.8용 apg_plan_mgmt 버전 2.4

Aurora PostgreSQL 14.8용 버전 2.4의 apg_plan_mgmt 확장 기능 개선 사항은 다음과 같습니다.

새로운 기능
  • 새로운 GUC auto_explain.hashes를 도입했습니다. true(기본값: false)로 설정하면 자동 설명 결과 끝에 sql_hash 및 plan_hash가 표시됩니다.

  • 새로운 GUC apg_plan_mgmt.explain_hashes를 도입했습니다. true(기본값: false)로 설정하면 EXPLAIN 해시 true 옵션 없이도 결과에 sql_hash 및 plan_hash가 표시됩니다.

  • 새로운 GUC apg_plan_mgmt.log_plan_enforcement_result를 도입했습니다. 해당 값(기본값: 없음)에 따라 계획 적용 결과가 Postgres 로그 파일에 기록됩니다.

  • 파티셔닝된 테이블을 지원하는 새로운 계획 해시 계산 버전을 도입했습니다. apg_plan_mgmt.plan_hash_version을 3으로 설정하고 apg_plan_mgmt가 설치된 각 데이터베이스에서 apg_plan_mgmt.validate_plans('update_plan_hash')와 plans 테이블의 항목을 직접적으로 호출해야 합니다.

  • QPM 는 Memoize 노드를 사용하여 쿼리 계획을 적용할 수 있습니다.

  • apg_plan_mgmt.copy_outline 함수에 새로운 5번째 인수인 force_update_target_plan_hash를 사용할 수 있습니다. true로 설정되면 대상 sql_hash에 대해 소스 계획을 재현할 수 없더라도 대상 계획 해시가 업데이트됩니다.

추가 개선 사항 및 기능 향상
  • JDBC 준비된 문 계획 적용 관련 문제를 해결했습니다.

  • pg_stat_statements와 apg_plan_mgmt.dba_plans 간의 queryid 관련 패리티를 개선했습니다.

  • 인덱스 이름이 숫자로 끝날 때 발생하는 계획 적용 문제를 해결했습니다.

  • 이제 apg_plan_mgmt.copy_outline 함수가 environment_variables를 복사합니다.

  • apg_plan_mgmt.plan_retention_period의 최소값이 32에서 1로 변경되었습니다.

  • 이제 쿼리 계획 관리 기능이 라이터 노드에서 읽기 전용 트랜잭션의 쿼리에 대한 계획을 저장할 수 있습니다.

  • apg_plan_mgmt.evolve_plan_baselines 함수의 문제를 해결했습니다.

  • apg_plan_mgmt가 활성화된 경우 가용성 손실이 발생할 수 있는 문제를 해결했습니다.

apg_plan_mgmt 확장을 설치, 업그레이드 및 사용하는 방법을 알아보려면 Amazon Aurora 사용 설명서의 Aurora Postgre에 대한 쿼리 실행 계획 관리를SQL 참조하세요.

PostgreSQL 13 버전

Aurora PostgreSQL 13.15용 apg_plan_mgmt 버전 2.7, 2024년 8월 8일

Aurora PostgreSQL 13.15 버전 2.7의 apg_plan_mgmt 확장에 대한 개선 사항은 다음과 같습니다.

새로운 기능
  • 더 이상 를 업데이트할 필요가 없습니다plan_hash_version. 데이터베이스 엔진을 업그레이드한 후 에서 새 기능을 QPM 자동으로 활성화합니다. 새 기능을 사용할 수 있으려면 조치를 취할 필요가 없습니다.

추가 개선 사항 및 기능 향상
  • 파티션된 테이블이 64개 이상 포함된 QPM 계획의 적용 문제를 수정했습니다.

  • 추가 연산자를 포함하는 QPM 계획의 적용 문제를 수정했습니다.

  • update_plan_hash 작업이 포함된 QPM validate_plans 관련 문제를 해결했습니다.

Aurora PostgreSQL 13.14용 apg_plan_mgmt 버전 2.6

Aurora PostgreSQL 13.14 버전 2.6의 apg_plan_mgmt 확장에 대한 개선 사항은 다음과 같습니다.

새로운 기능
  • QPM 는 집계 연산자를 포함하는 계획을 적용할 수 있습니다.

추가 개선 사항 및 기능 향상
  • 데이터베이스를 삭제해도 공유 메모리에서 캡처된 관련 계획이 제거되지 않는 문제를 해결했습니다.

  • 뷰가 포함된 계획의 적용 문제를 수정했습니다.

  • 병렬 추가 계획 적용의 개선 사항.

  • 계획 캡처와 관련된 문제를 해결했습니다.

  • 수집 노드가 포함된 계획의 적용 문제를 수정했습니다.

Aurora PostgreSQL 13.13용 apg_plan_mgmt 버전 2.6

Aurora PostgreSQL 13.13용 버전 2.6의 apg_plan_mgmt 확장에 대한 개선 사항은 다음과 같습니다.

새로운 기능
  • update_plan_hash 함수에 대한 apg_plan_mgmt.validate_plans 작업의 일부로 계획 개요가 최신 형식 버전으로 업데이트됩니다.

  • 병렬 쿼리 적용의 일부로 병렬 추가 적용에 대한 지원을 추가했습니다. 병렬 추가 노드를 올바르게 적용하려면 다음을 수행해야 합니다.

    1. apg_plan_mgmt.plan_hash_version을 5로 설정합니다.

    2. apg_plan_mgmt.validate_plans('update_plan_hash')을 호출합니다.

추가 개선 사항 및 기능 향상
  • 계획 해시 계산의 성능을 개선했습니다.

  • 반복적인 하위 계획이 포함된 계획 개요의 메모리 사용률을 개선했습니다.

  • 병렬 쿼리 적용 시 GatherMerge를 적용할 수 없는 문제를 해결했습니다.

  • 적용 계획의 예상 비용이 올바르지 않은 문제를 해결했습니다.

  • 승인된 계획 적용 시 개요에 파티셔닝된 테이블 및 하위 계획이 포함되는 문제를 해결했습니다.

Aurora PostgreSQL 13.12용 apg_plan_mgmt 버전 2.5

Aurora PostgreSQL 13.12용 버전 2.5의 apg_plan_mgmt 확장 기능에 대한 개선 사항은 다음과 같습니다.

새로운 기능
  • QPM 는 병렬 추가 노드를 제외한 병렬 연산자를 포함하도록 쿼리 계획을 적용할 수 있습니다. 병렬 쿼리 계획을 올바르게 적용하려면 15.4 또는 14.9로 업그레이드한 후 다음을 수행해야 합니다.

    • apg_plan_mgmt.plan_hash_version을 4 이상으로 설정합니다.

    • apg_plan_mgmt.validate_plans('update_plan_hash')을 호출합니다.

    • plan_outline에 수집 노드가 있는 승인된 계획을 다시 캡처합니다.

  • 복제본에서 쿼리 계획을 캡처하려면 ALTER EXTENSION apg_plan_mgmt를 호출하여 apg_plan_mgmt 확장을 업데이트해야 합니다UPDATE.

  • apg_plan_mgmt.plan_capture_threshold 가 쿼리 계획을 캡처하도록 허용하지 않으려면 QPM를 지정해야 합니다.

Aurora PostgreSQL 13.11용 apg_plan_mgmt 버전 2.4

Aurora PostgreSQL 13.11용 버전 2.4의 apg_plan_mgmt 확장 기능에 대한 개선 사항은 다음과 같습니다.

새로운 기능
  • 새로운 GUC auto_explain.hashes를 도입했습니다. true(기본값: false)로 설정하면 자동 설명 결과 끝에 sql_hash 및 plan_hash가 표시됩니다.

  • 새로운 GUC apg_plan_mgmt.explain_hashes를 도입했습니다. true(기본값: false)로 설정하면 EXPLAIN 해시 true 옵션 없이도 결과에 sql_hash 및 plan_hash가 표시됩니다.

  • 새로운 GUC apg_plan_mgmt.log_plan_enforcement_result를 도입했습니다. 해당 값(기본값: 없음)에 따라 계획 적용 결과가 Postgres 로그 파일에 기록됩니다.

  • 파티셔닝된 테이블을 지원하는 새로운 계획 해시 계산 버전을 도입했습니다. apg_plan_mgmt.plan_hash_version을 3으로 설정하고 apg_plan_mgmt가 설치된 각 데이터베이스에서 apg_plan_mgmt.validate_plans('update_plan_hash')와 plans 테이블의 항목을 직접적으로 호출해야 합니다.

  • apg_plan_mgmt.copy_outline 함수에 새로운 5번째 인수인 force_update_target_plan_hash를 사용할 수 있습니다. true로 설정되면 대상 sql_hash에 대해 소스 계획을 재현할 수 없더라도 대상 계획 해시가 업데이트됩니다.

추가 개선 사항 및 기능 향상
  • JDBC 준비된 문 계획 적용 관련 문제를 해결했습니다.

  • 인덱스 이름이 숫자로 끝날 때 발생하는 계획 적용 문제를 해결했습니다.

  • 이제 apg_plan_mgmt.copy_outline 함수가 environment_variables를 복사합니다.

  • apg_plan_mgmt.plan_retention_period의 최소값이 32에서 1로 변경되었습니다.

  • 이제 쿼리 계획 관리 기능이 라이터 노드에서 읽기 전용 트랜잭션의 쿼리에 대한 계획을 저장할 수 있습니다.

  • apg_plan_mgmt.evolve_plan_baselines 함수의 문제를 해결했습니다.

  • apg_plan_mgmt가 활성화된 경우 가용성 손실이 발생할 수 있는 문제를 해결했습니다.

apg_plan_mgmt 확장을 설치, 업그레이드 및 사용하는 방법을 알아보려면 Amazon Aurora 사용 설명서의 Aurora Postgre에 대한 쿼리 실행 계획 관리를SQL 참조하세요.

PostgreSQL 12 버전

Aurora PostgreSQL 12.19용 apg_plan_mgmt 버전 2.7, 2024년 8월 8일

Aurora PostgreSQL 12.19용 버전 2.7의 apg_plan_mgmt 확장 기능 개선 사항은 다음과 같습니다.

새로운 기능
  • 더 이상 를 업데이트할 필요가 없습니다plan_hash_version. 데이터베이스 엔진을 업그레이드한 후 에서 새 기능을 QPM 자동으로 활성화합니다. 새 기능을 사용할 수 있으려면 조치를 취할 필요가 없습니다.

추가 개선 사항 및 기능 향상
  • 파티션된 테이블이 64개 이상 포함된 QPM 계획의 적용 문제를 수정했습니다.

  • 추가 연산자를 포함하는 QPM 계획의 적용 문제를 수정했습니다.

  • update_plan_hash 작업이 포함된 QPM validate_plans 관련 문제를 해결했습니다.

Aurora PostgreSQL 12.18용 apg_plan_mgmt 버전 2.6

Aurora PostgreSQL 12.18 버전 2.6의 apg_plan_mgmt 확장에 대한 개선 사항은 다음과 같습니다.

추가 개선 사항 및 기능 향상
  • 계획 캡처와 관련된 문제를 해결했습니다.

Aurora PostgreSQL 12.17용 apg_plan_mgmt 버전 2.6

Aurora PostgreSQL 12.17용 버전 2.6의 apg_plan_mgmt 확장에 대한 개선 사항은 다음과 같습니다.

새로운 기능
  • update_plan_hash 함수에 대한 apg_plan_mgmt.validate_plans 작업의 일부로 계획 개요가 최신 형식 버전으로 업데이트됩니다.

Aurora PostgreSQL 12.16용 apg_plan_mgmt 버전 2.5

Aurora PostgreSQL 12.16용 버전 2.5의 apg_plan_mgmt 확장 기능 개선 사항은 다음과 같습니다.

새로운 기능
  • 복제본에서 쿼리 계획을 캡처하려면 ALTER EXTENSION apg_plan_mgmt를 호출하여 apg_plan_mgmt 확장을 업데이트해야 합니다UPDATE.

  • apg_plan_mgmt.plan_capture_threshold 가 쿼리 계획을 캡처하도록 허용하지 않으려면 QPM를 지정해야 합니다.

Aurora PostgreSQL apg_plan_mgmt 확장의 버전 2.3

apg_plan_mgmt 확장 버전 2.3의 개선 사항은 다음과 같습니다.

새로운 확장 기능
  • 새로운 apg_plan_mgmt.copy_outline 함수를 지원합니다. 이 함수를 사용하면 계획 해시와 계획 개요를 한 SQL해시에서 다른 해시로 복사할 수 있습니다. 매번 인라인 힌트 문을 사용하지 않고 힌트를 사용하는 계획을 다른 유사한 문에 복사하려는 경우 이 함수를 사용합니다. 쿼리 업데이트로 인해 잘못된 계획이 생성되는 경우 이 함수는 오류를 발생시키고 업데이트를 롤백합니다. 자세한 내용은 Amazon Aurora 사용 설명서의 Aurora PostgreSQL 쿼리 계획 관리에 대한 함수 참조를 참조하세요.

확장 개선 사항
  • 이제 쿼리 계획 관리 기능이 프로시저 및 DO 블록 내에 있는 쿼리에 대한 계획을 저장합니다. 버전 2.3 이전의 apg_plan_mgmt 버전에서는 이것이 제한되었습니다.

apg_plan_mgmt 확장을 설치, 업그레이드 및 사용하는 방법을 알아보려면 Amazon Aurora 사용 설명서의 Aurora Postgre에 대한 쿼리 실행 계획 관리를SQL 참조하세요.

Aurora PostgreSQL apg_plan_mgmt 확장의 버전 2.1

Aurora PostgreSQL 11.20용 버전 2.1 apg_plan_mgmt 확장의 개선 사항에는 다음이 포함됩니다.

Aurora PostgreSQL 11.20의 새로운 확장 기능
  • 새로운 GUC apg_plan_mgmt.log_plan_enforcement_result를 도입했습니다. 해당 값(기본값: 없음)에 따라 계획 적용 결과가 Postgres 로그 파일에 기록됩니다.

Aurora PostgreSQL 11.20의 확장 개선 사항
  • JDBC 준비된 문 계획 적용 관련 문제를 해결했습니다.

apg_plan_mgmt 확장을 설치, 업그레이드 및 사용하는 방법을 알아보려면 Amazon Aurora 사용 설명서의 Aurora Postgre에 대한 쿼리 실행 계획 관리를SQL 참조하세요.

Aurora PostgreSQL apg_plan_mgmt 확장의 버전 2.0

버전 2.0의 apg_plan_mgmt 확장 변경 사항은 다음과 같습니다.

새로운 확장 기능
  1. 이제 파라미터가 있는지 여부에 관계없이 SQL 함수 내의 모든 쿼리를 관리할 수 있습니다.

  2. 이제 파라미터 유무에 관계없이 PL/pgSQL 함수 내의 모든 쿼리를 관리할 수 있습니다.

  3. 이제 파라미터가 있는지 여부에 관계없이 일반 계획에서 쿼리를 관리할 수 있습니다. 일반 플랜과 사용자 지정 플랜에 대한 자세한 내용은 PostgreSQL 설명서PREPARE 문을 참조하세요.

  4. 이제 쿼리 계획 관리를 사용하여 쿼리 계획에서 특정 유형의 집계 방법을 사용하도록 할 수 있습니다.

확장 개선 사항
  1. 이제 max_worker_processes 파라미터 설정에 최대 8KB를 곱한 크기로 계획을 저장할 수 있습니다. 이전에는 최대 계획 크기가 8KB였습니다.

  2. 의 문과 같이 이름이 지정되지 않은 준비된 문에 대한 버그를 수정했습니다JDBC.

  3. 이전에는 에 로드되지 않았을 CREATE EXTENSION apg_plan_mgmt 때 를 시도했을 때 shared_preload_librariesPostgreSQL 백엔드 연결이 끊겼습니다. 이제 오류 메시지가 표시되고 연결이 끊어지지 않습니다.

  4. cardinality_error 에서 의 기본값apg_plan_mgmt.plans table은 NULL이지만 apg_plan_mgmt.evolve_plan_baselines 함수 중에 -1로 설정할 수 있습니다. NULL 이제 가 일관되게 사용됩니다.

  5. 이제 임시 테이블을 참조하는 쿼리에 대한 계획이 저장됩니다.

  6. 기본 최대 계획 수는 1000에서 10000으로 증가합니다.

  7. pgss 파라미터 대신 자동 계획 캡처 모드를 사용해야 하므로 해당 파라미터는 더 이상 사용되지 않습니다.

    • apg_plan_mgmt.pgss_min_calls

    • apg_plan_mgmt.pgss_min_mean_time_ms

    • apg_plan_mgmt.pgss_min_stddev_time_ms

    • apg_plan_mgmt.pgss_min_total_time_ms

Aurora PostgreSQL apg_plan_mgmt 확장의 버전 1.0.1

버전 1.0.1의 apg_plan_mgmt 확장 변경 사항은 다음과 같습니다.

새로운 확장 기능
  1. validate_plans 함수에는 action(이)라는 새 update_plan_hash 값이 있습니다. 이 작업은 정확하게 재현할 수 없는 계획에 대한 plan_hash ID를 업데이트합니다. update_plan_hash 값을 사용하면 를 다시 작성하여 계획을 수정할 수도 있습니다SQL. 그런 다음 좋은 계획을 원래 에 대한 Approved 계획으로 등록할 수 있습니다SQL. 다음은 update_plan_hash 작업을 사용하는 예제입니다.

    UPDATE apg_plan_mgmt.plans SET plan_hash = new _plan_hash, plan_outline = good_plan_outline WHERE sql_hash = bad_plan_sql_hash AND plan_hash = bad_plan_plan_hash; SELECT apg_plan_mgmt.validate_plans(bad_plan_sql_hash, bad_plan_plan_hash, 'update_plan_hash'); SELECT apg_plan_mgmt.reload();
  2. 지정된 EXPLAIN 문에 대한 SQL 문 텍스트를 생성하는 새 get_explain_stmt 함수를 사용할 수 있습니다. 이 함수에는 sql_hash, plan_hashexplain_options 파라미터가 포함되어 있습니다.

    explain_options 파라미터는 아래와 같이 유효한 EXPLAIN 옵션의 쉼표로 구분된 목록일 수 있습니다.

    analyze,verbose,buffers,hashes,format json

    파라미터explain_options가 NULL 또는 빈 문자열인 경우 get_explain_stmt 함수는 간단한 EXPLAIN 문을 생성합니다.

    워크로드 전체 또는 일부에 대해 EXPLAIN 스크립트를 생성하려면 \a, \t\o 옵션을 사용해 출력을 파일로 리디렉션하세요. 예를 들어, DESC 순서대로 정렬된 PostgreSQL pg_stat_statements 보기를 사용하여 최상위(상위 K) 문에 대한 EXPLAIN 스크립트total_time를 생성할 수 있습니다.

  3. 수집 병렬 쿼리 연산자의 정확한 위치는 비용에 따라 결정되고 시간이 지남에 따라 약간 변경될 수 있습니다. 이러한 차이로 인해 전체 계획이 무효화되는 것을 방지하기 위해 이제 쿼리 계획 관리에서는 수집 연산자가 계획 트리의 여러 곳으로 이동한다 하더라도 동일한 plan_hash를 계산합니다.

  4. pl/pgsql 함수 내에 있는 파라미터화되지 않은 설명문에 대한 지원이 추가되었습니다.

  5. 동일 클러스터에 있는 여러 데이터베이스에 apg_plan_mgmt 확장이 설치됨과 동시에 두 개 이상의 데이터베이스가 동시에 액세스되고 있으면 오버헤드가 감소합니다. 또한 이 릴리스에서는 계획이 공유 메모리에 저장되지 않게 만들었던 이 영역의 버그를 수정했습니다.

확장 개선 사항
  1. evolve_plan_baselines 함수 개선 사항.

    1. evolve_plan_baselines 함수는 이제 계획 내 모든 노드에 대해 cardinality_error 지표를 계산합니다. 이 지표를 사용하여 카디널리티 추정 오류가 많고 계획 품질이 더 의심스러운 모든 계획을 식별할 수 있습니다. cardinality_error 값이 높은 장기 실행 설명문은 쿼리 튜닝 우선 순위가 높은 후보자입니다.

    2. evolve_plan_baselines에서 생성되는 보고서에는 이제 sql_hash, plan_hashstatus 계획이 포함됩니다.

    3. 이제 evolve_plan_baselines에서 앞서 Rejected된 계획을 승인하도록 허용할 수 있습니다.

    4. 이제 speedup_factor에 대한 evolve_plan_baselines의 의미는 기준 계획에 대해 항상 상대적입니다. 예를 들어 이제 1.1이라는 값은 기준 계획보다 10퍼센트 더 빠르다는 것을 뜻합니다. 0.9라는 값은 기준 계획보다 10퍼센트 더 느리다는 것을 뜻합니다. 이러한 비교는 총 시간이 아닌 실행 시간만을 사용하여 이루어집니다.

    5. 이제 evolve_plan_baselines 함수는 새로운 방식으로 캐시를 워밍합니다. 즉 기준 계획을 실행한 후 기준 계획을 한 차례 실행하고, 이어서 후보 계획을 한 번 수행하는 방식입니다. 전에는 evolve_plan_baselines이 후보 계획을 두 번 실행했습니다. 이 접근 방식을 통해 실행 시간(특히 느린 후보자 계획에 대한 실행 시간)이 크게 늘어났습니다. 그러나 기준 계획에서 사용되지 않는 인덱스를 후보 계획에서 사용하는 경우에는 후보 계획을 두 차례 실행하는 것이 더 안정적입니다.

  2. 쿼리 계획 관리는 시스템 테이블 또는 보기, 임시 테이블 또는 쿼리 계획 관리의 자체 테이블을 참조하는 계획을 더 이상 저장하지 않습니다.

  3. 버그 수정 사항으로 저장 시 계획을 즉시 캐싱, 백엔드 종료의 원인이었던 버그 수정 등이 있습니다.