다음을 통해 공유


실행 계획 비교

적용 대상:SQL Server

이 주제에서는 SQL Server Management Studio 계획 비교 기능을 사용하여 실제 그래픽 실행 계획 간의 유사성과 차이점을 비교하는 방법을 설명합니다. 이 기능은 SQL Server Management Studio v16부터 사용할 수 있습니다.

참고 항목

실제 실행 계획은 Transact-SQL 쿼리 또는 일괄 처리가 실행된 후에 생성됩니다. 이 때문에 실제 실행 계획에는 실제 행 수, 자원 배정 현황 메트릭 및 런타임 경고(있는 경우)와 같은 런타임 정보가 포함됩니다. 자세한 내용은 실제 실행 계획 표시를 참조하세요.

계획을 비교하는 기능은 데이터베이스 전문가가 문제 해결을 위해 수행해야 하는 것입니다.

  • 쿼리 또는 일괄 처리가 갑자기 느려지는 이유를 파악합니다.
  • 쿼리 다시 작성의 영향을 파악합니다.
  • 스키마 디자인에 도입된 특정 성능 향상 변경(예: 새 인덱스)이 실행 계획을 어떻게 효과적으로 변경했는지 관찰합니다.

계획 비교 메뉴 옵션을 사용하면 위에서 설명한 모든 이유로 서로 다른 동작을 설명하는 유사성 및 변경 내용을 보다 쉽게 식별할 수 있도록 서로 다른 두 실행 계획을 나란히 비교할 수 있습니다. 이 옵션은 다음을 비교할 수 있습니다.

  • 두 개의 이전에 저장된 실행 계획 파일(.sqlplan 확장)
  • 하나의 활성 실행 계획 및 하나의 이전에 저장된 쿼리 실행 계획
  • 쿼리 저장소의 두 선택 쿼리 계획입니다.

계획 비교는 이전 버전의 SQL Server를 포함한 모든 .sqlplan 파일에서 작동합니다. 또한 이 옵션을 사용하면 오프라인 비교가 가능하므로 SQL Server 인스턴스에 연결할 필요가 없습니다.

두 실행 계획을 비교하면 계획에서 기본적으로 동일한 작업을 수행하는 영역이 동일한 색과 패턴으로 강조 표시됩니다. 한 계획에서 색이 지정된 영역을 클릭하면 다른 계획이 해당 계획의 일치하는 노드에 가운데에 배치됩니다. 여전히 일치하지 않는 연산자와 실행 계획의 노드를 비교할 수 있지만, 이 경우 비교할 연산자를 수동으로 선택해야 합니다.

Important

계획의 모양을 변경하는 것으로 간주되는 노드만 유사성을 확인하는 데 사용됩니다. 따라서 계획의 동일한 하위 섹션에 있는 두 노드의 중간에 색이 지정되지 않은 노드가 있을 수 있습니다. 이 경우 색의 부족은 섹션이 같은지 여부를 확인하는 경우 노드가 고려되지 않았음을 의미합니다.

