Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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