Aurora PostgreSQL 실행 계획 캡처
Aurora PostgreSQL 쿼리 계획 관리에서는 쿼리 실행 계획을 캡처하기 위한 두 가지 모드, 자동 또는 수동을 제공합니다. apg_plan_mgmt.capture_plans_baselines
의 값을 automatic
또는 manual
로 설정하여 모드를 선택합니다. 수동 계획 캡처를 사용해 특정 SQL 문에 대한 실행 계획을 캡처할 수 있습니다. 또는 자동 계획 캡처를 사용하여 애플리케이션이 실행될 때 두 번 이상 실행되는 모든 (또는 가장 느린) 계획을 캡처할 수 있습니다.
계획을 캡처하면 최적화 프로그램이 관리형 설명문에 대해 캡처된 첫 번째 계획의 상태를 approved
로 설정합니다. 최적화 프로그램은 관리형 설명문에 대해 캡처된 추가 계획의 상태를 항상 unapproved
로 설정합니다. 그러나 두 가지 이상의 계획이 approved
상태로 저장되는 경우가 가끔 있을 수 있습니다. 이런 일은 설명문에 대해 여러 계획이 병렬적으로 생성될 때와 설명문의 첫 번째 계획이 커밋되기 전에 발생할 수 있습니다.
dba_plans
보기에 캡처 및 저장할 수 있는 최대 계획 수를 제어하려면 DB 인스턴스 수준의 파라미터 그룹에서 apg_plan_mgmt.max_plans
파라미터를 설정합니다. apg_plan_mgmt.max_plans
파라미터를 변경하는 경우 새 값을 적용하려면 DB 인스턴스를 재부팅해야 합니다. 자세한 내용은 apg_plan_mgmt.max_plans 파라미터를 참조하세요.
특정 SQL 문에 대해 계획을 수동으로 캡처
관리해야 할 SQL 문 세트를 알고 있는 경우 이러한 설명문을 SQL 스크립트 파일에 추가한 후 계획을 수동으로 캡처합니다. 다음은 SQL 문 세트에 대해 쿼리 계획을 수동으로 캡처하는 방법을 보여주는 psql 예제입니다.
psql>
SET apg_plan_mgmt.capture_plan_baselines = manual;psql>
\i my-statements.sqlpsql>
SET apg_plan_mgmt.capture_plan_baselines = off;
각 SQL 문에 대한 계획을 캡처하면 최적화 프로그램이 새 행을 apg_plan_mgmt.dba_plans
보기에 추가합니다.
SQL 스크립트 파일에서 EXPLAIN 또는 EXPLAIN EXECUTE 문을 사용하는 것이 좋습니다. 관심이 있는 계획을 모두 캡처하려면 파라미터 값에 충분한 변형을 포함해야 합니다.
최적화 프로그램의 최소 비용 계획보다 더 나은 계획을 알고 있으면 최적화 프로그램에서 더 나은 계획을 사용하도록 강제할 수 있습니다. 이를 위해서는 최적화 프로그램 힌트를 하나 이상 지정해야 합니다. 자세한 내용은 pg_hint_plan을 사용하여 계획 수정 섹션을 참조하세요. unapproved
및 approved
계획의 성능을 비교하고 이러한 계획을 승인, 거부 또는 삭제하려면 계획 성능 평가 단원을 참조하십시오.
계획 자동 캡처
다음과 같은 상황에서는 자동 계획 캡처를 사용합니다.
-
관리할 특정 SQL 문을 모르는 경우
-
관리할 SQL 문이 수백 개 또는 수천 개인 경우
-
애플리케이션에서 클라이언트 API를 사용하는 경우 예를 들면, JDBC는 psql로 표현할 수 없는 이름이 지정되지 않은 준비된 명령문이나 대량 모드 명령문을 사용합니다.
계획을 자동으로 캡처하려면
-
DB 인스턴스 수준의 파라미터 그룹에서
apg_plan_mgmt.capture_plan_baselines
를automatic
으로 설정하여 자동 계획 캡처를 켭니다. 자세한 내용은 Amazon Aurora에서 DB 파라미터 그룹의 파라미터 수정 섹션을 참조하세요. -
애플리케이션이 실행되면 최적화 프로그램이 두 번 이상 실행되는 각 SQL 문에 대해 계획을 캡처합니다.
애플리케이션이 기본 쿼리 계획 관리 파라미터 설정으로 실행되면 최적화 프로그램이 두 번 이상 실행되는 각 SQL 문에 대해 계획을 캡처합니다. 기본값 사용 중 모든 계획을 캡처하는 작업은 실행 시간 오버헤드가 거의 발생하지 않으며 프로덕션 상태에서 활성화할 수 있습니다.
자동 계획 캡처를 끄려면
-
DB 인스턴스 수준의 파라미터 그룹에서
apg_plan_mgmt.capture_plan_baselines
파라미터를off
로 설정합니다.
미승인 계획의 성능을 측정하고 이러한 계획을 승인, 거부 또는 삭제하려면 계획 성능 평가 단원을 참조하세요.