다음을 통해 공유


메모리 내 OLTP에 테이블 또는 저장 프로시저를 이식해야 하는지 확인

SQL Server Management Studio 트랜잭션 성능 수집기는 In-Memory OLTP가 데이터베이스 애플리케이션의 성능을 향상시키는지 평가하는 데 도움이 됩니다. 트랜잭션 성능 분석 보고서에는 애플리케이션에서 메모리 내 OLTP를 사용하기 위해 얼마나 많은 작업을 수행해야 하는지도 나와 있습니다. 메모리 내 OLTP에 이식할 디스크 기반 테이블을 식별한 후 메모리 최적화 관리자를 사용하여 테이블을 마이그레이션할 수 있습니다. 마찬가지로 Native Compilation Advisor 를 사용하여 저장 프로시저를 고유하게 컴파일된 저장 프로시저에 이식할 수 있습니다.

이 항목에서는 다음과 같은 작업을 수행하는 방법에 대해 설명합니다.

  • 관리 데이터 웨어하우스 구성

  • 데이터 컬렉션 구성

  • 트랜잭션 성능 분석 보고서를 생성하여 성능이 중요한 테이블 및 저장 프로시저를 확인하십시오.

마이그레이션 방법에 대한 자세한 내용은 메모리 내 OLTP – 일반적인 작업 패턴 및 마이그레이션 고려 사항을 참조하세요.

트랜잭션 성능 수집기 및 트랜잭션 성능 분석 보고서를 사용하여 다음과 같은 작업을 수행할 수 있습니다.

  • 작업을 분석하여 메모리 내 OLTP로 성능이 향상될지를 확인합니다. 트랜잭션 성능 수집기는 작업의 성능 특징을 수집하고 평가합니다. . 그런 다음 트랜잭션 성능 분석 보고서는 메모리 내 OLTP로 변환할 경우 가장 이익이 되는 테이블과 저장 프로시저를 추천합니다.

  • 메모리 내 OLTP로 마이그레이션하는 작업을 계획하고 실행하는 데 도움이 됩니다. 디스크 기반 테이블에서 메모리 최적화 테이블로의 마이그레이션 경로는 시간이 많이 걸릴 수 있습니다. 메모리 최적화 관리자를 사용하여 테이블을 메모리 내 OLTP로 이동하기 전에 테이블에서 제거해야 하는 비호환성을 식별할 수 있습니다. 메모리 최적화 관리자는 메모리 액세스에 최적화된 테이블로의 테이블 마이그레이션이 애플리케이션에 미치는 영향을 이해하는 데도 도움이 됩니다.

    메모리 내 OLTP로 마이그레이션을 계획할 때와 일부 테이블과 저장 프로시저를 메모리 내 OLTP로 마이그레이션하려고 작업할 때마다 메모리 내 OLTP가 애플리케이션에 도움이 되는지를 확인할 수 있습니다.

    중요

    데이터베이스 시스템의 성능은 다양한 요소에 따라 달라지며 트랜잭션 성능 수집기 중 일부는 관찰하고 측정하지 못할 수도 있습니다. 따라서 트랜잭션 성능 분석 보고서는 실제 성능 향상 정도가 어떠한 예측과도 일치한다고 보증하지 않습니다.

트랜잭션 성능 수집기 및 트랜잭션 성능 분석 보고서를 생성하는 기능은 SQL Server 2019(15.x)를 설치할 때 관리 도구-기본 또는 관리 도구-고급을 선택할 때 설치됩니다.

모범 사례

다음 순서도에서는 권장 워크플로를 보여 줍니다. 노란색 노드는 선택적 절차를 나타냅니다.

AMR 워크플로

성능 카운터 로그 또는 SQL Server 활동 모니터 사용을 포함하지만 이에 국한되지 않는 모든 메서드를 사용하여 성능 기준을 설정할 수 있습니다. 성능 기준과 비교에 사용되는 정보는 다음과 같습니다.

  • SQL Server CPU 사용.

  • SQL Server 메모리 사용량.

  • SQL Server I/O 활동입니다.

  • 트랜잭션을 처리하는 동안 인스턴스의 트랜잭션 처리량

트랜잭션 성능 수집기는 15분마다 데이터를 캡처합니다. 유용한 결과를 얻으려면 적어도 1시간 동안 트랜잭션 성능 수집기를 실행하십시오. 최상의 결과를 얻으려면 기본 시나리오의 데이터를 캡처하는 데 필요한 만큼 오래 트랜잭션 성능 수집기를 실행하십시오. 반드시 데이터 수집을 완료한 후에 트랜잭션 성능 분석 보고서를 생성하십시오.

