Natively Compiled Stored Procedure Nedir ve Nasıl Kullanılır?

Natively Compiled Stored Procedure, In Memory OLTP ile beraber SQL Server 2014 sürümünün bize sunduğu yeni bir stored procedure çeşididir. Sadece Memory Optimized Tablolar’da kullanılabilir. In Memory OLTP ve Memory Optimized Tablolar için “In Memory OLTP Nedir? Ve Nasıl Kullanılır?” isimli makalemi okumanızı öneririm.

 

Natively Compiled Stored Procedure’de Procedure içindeki TSQL kodları daha iyi performans sağlayabilmek için native koda dönüştürülür.

 

Önceki makalemizde Memory Optimized Tablo’ların, Disk Based Tablolara göre performans olarak 5-30 kat daha iyi olduğunu söylemiştik. Memory Optimized Tabloları Natively Compiled Stored Procedure’le birlikte kullandığımızda bu fark daha da artıyor. Hızını görmek için test yapmanızı öneririm. Makalenin devamında gerekli kodu paylaşacağım.

 

Bildiğimiz stored procedure’ler ilk çalıştıklarında derlenirler. Bu yüzden oluşturma sırasında hata almasalar bile ilk çalıştırma sırasında hata alabilirler.

 

Natively Compiled Stored Procedure’ler oluştuklarında derlendikleri için eğer bir hata varsa oluşturamazsınız. Ne kadar hızlı olduğunu görmek istiyorsanız yukarda bahsettiğim In Memory OLTP makalesinde oluşturduğumuz tabloya aşağıda kodunu paylaştığım natively compiled stored procedure’ü kullanarak 50000 kayıt insert etmelisiniz.

USE [Test]
GO
CREATE PROCEDURE NativelyCompiledSPOrnek
WITH NATIVE_COMPILATION, EXECUTE AS OWNER, SCHEMABINDING
AS
BEGIN ATOMIC WITH (TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'English')
DECLARE @i INT = 0
WHILE @i < 50000
BEGIN
INSERT INTO dbo.MemTabloOrnek VALUES (@i,N'Adım Soyadım')
SET @i += 1
END
END
GO
 
--EXEC NativelyCompiledSPOrnek
--SQL Server 2016'da EXECUTE AS OWNER ifadesine gerek kalmıyor.

 

 

Bir cevap yazın

Your email address will not be published. Required fields are marked *.

*
*

Lütfen captcha kodunu giriniz *

Lütfen Resimdeki Kodu Boşluğa Giriniz.
You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>