메모리 내 OLTP에 테이블 또는 저장 프로시저를 이식해야 하는지 확인Determining if a Table or Stored Procedure Should Be Ported to In-Memory OLTP

이 항목은 다음에 적용됩니다.예SQL Server(2014부터)예Azure SQL Database아니요Azure SQL Data Warehouse 아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO:yesSQL Server (starting with 2014)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

SQL Server Management StudioSQL Server Management Studio 의 트랜잭션 성능 분석 보고서를 사용하면 메모리 내 OLTP로 데이터베이스 응용 프로그램의 성능이 향상될지 평가할 수 있습니다.The Transaction Performance Analysis report in SQL Server Management StudioSQL Server Management Studio helps you evaluate if In-Memory OLTP will improve your database application’s performance. 또한, 보고서는 응용 프로그램에서 메모리 내 OLTP를 사용하도록 설정하기 위해 수행해야 하는 작업의 양도 나타냅니다.The report also indicates how much work you must do to enable In-Memory OLTP in your application. 메모리 내 OLTP에 이식할 디스크 기반 테이블을 식별한 후 메모리 최적화 관리자를 사용하여 테이블을 마이그레이션할 수 있습니다.After you identify a disk-based table to port to In-Memory OLTP, you can use the Memory Optimization Advisor, to help you migrate the table. 마찬가지로 Native Compilation Advisor 를 사용하여 저장 프로시저를 고유하게 컴파일된 저장 프로시저에 이식할 수 있습니다.Similarly, the Native Compilation Advisor will help you port a stored procedure to a natively compiled stored procedure. 마이그레이션 방법에 대한 자세한 내용은 메모리 내 OLTP – 일반적인 작업 패턴 및 마이그레이션 고려 사항을 참조하세요.For information about migration methodologies, see In-Memory OLTP – Common Workload Patterns and Migration Considerations.

트랜잭션 성능 분석 보고서는 프로덕션 데이터베이스 또는 프로덕션 작업과 유사한 활성 작업이 있는 테스트 데이터베이스에 대하여 직접 실행됩니다.The Transaction Performance Analysis report is run directly against the production database, or a test database with an active workload that is similar to the production workload.

보고서 및 마이그레이션 관리자를 사용하면 다음 작업을 수행할 수 있습니다.The report and migration advisors help you accomplish the following tasks:

  • 작업을 분석하여 메모리 내 OLTP를 통해 성능 향상이 가능한 핫 스폿을 결정합니다.Analyze your workload to determine hot spots where In-Memory OLTP can potentially help to improve performance. 트랜잭션 성능 분석 보고서는 메모리 내 OLTP로 변환할 경우 가장 이익이 되는 테이블과 저장 프로시저를 추천합니다.The Transaction Performance Analysis report recommends tables and stored procedures that would benefit most from conversion to In-Memory OLTP.

  • 메모리 내 OLTP로 마이그레이션하는 작업을 계획하고 실행하는 데 도움이 됩니다.Help you plan and execute your migration to In-Memory OLTP. 디스크 기반 테이블에서 메모리 액세스에 최적화된 테이블로의 마이그레이션 경로는 시간이 많이 걸릴 수 있습니다.The migration path from a disk based table to a memory-optimized table can be time consuming. 메모리 최적화 관리자를 사용하여 테이블을 메모리 내 OLTP로 이동하기 전에 테이블에서 제거해야 하는 비호환성을 식별할 수 있습니다.The Memory-Optimization Advisor helps you identify the incompatibilities in your table that you must remove before moving the table to In-Memory OLTP. 메모리 최적화 관리자는 메모리 액세스에 최적화된 테이블로의 테이블 마이그레이션이 응용 프로그램에 미치는 영향을 이해하는 데도 도움이 됩니다.The Memory-Optimization Advisor also helps you understand the impact that the migration of a table to a memory-optimized table will have on your application.

    메모리 내 OLTP로 마이그레이션을 계획할 때와 일부 테이블과 저장 프로시저를 메모리 내 OLTP로 마이그레이션하려고 작업할 때마다 메모리 내 OLTP가 응용 프로그램에 도움이 되는지를 확인할 수 있습니다.You can see if your application would benefit from In-Memory OLTP, when you want to plan your migration to In-Memory OLTP, and whenever you work to migrate some of your tables and stored procedures to In-Memory OLTP.

    중요

    데이터베이스 시스템의 성능은 다양한 요소에 따라 달라지며 트랜잭션 성능 수집기 중 일부는 관찰하고 측정하지 못할 수도 있습니다.The performance of a database system is dependent on a variety of factors, not all of which the transaction performance collector can observe and measure. 따라서 트랜잭션 성능 분석 보고서는 실제 성능 향상 정도가 어떠한 예측과도 일치한다고 보증하지 않습니다.Therefore, the transaction performance analysis report does not guarantee actual performance gains will match its predictions, if any predictions are made.

    트랜잭션 성능 분석 보고서 및 마이그레이션 관리자는 설치 시 관리 도구-기본 또는 관리 도구-고급 SQL Server 2017SQL Server 2017을 선택하거나 SQL Server Management Studio를 다운로드할 때SSMS(SQL Server Management Studio)의 일부로 설치됩니다.The Transaction Performance Analysis report and the migration advisors are installed as part of SQL Server Management Studio (SSMS) when you select Management Tools—Basic or Management Tools—Advanced when you install SQL Server 2017SQL Server 2017, or when you Download SQL Server Management Studio.