프로덕션의 SQL Server instance 실행되도록 트랜잭션 성능 수집기를 구성하고 개발(테스트) 환경의 SQL Server instance 데이터를 수집하여 최소 오버헤드를 보장합니다. 원격 SQL Server instance 관리 Data Warehouse 데이터베이스에 데이터를 저장하는 방법에 대한 자세한 내용은 원격 SQL Server 인스턴스에서 데이터 수집 구성을 참조하세요.

성능에 미치는 영향

트랜잭션 성능 수집기는 다음과 같은 두 개의 데이터 컬렉션 집합으로 구성됩니다.

  • 테이블 사용 분석

  • 저장 프로시저 분석

이 컬렉션 집합에서는 15분마다 3개의 DMV(동적 관리 뷰)에서 데이터를 수집하여 관리 데이터 웨어하우스로 작동하도록 구성된 데이터베이스로 데이터를 업로드합니다. 수집된 데이터를 업로드하면 성능에 최소의 영향을 미칩니다.

트랜잭션 성능 수집기 사용

다음 단계에서는 SQL Server 2019(15.x)의 SQL Server Management Studio 필요합니다.

중요

프로파일링 동안 스키마를 변경(데이터베이스 추가 또는 제거, 테이블 만들기 또는 삭제)하지 않습니다. 데이터를 수집하는 동안 데이터베이스 스키마를 변경하면 데이터베이스가 정확하게 보고서에 포함되지 않을 수 있습니다.

관리 데이터 웨어하우스 구성

트랜잭션 성능 수집기를 사용하도록 관리 데이터 웨어하우스를 구성해야 합니다.

(프로필)에서 데이터를 수집할 SQL Server instance 버전은 관리 Data Warehouse 구성된 SQL Server 버전과 동일하거나 이전 버전이어야 합니다.

  1. 개체 탐색기에서 관리를 확장합니다.

  2. 데이터 수집을 마우스 오른쪽 단추로 클릭하고 작업을 선택한 다음 관리 Data Warehouse 구성합니다. 관리 Data Warehouse 구성 마법사가 시작됩니다.

  3. 다음을 클릭하여 관리 Data Warehouse 작동할 데이터베이스를 선택합니다.

  4. 새로 만들기를 클릭하여 프로필 데이터를 저장할 새 데이터베이스를 만듭니다. 데이터베이스 만들기를 완료한 후 마법사에서 다음 을 클릭합니다.

  5. 마법사의 다음 단계에서 사용자와 로그인을 추가할 수 있습니다. 로그인을 MDW 인스턴스에 대한 역할 멤버 자격에 매핑할 수도 있습니다. 이 역할 멤버 자격은 로컬 인스턴스에서 데이터를 수집하는 데 필요하지 않습니다. 로컬 인스턴스에서 데이터를 수집하지 않는 경우 프로파일링할 트랜잭션을 실행할 계정에 데이터베이스 역할 멤버 자격 mdw_admin을 부여해도 됩니다. 완료하면 다음을 클릭합니다.

  6. SQL Server 에이전트 실행 중인지 확인합니다.

  7. 다음 화면에서 마침 을 클릭하여 마법사를 종료합니다.

로컬 SQL Server 인스턴스에서 데이터 수집 구성

데이터 수집을 시작하려면 SQL Server 에이전트 필요합니다. 데이터 수집기는 서버에 하나만 구성하면 됩니다.

데이터 수집기는 SQL Server 2012 이상 버전의 SQL Server 구성할 수 있습니다.

같은 인스턴스에서 관리 데이터 웨어하우스 데이터베이스로 업로드하기 위해 데이터 컬렉션을 구성하려면

  1. 개체 탐색기관리를 확장합니다.

  2. 데이터 수집을 마우스 오른쪽 단추로 클릭하고 작업을 선택한 다음 데이터 수집 구성을 선택합니다. 데이터 수집 구성 마법사가 시작됩니다.

  3. 다음을 클릭하여 프로필 데이터를 수집할 데이터베이스를 선택합니다.

  4. 해당 instance 현재 SQL Server instance 및 관리 Data Warehouse 데이터베이스를 선택합니다.

  5. 사용하도록 설정할 데이터 수집기 집합 선택 상자에서 트랜잭션 성능 컬렉션 집합을 선택합니다. 작업이 끝나면 다음을 클릭합니다.

  6. 선택 내용을 확인합니다. 뒤로를 클릭하여 설정을 수정합니다. 완료되면 마침 을 클릭합니다.

원격 SQL Server 인스턴스에서 데이터 컬렉션 구성

데이터 수집을 위해서는 데이터를 수집할 instance SQL Server 에이전트 시작해야 합니다.

