Aracılığıyla paylaş


Yerel Derleme Danışmanı

Şunlar için geçerlidir:SQL ServerAzure SQL Veritabanı

İşlem Performansı Analizi raporları, yerel derleme kullanmak üzere taşınması durumunda veritabanınızda hangi yorumlanmış saklı yordamların fayda sağlayacağını size bildirir. Ayrıntılar için bkz. Bir Tablo veya Saklı Yordamın In-Memory OLTP'ye taşınıp taşınmaması gerektiğini belirleme.

Yerel derlemeyi kullanarak başka bir ortama taşımak istediğiniz saklı yordamı belirledikten sonra, yorumlanan saklı yordamı yerel derlemeye geçirmek için Yerel Derleme Danışmanı'nı (NCA) kullanabilirsiniz. Yerel olarak derlenmiş saklı yordamlar hakkında daha fazla bilgi için bkz. Yerel Olarak Derlenmiş Saklı Yordamlar.

Belirli bir yorumlanmış saklı yordamda NCA, yerel modüllerde desteklenmeyen tüm özellikleri belirlemenize olanak tanır. NCA, geçici çözümlere veya çözümlere yönelik belge bağlantıları sağlar.

Geçiş yöntemleri hakkında bilgi için bkz. In-Memory OLTP - Yaygın İş Yükü Desenleri ve Geçiş Konuları.

Yerel Derleme Danışmanını Kullanma Adım Adım Kılavuzu

Nesne Gezgini'nde, dönüştürmek istediğiniz saklı yordama sağ tıklayın ve Yerel Derleme Danışmanı'nı seçin. Bu, Saklı Yordam Yerel Derleme Danışmanı'nın karşılama sayfasını görüntüler. Devam etmek için Sonraki düğmesine tıklayın.

Saklı Yordam Doğrulaması

Bu sayfa, saklı yordamda yerel derlemeyle uyumlu olmayan yapıların kullanılıp kullanılmadığını bildirir. Ayrıntıları görmek için İleri'ye tıklayabilirsiniz. Yerel derlemeyle uyumlu olmayan yapılar varsa, ayrıntıları görmek için İleri'ye tıklayabilirsiniz.

Saklı Yordam Doğrulama Sonucu

Yerel derlemeyle uyumlu olmayan yapılar varsa Saklı Yordam Doğrulama Sonucu sayfası ayrıntıları görüntüler. Bir rapor oluşturabilir ( Rapor Oluştur'a tıklayın), Yerel Derleme Danışmanı'ndan çıkıp kodunuzu yerel derlemeyle uyumlu olacak şekilde güncelleştirebilirsiniz.

Kod Örneği

Aşağıdaki örnekte, yorumlanmış bir saklı yordam ve yerel derleme için eşdeğer saklı yordam gösterilmektedir. Örnekte c:\data adlı bir dizin varsayılır.

Uyarı

Her zamanki gibi FILEGROUP öğesi ve USE mydatabase deyimi Microsoft SQL Server'a uygulanır, ancak Azure SQL Veritabanı için geçerli değildir.

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;  

Ayrıca Bkz.

In-Memory OLTP'ye Geçiş
Memory-Optimized Tabloları Kullanma Gereksinimleri