Compartilhar via


Consultor de Compilação Nativa

A ferramenta de relatórios de desempenho de transações (consulte Determinando se uma Tabela ou Procedimento Armazenado Deve Ser Portado para In-Memory OLTP) informa sobre quais procedimentos armazenados interpretados em seu banco de dados serão beneficiados se portados para usar a compilação nativa. Depois de identificar um procedimento armazenado que deseja portar para usar a compilação nativa, você pode usar o orientador de compilação nativo para ajudá-lo a migrar o procedimento armazenado interpretado para a compilação nativa. Para obter mais informações sobre procedimentos armazenados compilados nativamente, consulte Procedimentos armazenados compilados nativamente.

Para começar, conecte-se à instância que contém o procedimento armazenado em modo interpretado. Você pode se conectar à instância do SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 ou SQL Server 2014. No entanto, se você quiser executar uma operação de migração com o assistente, deverá se conectar a uma instância do SQL Server 2014 na qual In-Memory funcionalidade OLTP está habilitada. Para obter mais informações sobre In-Memory requisitos OLTP, consulte Requisitos para usar tabelas de Memory-Optimized.

Para obter informações sobre metodologias de migração, consulte In-Memory OLTP – Padrões comuns de carga de trabalho e considerações de migração.

Passo a passo usando o Assistente de Compilação Nativa

No Pesquisador de Objetos, clique com o botão direito do mouse no procedimento armazenado que você deseja converter e selecione o Assistente de Compilação Nativa. Isso exibirá a página de boas-vindas do Orientador de Compilação Nativa para Procedimentos Armazenados. Clique em Avançar para continuar.

Validação de procedimento armazenado

Esta página relatará se o procedimento armazenado usa construções que não são compatíveis com a compilação nativa. Você pode clicar em Avançar para ver detalhes. Se houver constructos que não sejam compatíveis com a compilação nativa, clique em Avançar para ver detalhes.

Resultado da validação do procedimento armazenado

Se houver constructos que não sejam compatíveis com a compilação nativa, a página Resultado da Validação de Procedimento Armazenado exibirá detalhes. Você pode gerar um relatório (clique em Gerar Relatório), sair do Orientador de Compilação Nativa e atualizar seu código para que ele seja compatível com a compilação nativa.

Exemplo de código

O exemplo a seguir mostra um procedimento armazenado interpretado e o procedimento armazenado equivalente para compilação nativa. O exemplo pressupõe um diretório chamado c:\data.

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  
  
CREATE PROCEDURE [dbo].[InsertOrder] @id INT, @date DATETIME2, @status TINYINT  
AS   
BEGIN   
  
  INSERT dbo.SalesOrders VALUES (@id, @date, @status)  
  
END  
  
go  
  
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  
exec dbo.InsertOrder @id= 10, @date = '1956-01-01 12:00:00', @status = 1 ;  
exec dbo.InsertOrderXTP @id= 11, @date = '1956-01-01 12:01:00', @status = 2 ;  
select * from SalesOrders  

Consulte Também

Migrando para In-Memory OLTP