Amazon Aurora
Aurora 사용 설명서 (API 버전 2014-10-31)

쿼리 계획 관리에 대한 모범 사례

사전 대비적이거나 사후 대응적인 계획 관리 스타일을 사용할 수 있습니다. 이러한 계획 관리 스타일은 새 계획의 사용이 승인되는 방식과 승인되는 경우를 대조합니다.

성능 역행 문제를 방지하기 위한 사전 대비형 계획 관리

사전 대비형 계획 관리를 통해 새 계획이 더 빠름을 확인한 후 해당 계획을 수동으로 승인합니다. 계획 성능 역행을 방지하려면 이 작업을 수행합니다. 사전 대비형 계획 관리를 진행하려면 다음 단계를 수행합니다.

  1. 개발 환경에서 성능 또는 시스템 처리량에 가장 큰 영향을 미치는 SQL 문을 식별합니다. 그런 다음 특정 SQL 문에 대해 계획을 수동으로 캡처계획 자동 캡처에 설명된 대로 이러한 설명문에 대해 계획을 캡처합니다.

  2. 개발 환경에서 캡처한 계획을 내보내고 프로덕션 환경으로 가져옵니다. 자세한 내용은 계획 내보내기/가져오기 단원을 참조하십시오.

  3. 프로덕션 단계에서 애플리케이션을 실행하고 승인된 관리형 계획 사용을 적용합니다. 자세한 내용은 관리형 계획 사용 단원을 참조하십시오. 애플리케이션이 실행되는 동안 최적화 프로그램에서 검색되는 새 계획도 추가합니다. 자세한 내용은 계획 자동 캡처 단원을 참조하십시오.

  4. 미승인 계획을 분석하고 잘 수행되는 계획을 승인됩니다. 자세한 내용은 계획 성능 평가 단원을 참조하십시오.

  5. 애플리케이션이 계속 실행되는 동안 최적화 프로그램은 해당되는 경우 새 계획을 사용하기 시작합니다.

성능 역행을 찾아내어 복구하기 위한 사후 대응형 계획 관리

사후 대응형 계획 관리를 사용하면 애플리케이션이 실행될 때 애플리케이션을 모니터링하여 성능 역행을 발생시키는 계획을 찾아냅니다. 역행을 찾아내면 좋지 않은 계획을 수동으로 거부하거나 수정합니다. 사후 대응형 계획 관리를 진행하려면 다음 단계를 수행합니다.

  1. 애플리케이션이 실행되는 동안 관리형 계획의 사용을 적용하고 새로 검색된 계획을 미승인 계획으로 자동 추가합니다. 자세한 내용은 관리형 계획 사용계획 자동 캡처 단원을 참조하십시오.

  2. 실행 중인 애플리케이션에서 성능 역행 문제가 있는지 모니터링합니다.

  3. 계획 역행 문제를 발견하면 계획의 상태를 rejected로 설정합니다. 최적화 프로그램은 다음 번에 SQL 문을 실행할 때 거부된 계획을 자동으로 무시하고 대신에 승인된 다른 계획을 사용합니다. 자세한 내용은 느린 계획 거부 또는 비활성화 단원을 참조하십시오.

    경우에 따라 좋지 않은 계획을 거부, 비활성화 또는 삭제하기 보다는 수정하는 것이 더 나을 수도 있습니다. pg_hint_plan 확장을 사용하여 계획 개선을 실습해 봅니다. pg_hint_plan을 통해 특별 설명을 사용하여 계획의 정상 생성 방식을 재정의하도록 최적화 프로그램에 지정합니다. 자세한 내용은 pg_hint_plan을 사용하여 계획 수정 단원을 참조하십시오.