네이티브 컴파일 관리자

적용 대상:SQL ServerAzure SQL Database

트랜잭션 성능 분석 보고서는 네이티브 컴파일을 사용하도록 이식된 경우 데이터베이스의 해석된 저장 프로시저가 어떤 이점이 있는지 알려줍니다. 자세한 내용은 테이블 또는 저장 프로시저를 메모리 내 OLTP로 이식해야 하는지 여부를 확인하는 방법을 참조 하세요.

네이티브 컴파일을 사용하도록 포팅하려는 저장 프로시저를 식별한 후에는 NCA(Native Compilation Advisor)를 사용하여 해석된 저장 프로시저를 네이티브 컴파일로 마이그레이션할 수 있습니다. 고유하게 컴파일된 저장 프로시저에 대한 자세한 내용은 Natively Compiled Stored Procedures를 참조하세요.

지정된 해석된 저장 프로시저에서 NCA를 사용하면 네이티브 모듈에서 지원되지 않는 모든 기능을 식별할 수 있습니다. NCA는 해결 방법 또는 솔루션에 대한 설명서 링크를 제공합니다.

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

네이티브 컴파일 관리자 사용 연습

개체 탐색기에서 변환할 저장 프로시저를 마우스 오른쪽 단추로 클릭하고 네이티브 컴파일 관리자를 선택합니다. 저장 프로시저 네이티브 컴파일 관리자시작 페이지가 표시됩니다. 다음 을 클릭하여 계속합니다.

저장 프로시저 유효성 검사

이 페이지에서는 저장 프로시저가 네이티브 컴파일과 호환되지 않는 구문을 사용하는지 보고합니다. [다음]을 클릭하여 세부 정보를 볼 수 있습니다. 네이티브 컴파일과 호환되지 않는 구문이 있는 경우 [다음]을 클릭하여 세부 정보를 볼 수 있습니다.

저장 프로시저 유효성 검사 결과

네이티브 컴파일 과 호환되지 않는 구문이 있는 경우 저장 프로시저 유효성 검사 결과 페이지에 세부 정보가 표시됩니다. 보고서를 생성하고(보고서 생성 클릭) 네이티브 컴파일 관리자종료한 다음 네이티브 컴파일과 호환되도록 코드를 업데이트할 수 있습니다.

코드 예제

다음 샘플에서는 해석된 저장 프로시저와 네이티브 컴파일에 해당하는 저장 프로시저를 보여줍니다. 샘플에서는 c:\data라는 디렉터리를 가정합니다.

참고 항목

일반적으로 FILEGROUP 요소 및 USE mydatabase 문은 Microsoft SQL Server에 적용되지만 Azure SQL 데이터베이스에는 적용되지 않습니다.

CREATE DATABASE Demo  
ON  
PRIMARY(NAME = [Demo_data],  
FILENAME = 'C:\DATA\Demo_data.mdf', size=500MB)  
, FILEGROUP [Demo_fg] CONTAINS MEMORY_OPTIMIZED_DATA(  
NAME = [Demo_dir],  
FILENAME = 'C:\DATA\Demo_dir')  
LOG ON (name = [Demo_log], Filename='C:\DATA\Demo_log.ldf', size=500MB)  
COLLATE Latin1_General_100_BIN2;  
go  
  
USE Demo;  
go  
  
CREATE TABLE [dbo].[SalesOrders]  
(  
     [order_id] [int] NOT NULL,  
     [order_date] [datetime] NOT NULL,  
     [order_status] [tinyint] NOT NULL  
     CONSTRAINT [PK_SalesOrders] PRIMARY KEY NONCLUSTERED HASH   
(  
     [order_id]  
) WITH ( BUCKET_COUNT = 2097152)  
) WITH ( MEMORY_OPTIMIZED = ON )  
go  
  
-- Interpreted.  
CREATE PROCEDURE [dbo].[InsertOrder] @id INT, @date DATETIME2, @status TINYINT  
AS   
BEGIN   
  INSERT dbo.SalesOrders VALUES (@id, @date, @status);  
END  
go  
  
-- Natively Compiled.  
CREATE PROCEDURE [dbo].[InsertOrderXTP]  
      @id INT, @date DATETIME2, @status TINYINT  
  WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER  
AS   
BEGIN ATOMIC WITH   
     (TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'us_english'  
     )  
  INSERT dbo.SalesOrders VALUES (@id, @date, @status);  
END  
go  
  
SELECT * from SalesOrders;  
go  
  
EXECUTE dbo.InsertOrder @id= 10, @date = '1956-01-01 12:00:00', @status = 1;  
EXECUTE dbo.InsertOrderXTP @id= 11, @date = '1956-01-01 12:01:00', @status = 2;  
  
SELECT * from SalesOrders;  

참고 항목

메모리 내 OLTP로 마이그레이션
메모리 액세스에 최적화된 테이블 사용을 위한 요구 사항