트랜잭션 성능 분석 보고서Transaction Performance Analysis Reports

데이터베이스를 마우스 오른쪽 단추로 클릭하고 보고서 를 선택한 후 표준 보고서를 선택하고 트랜잭션 성능 분석 개요를 선택하여 개체 탐색기에 트랜잭션 성능 분석 보고서를 생성할 수 있습니다.You can generate transaction performance analysis reports in Object Explorer by right-clicking on the database, selecting Reports, then Standard Reports, and then Transaction Performance Analysis Overview. 의미 있는 분석 보고서를 생성하려면 데이터베이스에 활성 작업이 있거나 최근에 작업이 실행되어야 합니다.The database needs to have an active workload, or a recent run of a workload, in order to generate a meaningful analysis report.

테이블Tables

테이블에 대한 세부 정보 보고서는 다음 세 개의 섹션으로 구성됩니다.The details report for a table consists of three sections:

  • 검색 통계 섹션Scan Statistics Section

    이 섹션에는 데이터베이스 테이블에 대한 검색에 대해 수집된 통계를 보여 주는 단일 테이블이 있습니다.This section includes a single table that shows the statistics that were collected about scans on the database table. 열은 다음과 같습니다.The columns are:

    • 총 액세스의 백분율.Percent of total accesses. 전체 데이터베이스의 작업과 관련되어 이 테이블에서 수행된 검색에 대한 백분율입니다.The percentage of scans and seeks on this table with respect to the activity of the entire database. 이 백분율이 높을수록 데이터베이스의 다른 테이블과 비교하여 해당 테이블이 더 많이 사용된 것입니다.The higher this percentage, the more heavily used the table is compared to other tables in the database.

    • 조회 통계/범위 검색 통계.Lookup Statistics/Range Scan Statistics. 이 열은 프로파일링 동안 테이블에 대해 수행된 포인트 조회 및 범위 검색(인덱스 검색 및 테이블 검색) 수를 기록합니다.This column records the number of point lookups and range scans (index scans and table scans) conducted on the table during profiling. 트랜잭션당 평균이 예상치입니다.Average per transaction is an estimate.

  • 경합 통계 섹션Contention Statistics Section

    이 섹션에는 데이터베이스 테이블에 대한 경합을 보여 주는 테이블이 있습니다.This section includes a table that shows contention on the database table. 데이터베이스 래치 및 잠금에 대한 자세한 내용은 잠금 아키텍처를 참조하십시오.For more information regarding database latches and locks, please see Locking Architecture. 열은 다음과 같습니다.The columns are as follows:

    • 총 대기의 백분율.Percent of total waits. 데이터베이스 작업과 비교하여 이 데이터베이스 테이블에 대한 래치 및 잠금 대기에 대한 백분율입니다.The percentage of latch and lock waits on this database table compared to activity of the database. 이 백분율이 높을수록 데이터베이스의 다른 테이블과 비교하여 해당 테이블이 더 많이 사용된 것입니다.The higher this percentage, the more heavily used the table is compared to other tables in the database.

    • 래치 통계.Latch Statistics. 이러한 열은 이 테이블의 관련 쿼리에 대한 래치 대기 수를 기록합니다.These columns record the number of latch waits for queries involving for this table. 래치에 대한 자세한 내용은 래칭을 참조하십시오.For information on latches, see Latching. 이 숫자가 클수록 테이블에 대한 래치 경합이 더 큰 것입니다.The higher this number, the more latch contention on the table.

    • 잠금 통계.Lock Statistics. 이 열 그룹은 이 테이블에 대한 페이지 잠금 획득 및 쿼리 대기 수를 기록합니다.This group of columns record the number of page lock acquisitions and waits for queries for this table. 잠금에 대한 자세한 내용은 SQL Server의 잠금 이해를 참조하십시오.For more information on locks, see Understanding Locking in SQL Server. 대기가 많을수록 테이블에 대한 잠금 경합이 더 큰 것입니다.The more waits, the more lock contention on the table.

  • 마이그레이션 문제 섹션Migration Difficulties Section

    이 섹션에는 이 데이터베이스 테이블을 메모리 액세스에 최적화된 테이블로 변환할 때 발생한 문제를 보여 주는 테이블이 있습니다.This section includes a table that shows the difficulty of converting this database table to a memory-optimized table. 문제 등급이 높을수록 테이블 변환에 문제가 많은 것입니다.A higher difficulty rating indicates more difficultly to convert the table. 이 데이터베이스 테이블을 변환하는 방법에 대한 자세한 내용을 보려면 메모리 최적화 관리자를 사용하십시오.To see details to convert this database table, please use the Memory Optimization Advisor.

