Compartir a través de


Asesor de compilación nativo

Herramienta de informes de rendimiento de transacciones (consulte Determinar si se debe portar una tabla o un procedimiento almacenado a In-Memory OLTP) le informa sobre qué procedimientos almacenados interpretados en la base de datos se beneficiarán si se portar para usar la compilación nativa. Después de identificar un procedimiento almacenado que le gustaría portar para usar la compilación nativa, puede usar el asesor de compilación nativo para ayudarle a migrar el procedimiento almacenado interpretado a la compilación nativa. Para obtener más información sobre los procedimientos almacenados compilados de forma nativa, vea Procedimientos almacenados compilados de forma nativa.

Para comenzar, conéctese a la instancia que contiene el procedimiento almacenado interpretado. Puede conectarse a la instancia de SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 o SQL Server 2014. Sin embargo, si desea realizar una operación de migración con el asesor, debe conectarse a una instancia de SQL Server 2014 en la que está habilitada In-Memory funcionalidad OLTP. Para obtener más información sobre In-Memory requisitos de OLTP, consulte Requisitos para usar tablas de Memory-Optimized.

Para obtener información sobre las metodologías de migración, consulte In-Memory OLTP : patrones comunes de carga de trabajo y consideraciones de migración.

Tutorial con el Asesor de compilación nativo

En el Explorador de objetos, haga clic con el botón derecho en el procedimiento almacenado que desea convertir y seleccione Asesor de compilación nativo. Se mostrará la página de bienvenida del Asesor de Compilación Nativa para Procedimientos Almacenados. Haga clic en Siguiente para continuar.

Validación de procedimientos almacenados

Esta página notificará si el procedimiento almacenado usa cualquier construcción que no sea compatible con la compilación nativa. Puede hacer clic en Siguiente para ver los detalles. Si hay construcciones que no son compatibles con la compilación nativa, puede hacer clic en Siguiente para ver los detalles.

Resultado de validación de procedimiento almacenado

Si hay construcciones que no son compatibles con la compilación nativa, la página Resultado de validación de procedimiento almacenado mostrará los detalles. Puede generar un informe (haga clic en Generar informe), salir del Asesor de compilación nativa y actualizar el código para que sea compatible con la compilación nativa.

Ejemplo de código

En el ejemplo siguiente se muestra un procedimiento almacenado interpretado y el procedimiento almacenado equivalente para la compilación nativa. En el ejemplo se presupone un directorio denominado 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  

Véase también

Migración a In-Memory OLTP