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

apg_plan_mgmt.dba_plans 보기에서 계획 검토

쿼리 계획 관리는 apg_plan_mgmt.dba_plans라고 하는 데이터베이스 관리자(DBA)를 위한 새 SQL 보기를 제공합니다. DB 인스턴스의 각 데이터베이스에는 고유한 apg_plan_mgmt.dba_plans 보기가 있습니다.

이 보기에는 모든 관리형 설명문에 대한 계획 기록이 포함되어 있습니다. 각 관리형 계획은 SQL 해시 값과 계획 해시 값의 조합으로 식별됩니다. 이러한 식별자를 사용하면 Amazon RDS 성능 개선 도우미와 같은 도구를 사용하여 개별 계획 성능을 추적할 수 있습니다. 성능 개선 도우미에 대한 자세한 내용은 Amazon RDS 성능 개선 도우미 사용 단원을 참조하십시오.

참고

apg_plan_mgmt.dba_plans 보기에 대한 액세스는 apg_plan_mgmt 역할을 보유한 사용자로 제한됩니다.

관리형 계획 나열

관리형 계획을 나열하려면 apg_plan_mgmt.dba_plans 보기에서 SELECT 문을 사용합니다. 다음 예제는 status(승인 및 미승인 계획을 나타냄)와 같은 dba_plans 보기의 일부 열을 보여줍니다.

SELECT sql_hash, plan_hash, status, enabled, stmt_name FROM apg_plan_mgmt.dba_plans; sql_hash | plan_hash | status | enabled | stmt_name ------------+-----------+------------+---------+------------ 1984047223 | 512153379 | approved | t | rangequery 1984047223 | 512284451 | unapproved | t | rangequery (2 rows)

apg_plan_mgmt.dba_plans 보기에 대한 참조

apg_plan_mgmt.dba_plans 보기의 계획 정보 열에는 다음이 포함됩니다.

dba_plans 열 설명
cardinality_error

예상 카디널리티와 실제 카디널리티 간의 오차를 측정합니다. 카디널리티는 계획에서 처리할 테이블 행 개수입니다. 카디널리티 오차가 크면 계획이 최적 상태가 아닐 가능성이 높습니다. 이 열은 apg_plan_mgmt.evolve_plan_baselines 함수에 의해 작성됩니다.

compatibility_level

Aurora PostgreSQL 최적화 프로그램의 기능 수준입니다.

created_by 계획을 생성한 인증된 사용자(session_user)입니다.
enabled

계획의 활성화/비활성화 여부를 나타내는 지표입니다. 모든 계획은 기본적으로 활성화되어 있습니다. 계획을 비활성화하여 최적화 프로그램에서 사용되지 않도록 할 수 있습니다. 이 값을 수정하려면 apg_plan_mgmt.set_plan_enabled 함수를 사용합니다.

environment_variables

최적화 프로그램이 계획이 캡처될 때 재정의한 PostgreSQL Grand Unified Configuration(GUC) 파라미터와 값입니다.

estimated_startup_cost 최적화 프로그램애서 테이블의 행을 전송하기 전 최적화 프로그램 설정 예상 비용입니다.
estimated_total_cost 최종 테이블 행을 전송하는 데 드는 최적화 프로그램 예상 비용입니다.
execution_time_benefit_ms 계획 활성화 시 실행 시간 편익(밀리초)입니다. 이 열은 apg_plan_mgmt.evolve_plan_baselines 함수에 의해 작성됩니다.
execution_time_ms 계획이 실행될 예상 시간(밀리초)입니다. 이 열은 apg_plan_mgmt.evolve_plan_baselines 함수에 의해 작성됩니다.
has_side_effects SQL 문이 데이터 조작 언어(DML) 문이거나 VOLATILE 함수를 포함하는 SELECT 문임을 나타내는 값입니다.
last_used 이 값은 계획이 실행될 때마다 또는 계획이 쿼리 최적화 프로그램의 최소 비용 계획일 경우 현재 날짜로 업데이트됩니다. 이 값은 공유 메모리에 저장되고 정기적으로 디스크로 플러시됩니다. 최신 값을 가져오려면 last_used 값을 읽는 대신 apg_plan_mgmt.plan_last_used(sql_hash, plan_hash) 함수를 호출하여 공유 메모리에서 날짜를 읽습니다. 자세한 내용은 apg_plan_mgmt.plan_retention_period 파라미터를 참조하십시오.
last_validated apg_plan_mgmt.validate_plans 함수 또는 apg_plan_mgmt.evolve_plan_baselines 함수로 계획을 다시 생성할 수 있음이 확인된 최근 날짜 및 시간입니다.
last_verified 계획이 apg_plan_mgmt.evolve_plan_baselines 함수에 의해 지정된 파라미터에 대한 최적 수행 계획인 것으로 확인된 최근 날짜 및 시간입니다.
origin

