네이티브 컴파일 관리자
적용 대상: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;
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기