쿼리 계획 관리

이 문서에서는 PostgreSQL용 AlloyDB에서 쿼리 계획 관리를 사용하여 쿼리 계획 성능을 개선하는 방법을 설명합니다. 쿼리 계획 관리는 데이터베이스의 모든 쿼리 계획과 실행 통계를 지속적으로 추적합니다. 쿼리 및 관련 비용을 검토한 후 특정 쿼리에 일관되게 적용되는 계획을 승인할 수 있습니다. 이 접근 방식을 사용하면 비용 효율적인 쿼리 계획을 선택하여 쿼리 성능을 개선할 수 있습니다.

작동 방식

PostgreSQL에서 쿼리 최적화 도구는 예상 비용을 기반으로 각 쿼리의 실행 계획을 선택합니다. 쿼리 파라미터, 쿼리 복잡성, 테이블 크기, 사용 가능한 색인, 시스템 리소스 등 다양한 요인이 쿼리 비용에 영향을 미칩니다.

쿼리 파라미터는 쿼리가 실행될 때마다 변경될 수 있으므로 매번 쿼리 계획을 동적으로 선택하는 방식이 항상 최적의 결과를 보장하는 것은 아닙니다. 쿼리를 처리할 때 최적화 도구는 다양한 실행 계획을 평가하고 가장 비용 효율적인 계획을 선택하려고 합니다.

파라미터가 변경되면 쿼리 계획이 변경될 수 있습니다. 선택된 계획은 대개 가장 비용 효율적인 옵션이지만, 때로는 효율성이 낮은 계획이 선택되어 쿼리 성능이 저하되는 경우가 있을 수 있습니다. 쿼리 계획 관리를 사용하면 최적화 도구에서 생성된 패턴과 계획을 파악하고 각 계획을 확인하여 정보를 바탕으로 의사 결정을 내릴 수 있습니다.

쿼리 계획 관리의 두 가지 주요 구성요소는 다음과 같습니다.

쿼리 계획 저장소
데이터베이스에 쿼리 계획 관리를 사용 설정하면 계획 저장소에서 데이터베이스의 이전 계획과 실행 통계를 추적하기 시작합니다. 쿼리 계획 저장소는 쿼리 계획 성능에 관한 모니터링 가능성을 제공합니다.
계획 관리
사용 가능한 계획을 검토한 후 계획 관리 구성요소를 사용하면 특정 쿼리 템플릿에 대해 하나 이상의 계획을 승인할 수 있습니다. 쿼리 계획 관리에서는 승인된 계획을 추적하고 쿼리가 후속 실행될 때 쿼리 최적화 도구가 승인된 계획 중 하나만 사용하도록 합니다. 여러 계획이 승인된 경우 AlloyDB는 예상 비용이 가장 낮은 계획을 선택하여 실행합니다.

시작하기 전에

  • google_plan_management.enabled 데이터베이스 플래그를 on로 설정합니다. 자세한 내용은 데이터베이스 플래그 구성을 참조하세요.
  • 데이터베이스에 google_plan_management 확장 프로그램을 만듭니다. 자세한 내용은 확장 프로그램 사용 설정을 참조하세요.
  • 쿼리 계획 관리를 사용하고 쿼리 계획을 관리하려는 데이터베이스 사용자에게 google_plan_management_role 권한을 부여합니다.

    1. Google Cloud 콘솔에서 AlloyDB 클러스터 페이지로 이동합니다.

      클러스터로 이동

    2. 필수 인스턴스를 클릭합니다.

    3. AlloyDB Studio를 클릭한 다음 편집기 1 탭을 클릭합니다.

    4. 다음 쿼리를 입력합니다.

      GRANT google_plan_management_role TO DATABASE_USER;
      

      DATABASE_USER를 역할을 부여할 사용자로 바꿉니다.

    5. 실행을 클릭합니다.

추적된 쿼리 계획 보기

쿼리 계획 관리에서는 추적된 모든 쿼리 계획, 실행 시간, 기타 정보를 표시하는 쿼리 계획 보기를 제공합니다. 추적된 쿼리 계획은 최적화 도구에 의해 생성되고 계획 저장소에 저장되는 쿼리 계획입니다.

이전 추적 계획을 보려면 다음 쿼리를 실행합니다.

SELECT