데이터 수집기는 SQL Server 2012 이상 버전의 SQL Server 구성할 수 있습니다.

데이터 수집기가 트랜잭션을 프로파일하는 위치와 다른 instance 관리 Data Warehouse 데이터베이스에 데이터를 업로드하려면 올바른 자격 증명으로 설정된 SQL Server 에이전트 프록시가 필요합니다. SQL Server 에이전트 프록시를 사용하도록 설정하려면 먼저 도메인 사용 로그인을 사용하여 자격 증명을 설정해야 합니다. 도메인이 활성화된 로그인은 관리 데이터 웨어하우스 데이터베이스에 대한 mdw_admin 그룹의 멤버여야 합니다. 자격 증명을 만드는 방법에 대한 자세한 내용은 방법: 자격 증명 만들기(SQL Server Management Studio)를 참조하세요.

다른 인스턴스에서 관리 데이터 웨어하우스 데이터베이스로 업로드하기 위해 데이터 컬렉션을 구성하려면

  1. In-Memory OLTP로 마이그레이션하려는 디스크 기반 개체가 포함된 instance 개체 탐색기 관리 노드를 확장합니다.

  2. 데이터 수집을 마우스 오른쪽 단추로 클릭하고 작업을 선택한 다음 데이터 수집 구성을 선택합니다. 데이터 수집 구성 마법사가 시작됩니다.

  3. 다음을 클릭하여 프로필 데이터를 수집할 데이터베이스를 선택합니다.

  4. 관리 Data Warehouse 데이터베이스가 다른 SQL Server instance 있는지 확인합니다.

  5. 해당 instance 다른 SQL Server instance 및 관리 Data Warehouse 데이터베이스를 선택합니다.

    (프로필)에서 데이터를 수집할 SQL Server instance 버전은 관리 Data Warehouse 구성된 SQL Server 버전과 동일하거나 이전 버전이어야 합니다.

  6. 사용하도록 설정할 데이터 수집기 집합 선택 상자에서 트랜잭션 성능 컬렉션 집합을 선택합니다.

  7. 원격 업로드에 SQL Server 에이전트 프록시 사용을 선택합니다.

  8. 작업이 끝나면 다음을 클릭합니다.

  9. 프록시를 선택합니다.

    새 SQL Server 에이전트 프록시를 만들려는 경우

    1. 새로 만들기를 클릭하여 새 프록시 계정 대화 상자를 표시합니다.

    2. 새 프록시 계정 대화 상자에서 프록시 이름을 입력하고 자격 증명을 선택한 다음 필요에 따라 설명을 입력합니다. 그런 다음 보안 주체를 클릭합니다.

    3. 추가를 클릭하고 Msdb 역할을 선택합니다.

    4. 확인을 선택하고 dc_proxy클릭합니다. 그런 다음 확인을 다시 클릭합니다.

    올바른 프록시를 선택한 후 다음을 클릭합니다.

  10. 시스템 컬렉션 집합을 구성하려면 시스템 컬렉션 집합을 검사 다음을 클릭합니다.

  11. 선택 내용을 확인합니다. 뒤로를 클릭하여 설정을 수정합니다. 완료되면 Clicck 마침 입니다.

이제 인스턴스에서 데이터 컬렉션 집합이 구성되어 실행됩니다.

보고서 생성

관리 Data Warehouse 데이터베이스를 마우스 오른쪽 단추로 클릭하고 보고서, 관리 Data Warehouse, 트랜잭션 성능 분석 개요를 차례로 선택하여 트랜잭션 성능 분석보고서를 생성할 수 있습니다.

보고서는 작업 서버에서 모든 사용자 데이터베이스에 대한 정보를 수집합니다. MDW(관리 데이터 웨어하우스) 데이터베이스가 로컬 컴퓨터에 있는 경우 MDW 데이터베이스가 보고서에 나타납니다.

CPU 시간 대 경과 시간 비율이 높은 저장 프로시저는 마이그레이션 대상으로 적합합니다. 고유하게 컴파일된 저장 프로시저는 메모리 최적화 테이블을 참조만 할 수 있기 때문에 보고서에 모든 테이블 참조가 표시되므로 마이그레이션 비용이 추가될 수 있습니다.

