실행 계획 분석 개요 - Amazon Relational Database Service

실행 계획 분석 개요

Amazon RDS 성능 개선 도우미 대시보드를 사용하여 Oracle 및 SQL Server DB 인스턴스의 DB 로드에 가장 많이 기여하는 계획을 파악할 수 있습니다.

예를 들어 지정된 시간의 상위 SQL 문이 다음 표에 표시된 계획을 사용하고 있을 수 있습니다.

상위 SQL 계획

SELECT SUM(amount_sold) FROM sales WHERE prod_id = 10

계획 A

SELECT SUM(amount_sold) FROM sales WHERE prod_id = 521

계획 B

SELECT SUM(s_total) FROM sales WHERE region = 10

계획 A

SELECT * FROM emp WHERE emp_id = 1000

계획 C

SELECT SUM(amount_sold) FROM sales WHERE prod_id = 72

계획 A

성능 개선 도우미의 계획 기능을 사용하여 다음을 수행할 수 있습니다.

  • 상위 SQL 쿼리에서 사용하는 계획을 찾습니다.

    예를 들어 대부분의 DB 로드가 계획 A와 계획 B를 사용하는 쿼리에 의해 생성되고 계획 C를 사용하는 비율은 적음을 알 수 있습니다.

  • 동일한 쿼리에 대해 여러 계획을 비교합니다.

    앞의 예에서 3개의 쿼리는 제품 ID를 제외하고 동일합니다. 두 쿼리는 계획 A를 사용하지만 한 쿼리는 계획 B를 사용합니다. 두 계획의 차이를 보려면 성능 개선 도우미를 사용할 수 있습니다.

  • 쿼리가 새 계획으로 전환된 시기를 확인합니다.

    쿼리가 계획 A를 사용한 다음 특정 시간에 계획 B로 전환했음을 확인할 수 있습니다. 이 시점에서 데이터베이스의 변경 사항이 있었나요? 예를 들어 테이블이 비어 있는 경우 옵티마이저는 전체 테이블 스캔을 선택할 수 있습니다. 테이블에 백만 개의 행이 로드되면 옵티마이저가 인덱스 범위 스캔으로 전환할 수 있습니다.

  • 비용이 가장 많이 드는 계획의 특정 단계로 드릴다운합니다.

    예를 들어 장기 실행 쿼리의 경우 동등 조인에서 조인 조건 누락이 표시될 수 있습니다. 이 누락된 조건은 두 테이블의 모든 행을 조인하는 데카르트 조인을 강제 실행합니다.

성능 개선 도우미의 계획 캡처 기능을 사용하여 이전 태스크를 수행할 수 있습니다. 대기 이벤트 및 상위 SQL을 기준으로 쿼리를 분할할 수 있는 것처럼 계획 차원을 기준으로 쿼리를 분할할 수 있습니다.