Compartilhar via


Orientador de compilação nativa

A ferramenta de relatórios de desempenho da transação (consulte Determining if a Table or Stored Procedure Should Be Ported to In-Memory OLTP) informa sobre quais procedimentos armazenados interpretados no banco de dados serão beneficiados se usarem a compilação nativa. Depois de identificar um procedimento armazenado que você gostaria de ser aprovado para usar a compilação nativa, você poderá usar o orientador de compilação nativa para ajudá-lo a migrar o procedimento armazenado interpretado para compilação nativa. Para obter mais informações sobre procedimentos armazenados nativamente compilados, consulte Natively Compiled Stored Procedures.

Para começar, conecte-se à instância que contém o procedimento armazenado interpretado. Você pode se conectar a SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 ou SQL Server instância de 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 os requisitos de OLTP na memória, consulte Requirements for Using Memory-Optimized Tables.

Para obter informações sobre as metodologias de migração, confira In-Memory OLTP – Common Workload Patterns and Migration Considerations(OLTP in-memory – Padrões comuns de carga de trabalho e considerações de migração).

Passo a passo usando o orientador de compilação nativa

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

Validação de procedimento armazenado

Essa página relatará se o procedimento armazenado usar alguma construção que não seja compatível com compilação nativa. Você pode clicar em Avançar para ver detalhes. Se houver construções que não sejam compatíveis com compilação nativa, você poderá clicar em Avançar para ver detalhes.

Resultado de validação de procedimento armazenado

Se houver construções que não sejam compatíveis com compilação nativa, a página Resultado de Validação de Procedimento Armazenado exibirá detalhes. Você pode gerar um relatório (clique em Gerar Relatório), saia do Supervisor de Compilação Nativae atualize seu código de forma que 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 supõ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 OLTP na memória