테이블 세부 정보 보고서에 대한 검색 및 경합 통계는 sys.dm_db_index_operational_stats(Transact-SQL)에서 수집되고 집계됩니다.Scan and contention statistics on the table details report is gathered and aggregated from sys.dm_db_index_operational_stats (Transact-SQL).

저장 프로시저Stored Procedures

CPU 시간 대 경과 시간 비율이 높은 저장 프로시저는 마이그레이션 대상으로 적합합니다.A stored procedure with high ratio of CPU time to elapsed time is a candidate for migration. 고유하게 컴파일된 저장 프로시저는 메모리 액세스에 최적화된 테이블을 참조만 할 수 있기 때문에 보고서에 모든 테이블 참조가 표시되므로 마이그레이션 비용이 추가될 수 있습니다.The report shows all table references, because natively compiled stored procedures can only reference memory-optimized tables, which can add to the migration cost.

저장 프로시저에 대한 세부 정보 보고서는 다음 두 개의 섹션으로 구성됩니다.The details report for a stored procedure consists of two sections:

  • 실행 통계 섹션Execution Statistics Section

    이 섹션에는 저장 프로시저 실행에 대해 수집된 통계를 보여 주는 테이블이 있습니다.This section includes a table that shows the statistics that were collected about the stored procedure’s executions. 열은 다음과 같습니다.The columns are as follows:

    • 캐시된 시간.Cached Time. 이 실행 계획이 캐시된 시간입니다.The time this execution plan is cached. 저장 프로시저가 계획 캐시에서 삭제되고 다시 입력될 때 각 캐시에 대한 시간이 발생합니다.If the stored procedure drops out of the plan cache and re-enters, there will be times for each cache.

    • 총 CPU 시간.Total CPU Time. 프로파일링 동안 저장 프로시저에서 사용한 총 CPU 시간입니다.The total CPU time that the stored procedure consumed during profiling. 이 숫자가 클수록 저장 프로시저에서 CPU를 더 많이 사용한 것입니다.The higher this number, the more CPU the stored procedure used.

    • 총 실행 시간.Total Execution Time. 프로파일링 동안 저장 프로시저에서 사용한 총 실행 시간입니다.The total amount of execution time the stored procedure used during profiling. 이 숫자와 CPU 시간 간의 차이가 클수록 저장 프로시저에서 비효율적으로 CPU를 사용하는 것입니다.The higher the difference between this number and the CPU time is, the less efficiently the stored procedure is using the CPU.

    • 누락된 총 캐시.Total Cache Missed. 프로파일링 동안 저장 프로시저 실행으로 인해 발생한 캐시 누락(실제 저장소에서 읽기) 수입니다.The number of cache misses (reads from physical storage) that is caused by the stored procedure’s executions during profiling.

    • 실행 수.Execution Count. 프로파일링 동안 이 저장 프로시저가 실행한 횟수입니다.The number of times this stored procedure executed during profiling.

  • 테이블 참조 섹션Table References Section

    이 섹션에는 이 저장 프로시저가 참조하는 테이블을 보여 주는 테이블이 있습니다.This section includes a table that shows the tables to which this stored procedure refers. 저장 프로시저를 고유하게 컴파일된 저장 프로시저로 변환하기 전에 이러한 모든 테이블은 메모리 액세스에 최적화된 테이블로 변환되어야 하며 동일한 서버 및 데이터베이스에 있어야 합니다.Before converting the stored procedure into a natively compiled stored procedure, all of these tables must be converted to memory-optimized tables, and they must stay on the same server and database.

    저장 프로시저 세부 정보 보고서에 대한 실행 통계는 sys.dm_exec_procedure_stats(Transact-SQL)에서 수집되고 집계됩니다.Execution Statistics on the stored procedure details report is gathered and aggregated from sys.dm_exec_procedure_stats (Transact-SQL). 참조는 sys.sql_expression_dependencies(TRANSACT-SQL)에서 가져옵니다.The references are obtained from sys.sql_expression_dependencies (Transact-SQL).

    저장 프로시저를 고유하게 컴파일된 저장 프로시저로 변환하는 방법을 자세히 알아보려면 네이티브 컴파일 관리자를 사용하십시오.To see details about how to convert a stored procedure to a natively compiled stored procedure, please use the Native Compilation Advisor.

