Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Os relatórios de Análise de Desempenho de Transações indicam-lhe quais os procedimentos armazenados interpretados na sua base de dados que beneficiarão se forem portados para compilação nativa. Para mais detalhes, veja Determinar se uma tabela ou procedimento armazenado deve ser portado para In-Memory OLTP.
Depois de identificar um procedimento armazenado que gostaria de portar para usar compilação nativa, pode usar o Native Compilation Advisor (NCA) para o ajudar a migrar o procedimento armazenado interpretado para compilação nativa. Para mais informações sobre procedimentos armazenados compilados nativamente, consulte Procedimentos Armazenados Compilados Nativamente.
Num dado procedimento armazenado interpretado, o NCA permite-lhe identificar todas as funcionalidades que não são suportadas em módulos nativos. A NCA fornece ligações para documentação sobre soluções alternativas ou soluções.
Para informações sobre metodologias de migração, consulte In-Memory OLTP - Padrões Comuns de Carga de Trabalho e Considerações de Migração.
Guia passo a passo usando o Native Compilation Advisor
No Object Explorer, clique com o botão direito no procedimento armazenado que pretende converter e selecione Native Compilation Advisor. Isto irá mostrar a página de boas-vindas do Stored Procedure Native Compilation Advisor. Clique Avançar para continuar.
Validação de Procedimentos Armazenados
Esta página irá reportar se o procedimento armazenado utiliza construtos que não sejam compatíveis com compilação nativa. Pode clicar em Seguinte para ver os detalhes. Se existirem construtos que não sejam compatíveis com compilação nativa, pode clicar em Seguir para ver os detalhes.
Resultado de Validação de Procedimentos Armazenados
Se existirem construtos que não sejam compatíveis com compilação nativa, a página de Resultados de Validação de Procedimentos Armazenados mostrará os detalhes. Pode gerar um relatório (clique em Gerar Relatório), sair do Native Compilation Advisor e atualizar o seu código para que seja compatível com compilação nativa.
Exemplo de código
O exemplo seguinte mostra um procedimento armazenado interpretado e o procedimento equivalente para compilação nativa. O exemplo assume um diretório chamado c:\data.
Observação
Como habitual, o elemento FILEGROUP e a instrução USE mydatabase aplicam-se ao Microsoft SQL Server, mas não ao Azure SQL Database.
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;
Ver também
Migrando para In-Memory OLTP
Requisitos para a utilização de tabelas Otimizadas para Memória