테이블에 대한 세부 정보 보고서는 다음 세 개의 섹션으로 구성됩니다.

  • 검색 통계 섹션

    이 섹션에는 데이터베이스 테이블에 대한 검색에 대해 수집된 통계를 보여 주는 단일 테이블이 있습니다. 열은 다음과 같습니다.

    • 총 액세스의 백분율. 전체 데이터베이스의 작업과 관련되어 이 테이블에서 수행된 검색에 대한 백분율입니다. 이 백분율이 높을수록 데이터베이스의 다른 테이블과 비교하여 해당 테이블이 더 많이 사용된 것입니다.

    • 조회 통계/범위 검색 통계. 이 열은 프로파일링 동안 테이블에 대해 수행된 포인트 조회 및 범위 검색(인덱스 검색 및 테이블 검색) 수를 기록합니다. 트랜잭션당 평균이 예상치입니다.

    • Interop 게인 및 네이티브 게인. 이러한 열을 통해 테이블이 메모리 최적화 테이블로 변환된 경우 포인트 조회 또는 범위 검색으로 얻을 수 있는 성능 이점을 예상할 수 있습니다.

  • 경합 통계 섹션

    이 섹션에는 데이터베이스 테이블에 대한 경합을 보여 주는 테이블이 있습니다. 데이터베이스 래치 및 잠금에 대한 자세한 내용은 아키텍처 잠금을 참조하세요. 열은 다음과 같습니다.

    • 총 대기의 백분율. 데이터베이스 작업과 비교하여 이 데이터베이스 테이블에 대한 래치 및 잠금 대기에 대한 백분율입니다. 이 백분율이 높을수록 데이터베이스의 다른 테이블과 비교하여 해당 테이블이 더 많이 사용된 것입니다.

    • 래치 통계. 이러한 열은 이 테이블의 관련 쿼리에 대한 래치 대기 수를 기록합니다. 래치에 대한 자세한 내용은 래치를 참조하세요. 이 숫자가 클수록 테이블에 대한 래치 경합이 더 큰 것입니다.

    • 잠금 통계. 이 열 그룹은 이 테이블에 대한 페이지 잠금 획득 및 쿼리 대기 수를 기록합니다. 잠금에 대한 자세한 내용은 SQL Server 잠금 이해를 참조하세요. 대기가 많을수록 테이블에 대한 잠금 경합이 더 큰 것입니다.

  • 마이그레이션 문제 섹션

    이 섹션에는 이 데이터베이스 테이블을 메모리 최적화 테이블로 변환할 때 발생한 문제를 보여 주는 테이블이 있습니다. 문제 등급이 높을수록 테이블 변환에 문제가 많은 것입니다. 이 데이터베이스 테이블을 변환하는 세부 정보를 보려면 메모리 최적화 관리자를 사용하세요.

테이블 세부 정보 보고서에 대한 검사 및 경합 통계는 sys.dm_db_index_operational_stats(Transact-SQL)에서 수집 및 집계됩니다.

저장 프로시저에 대한 세부 정보 보고서는 다음 두 개의 섹션으로 구성됩니다.

  • 실행 통계 섹션

    이 섹션에는 저장 프로시저 실행에 대해 수집된 통계를 보여 주는 테이블이 포함됩니다. 열은 다음과 같습니다.

    • 캐시된 시간. 이 실행 계획이 캐시된 시간입니다. 저장 프로시저가 계획 캐시에서 삭제되고 다시 입력될 때 각 캐시에 대한 시간이 발생합니다.

    • 총 CPU 시간. 프로파일링 동안 저장 프로시저에서 사용한 총 CPU 시간입니다. 이 숫자가 클수록 저장 프로시저에서 CPU를 더 많이 사용한 것입니다.

    • 총 실행 시간. 프로파일링 동안 저장 프로시저에서 사용한 총 실행 시간입니다. 이 숫자와 CPU 시간 간의 차이가 클수록 저장 프로시저에서 비효율적으로 CPU를 사용하는 것입니다.

    • 누락된 총 캐시. 프로파일링 동안 저장 프로시저 실행으로 인해 발생한 캐시 누락(실제 스토리지에서 읽기) 수입니다.

    • 실행 수. 프로파일링 동안 이 저장 프로시저가 실행한 횟수입니다.

  • 테이블 참조 섹션

    이 섹션에는 이 저장 프로시저가 참조하는 테이블을 보여 주는 테이블이 있습니다. 저장 프로시저를 고유하게 컴파일된 저장 프로시저로 변환하기 전에 이러한 모든 테이블은 메모리 최적화 테이블로 변환되어야 하며 동일한 서버 및 데이터베이스에 있어야 합니다.

저장 프로시저 세부 정보 보고서에 대한 실행 통계는 sys.dm_exec_procedure_stats(Transact-SQL)에서 수집 및 집계됩니다. 참조는 sys.sql_expression_dependencies(Transact-SQL)에서 가져옵니다.

저장 프로시저를 고유하게 컴파일된 저장 프로시저로 변환하는 방법에 대한 세부 정보를 보려면 Native Compilation Advisor를 사용하세요.

참고 항목

메모리 내 OLTP로 마이그레이션