Condividi tramite


Assistente compilazione nativa

Lo strumento dei report sulle prestazioni delle transazioni (vedere Determining if a Table or Stored Procedure Should Be Ported to In-Memory OLTP) indica quali stored procedure interpretate nel database trarranno vantaggio se trasferite per utilizzare la compilazione nativa. Una volta identificata la stored procedure da trasferire per l'utilizzo nella compilazione nativa, è possibile utilizzare l'Assistente compilazione nativa per facilitare la migrazione della stored procedure interpretata alla compilazione nativa. Per altre informazioni sulle stored procedure compilate in modo nativo, vedere Natively Compiled Stored Procedures.

Connettersi innanzitutto all'istanza contenente la stored procedure interpretata. È possibile connettersi a SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 o SQL Server istanza 2014. Tuttavia, se si desidera eseguire un'operazione di migrazione con l'advisor, è necessario connettersi a un'istanza di SQL Server 2014 in cui è abilitata In-Memory funzionalità OLTP. Per ulteriori informazioni sui requisiti di OLTP in memoria, vedere Requirements for Using Memory-Optimized Tables.

Per informazioni sulle metodologie di migrazione, vedere In-Memory OLTP - Common Workload Patterns and Migration Considerations (OLTP in memoria: considerazioni sulla migrazione e sui modelli di carico di lavoro comuni).

Procedura dettagliata per l'utilizzo dell'Assistente compilazione nativa

In Esplora oggettifare clic con il pulsante destro del mouse sulla stored procedure che si desidera convertire, quindi selezionare Assistente compilazione nativa. Verrà visualizzata la pagina introduttiva di Assistente compilazione nativa stored procedure. Fare clic su Avanti per continuare.

Convalida stored procedure

In questa pagina verrà indicato se la stored procedure utilizza dei costrutti che non sono compatibili con la compilazione nativa. Fare clic su Avanti per vedere i dettagli. Se sono presenti costrutti che non sono compatibili con la compilazione nativa, fare clic su Avanti per vedere i dettagli.

Risultati di convalida stored procedure

I dettagli su eventuali costrutti non compatibili con la compilazione nativa saranno visualizzati nella pagina Risultati di convalida stored procedure . È possibile generare un report (facendo clic su Genera report), uscire da Assistente compilazione nativae aggiornare il codice in modo che risulti compatibile con la compilazione nativa.

Codice di esempio

Nell'esempio seguente viene mostrata una stored procedure interpretata e la stored procedure equivalente per la compilazione nativa. Nell'esempio viene supposto l'utilizzo di una directory denominata 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  

Vedere anche

Migrazione a OLTP in memoria