메모리 내 OLTP 마이그레이션 검사 목록 생성Generating In-Memory OLTP Migration Checklists

마이그레이션 검사 목록은 메모리 액세스에 최적화된 테이블 또는 고유하게 컴파일된 저장 프로시저에서 지원되지 않는 모든 테이블 또는 저장 프로시저를 식별합니다.Migration checklists identify any table or stored procedure features that are not supported with memory-optimized tables or natively compiled stored procedures. 메모리 최적화 및 네이티브 컴파일 관리자는 단일 디스크 기반 테이블 또는 해석된 T-SQL 저장 프로시저에 대한 검사 목록을 생성할 수 있습니다.The memory-optimization and native compilation advisors can generate a checklist for a single disk-based table or interpreted T-SQL stored procedure. 또한, 데이터베이스의 여러 테이블 및 저장 프로시저에 대한 마이그레이션 검사 목록을 생성하는 것도 가능합니다.It is also possible to generation migration checklists for multiple tables and stored procedures in a database.

SQL Server Management StudioSQL Server Management Studio 메모리 내 OLTP 마이그레이션 검사 목록 생성 명령 또는 PowerShell을 사용하여 내에 마이그레이션 검사 목록을 생성할 수 있습니다.You can generate a migration checklist in SQL Server Management StudioSQL Server Management Studio by using the Generate In-Memory OLTP Migration Checklists command or by using PowerShell.