apg_plan_mgmt.capture_plan_baselines 파라미터를 사용하여 계획을 캡처한 방법입니다. 유효 값에는 다음이 포함됩니다.

M – 수동 계획 캡처 기능을 사용하여 계획을 캡처했습니다.

A – 자동 계획 캡처 기능을 사용하여 계획을 캡처했습니다.

param_list

준비된 설명문인 경우 문으로 전달된 파라미터 값입니다.

plan_created 계획이 생성된 날짜 및 시간입니다.
plan_hash 계획 식별자입니다. plan_hashsql_hash의 조합은 특정 계획을 고유하게 식별합니다.
plan_outline 실제 실행 계획을 다시 생성하는 데 사용되고 데이터베이스에 독립적인 계획을 표현합니다. EXPLAIN 출력에 나타나는 연산자에 해당하는 트리의 연산자입니다.
planning_time_ms

플래너를 실행할 실제 시간(밀리초)입니다. 이 열은 apg_plan_mgmt.evolve_plan_baselines 함수에 의해 작성됩니다.

queryId pg_stat_statements 확장을 통해 계산된 설명문 해시입니다. 이 식별자는 객체 식별자(OID)에 종속되므로 안정형 또는 데이터베이스 독립형 식별자가 아닙니다.
sql_hash 정규화된(리터럴이 제거됨), SQL 문 텍스트의 해시 값입니다.
sql_text SQL 문의 전체 텍스트입니다.
status

최적화 프로그램에서 계획을 사용하는 방법을 결정하는 계획의 상태입니다. 유효 값에는 다음이 포함됩니다. 대/소문자를 구분하지 않습니다.

  • approved – 최적화 프로그램에서 실행하기로 선택할 수 있는 사용 가능한 계획입니다. 최적화 프로그램은 관리형 설명문의 승인된 계획(기준) 세트에서 최소 비용 계획을 실행합니다. 계획을 승인됨 상태로 재설정하려면 apg_plan_mgmt.evolve_plan_baselines 함수를 사용합니다.

  • unapproved – 사용할 수 있는지 확인되지 않은 캡처된 계획입니다. 자세한 내용은 계획 성능 평가 단원을 참조하십시오.

  • rejected – 최적화 프로그램에서 사용할 수 없는 계획입니다. 자세한 내용은 느린 계획 거부 또는 비활성화 단원을 참조하십시오.

  • preferred – 결정한 계획이 관리형 설명문에 사용할 기본 계획입니다.

    최적화 프로그램의 최소 비용 계획이 승인된 또는 기본 설정된 계획이 아닌 경우 계획 시행 오버헤드를 줄일 수 있습니다. 이를 위해 승인된 계획의 하위 집합을 preferred로 설정하십시오. 최적화 프로그램의 최소 비용이 approved 계획이 아니면 preferred 계획이 approved 계획에 앞서 선택됩니다.

    계획을 preferred로 재설정하려면 apg_plan_mgmt.set_plan_status 함수를 사용합니다.

stmt_name PREPARE 문 안에 있는 SQL 문의 이름입니다. 이름이 지정되지 않은 준비된 설명문의 경우 이 값이 빈 문자열입니다. 준비되지 않은 설명문의 경우 이 값이 NULL입니다.
total_time_benefit_ms

이 계획 활성화 시 총 시간 편익(밀리초)입니다. 이 값은 계획 시간 및 실행 시간을 모두 고려합니다.

이 값이 음수이면 이 계획을 활성화하는 것이 불리합니다. 이 열은 apg_plan_mgmt.evolve_plan_baselines 함수에 의해 작성됩니다.