실행 계획을 비교하려면

  1. 파일 메뉴를 사용하여 파일 열기를 클릭하거나 계획 파일을 Management Studio 창으로 끌어 이전에 저장된 쿼리 실행 계획 파일(.sqlplan)을 엽니다. 또는 쿼리를 실행하고 실행 계획을 표시하도록 선택한 경우 결과 창에서 실행 계획 탭으로 이동합니다.

  2. 실행 계획의 빈 영역을 마우스 오른쪽 단추로 클릭하고 실행 계획 비교를 클릭합니다.

    실행 계획 비교를 마우스 오른쪽 단추로 클릭

  3. 비교하려는 두 번째 쿼리 계획 파일을 선택합니다. 계획을 비교할 수 있도록 두 번째 파일이 열립니다.

  4. 비교된 계획이 기본적으로 위쪽에 하나, 아래쪽에 하나로 새 창에서 열립니다. 기본 선택 영역은 비교된 계획에서 일반적이지만 계획 간의 차이점을 보여 주는 연산자 또는 노드의 첫 번째 항목입니다. 강조 표시된 모든 연산자와 노드는 모두 비교된 계획에 존재합니다. 위쪽 또는 왼쪽 계획에서 강조 표시된 연산자를 선택하면 아래쪽 또는 오른쪽 계획에서 해당 연산자가 자동으로 선택됩니다. 비교된 계획(아래 그림의 SELECT 노드)에서 루트 노드 연산자를 선택하면 다른 비교 계획에서 해당 루트 노드 연산자도 선택합니다.

    저장된 두 계획 파일의 계획 비교

    실행 계획의 빈 영역을 마우스 오른쪽 단추로 클릭하고 분할기 방향 토글을 선택하여 실행 계획 비교 표시를 나란히 전환할 수 있습니다.

    실행 계획에 사용할 수 있는 모든 확대/축소 및 탐색 옵션은 계획 비교 모드에서 작동합니다. 자세한 내용은 실제 실행 계획 표시를 참조하세요.

  5. 이중 속성 창도 기본 선택 영역 범위의 오른쪽에 열립니다. 비교된 연산자에 모두 있지만 차이점이 있는 속성의 경우 확인하기 쉽도록 같지 않음 기호(≠)가 앞에 옵니다.

    이중 속성 창

  6. 실행 계획 분석 비교 탐색 창이 아래쪽에 열립니다. 다음과 같은 세 가지 탭을 사용할 수 있습니다.

    1. 명령문 옵션 탭에서 기본 선택 사항은 비슷한 작업 강조 표시이며 비교된 계획에서 강조 표시된 동일한 연산자 또는 노드는 동일한 색과 선 패턴을 공유합니다. 라임 패턴을 클릭하여 비교된 계획에서 유사한 영역 사이를 이동합니다. 비슷한 세그먼트와 일치하지 않는 강조 표시 작업을 선택하여 계획의 유사성이 아닌 차이점을 강조 표시하도록 선택할 수도 있습니다.

    참고 항목

    기본적으로 데이터베이스 이름은 서로 다르지만 동일한 스키마를 공유하는 데이터베이스에 대해 캡처된 계획을 비교하도록 계획을 비교할 때 무시됩니다. 예를 들어 데이터베이스 ProdDBTestDB의 계획을 비교할 때입니다. 연산자를 비교할 때 데이터베이스 이름 무시 옵션을 사용하여 이 동작을 변경할 수 있습니다.

    실행 계획 분석 창

    1. 다중 문 탭은 올바른 문 쌍을 비교할 수 있도록 하여을 여러 문과 계획을 비교할 때 유용합니다.

      비교된 계획의 여러 문

    2. 시나리오 탭에서 비교된 계획에서 카디널리티 추정 차이점과 관련된 항목을 살펴보도록 몇 가지 가장 관련성이 높은 측면에 대한 자동화된 분석을 찾을 수 있습니다. 왼쪽 창에 나열된 각 연산자에 대해 오른쪽 창에서는 이 시나리오에 대한 자세한 정보는 여기를 클릭하세요. 링크의 시나리오와 해당 시나리오를 설명하는 가능한 이유가 나열되어 있는 시나리오에 대한 세부 정보를 보여줍니다.

      예상 행 수가 다름

    이 창이 닫힌 경우 비교된 계획의 빈 영역을 마우스 오른쪽 단추로 클릭하고, 실행 계획 비교 옵션을 선택하여 다시 엽니다.

    계획 비교 옵션

쿼리 저장소의 실행 계획을 비교하려면

  1. 쿼리 저장소에서 둘 이상의 실행 계획이 있는 쿼리를 식별합니다. 쿼리 저장소 시나리오에 대한 자세한 내용은 쿼리 저장소 사용 시나리오를 참조하세요.

  2. SHIFT 키와 마우스의 조합을 사용하여 동일한 쿼리에 대한 두 가지 계획을 선택합니다.

    쿼리 저장소에서 두 계획 선택

  3. 별도의 창에서 선택 쿼리에 대한 계획 비교 버튼을 사용하여 계획 비교를 시작합니다. 그런 다음 실행 계획을 비교하려면의 4~6단계를 적용할 수 있습니다.

    쿼리 저장소에서 실행 계획 비교