UI 명령을 사용하여 마이그레이션 검사 목록을 생성하려면To generate a migration checklist using the UI command

  1. 개체 탐색기에서 시스템 데이터베이스가 아닌 데이터베이스를 마우스 오른쪽 단추로 클릭하고 태스크클릭한 후 메모리 내 OLTP 마이그레이션 검사 목록 생성을 클릭합니다.In Object Explorer, right click a database other than the system database, click Tasks, and then click Generate In-Memory OLTP Migration Checklists.

  2. 메모리 내 OLTP 마이그레이션 검사 목록 생성 대화 상자에서 다음을 클릭하여 검사 목록 생성 옵션 구성 페이지로 이동합니다.In the Generate In-Memory OLTP Migration Checklists dialog box, click Next to navigate to the Configure Checklist Generation Options page. 이 페이지에서 다음을 수행합니다.On this page do the following.

    1. 검사 목록 저장 위치 상자에 폴더 경로를 입력합니다.Enter a folder path in the Save checklist to box.

    2. 특정 테이블 및 저장 프로시저에 대한 검사 목록 생성 이 선택되었는지 확인합니다.Verify that Generate checklists for specific tables and stored procedures is selected.

    3. 선택 상자에서 테이블저장 프로시저 노드를 확장합니다.Expand the Table and Stored Procedure nodes in the section box.

    4. 선택 상자에서 몇 가지 개체를 선택합니다.Select a few objects in the selection box.

  3. 다음 을 클릭하고 작업 목록이 검사 목록 생성 옵션 구성 페이지의 설정과 일치하는지 확인합니다.Click Next and confirm that the list of tasks matches your settings on the Configure Checklist Generation Options page.

  4. 종료를 클릭한 후 선택한 개체에 대해서만 마이그레이션 검사 목록 보고서가 생성되었는지 확인합니다.Click Finish, and then confirm that migration checklist reports were generated only for the objects you selected.

    메모리 최적화 관리자 도구 및 네이티브 컴파일 관리자 도구에서 생성된 보고서와 비교하여 보고서의 정확성을 확인합니다.You can verify the accuracy of the reports by comparing them to reports generated by the Memory Optimization Advisor tool and the Native Compilation Advisor tool. 자세한 내용은 Memory Optimization AdvisorNative Compilation Advisor를 참조하세요.For more information, see Memory Optimization Advisor and Native Compilation Advisor.

SQL Server PowerShell을 사용하여 마이그레이션 검사 목록을 생성하려면To generate a migration checklist using SQL Server PowerShell

  1. 개체 탐색기에서 데이터베이스를 클릭한 다음 PowerShell 시작을 클릭합니다.In Object Explorer, click on a database and then click Start PowerShell. 다음과 같은 메시지가 표시되는지 확인합니다.Verify that the following prompt appears.

    PS SQLSERVER: \SQL\{Instance Name}\DEFAULT\Databases\{two-part DB Name}>  
    
  2. 다음 명령을 입력합니다.Enter the following command.

    Save-SqlMigrationReport –FolderPath “<folder_path>”  
    
  3. 다음을 확인합니다.Verify the following.

    • 존재하지 않는 경우 폴더 경로가 생성됩니다.The folder path is created, if it doesn’t already exist.

    • 마이그레이션 검사 목록 보고서는 데이터베이스의 모든 테이블 및 저장 프로시저에 대해 생성되고 보고서는 folder_path의 위치에 저장됩니다.The migration checklist report is generated for all tables and stored procedures in the database, and the report is in the location specified by folder_path.

Windows PowerShell을 사용하여 마이그레이션 검사 목록을 생성하려면To generate a migration checklist using Windows PowerShell

  1. 승격된 Windows PowerShell 세션을 시작합니다.Start an elevated Windows PowerShell session.

  2. 다음 명령을 입력합니다.Enter the following commands. 개체는 테이블 또는 저장 프로시저일 수 있습니다.The object can either be a table or a stored procedure.

    [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO')  
    
    Save-SqlMigrationReport –Server "<instance_name>" -Database "<db_name>" -FolderPath "<folder_path1>"  
    
    Save-SqlMigrationReport –Server "<instance_name>" -Database "<db_name>" -Object <object_name> -FolderPath "<folder_path2>"  
    
  3. 다음을 확인합니다.Verify the following.

    • 마이그레이션 검사 목록 보고서는 데이터베이스의 모든 테이블 및 저장 프로시저에 대해 생성되고 보고서는 folder_path에 저장됩니다.A migration checklist report is generated for all tables and stored procedures in the database, and the report is in the location specified by folder_path.

    • <object_name>에 대한 마이그레이션 검사 목록 보고서는 folder_path2의 위치에 저장된 유일한 보고서입니다.A migration checklist report for <object_name> is the only report in the location specified by folder_path2.

참고 항목See Also

메모리 내 OLTP로 마이그레이션Migrating to In-Memory OLTP