2. • In-Memory OLTP nedir?
• Nasıl çalışır?
• Kullanım senaryoları
• Demo
• Başarı hikayesi
• Sorular
3. Hafızadan
çalışmak üzere
düzenlenmiş tablo
ve indeks yapıları
Latch ve lock
gerektirmeyen veri
yapıları
İş mantığı içeren
stored
procedure’lerin
makine diline
derlenmesi
SQL Server ile
tamamen entegre
4. • Daha yüksek miktarda işlem adedi
• Daha düşük süreler
• Daha düşük maliyet
Örnekler
• Kesilen fatura adedi
• Kredi kartı işlemleri
5. Memory Optimized Data Filegroup
Data Filegroup
SQL Server.exeMemory Optimized Tables & Indexes
TDS Handler and Session Management
Natively Compiled
SPs and Schema
Buffer Pool for Tables & Indexes
İstemci Uygulaması
Transaction Log
T1 T3T2
T1 T3T2
Tables
Indexes
T-SQL Query Execution
T1 T3T2
Parser,
Catalog,
Optimizer
Native
Compiler
In-mem OLTP
Parçaları
Anahtar
Mevcut SQL
Parçaları
Oluşturulan
.dll
6
Query
Interop
6.
7. CREATE TABLE [Customer](
[CustomerID] INT NOT NULL
PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT = 1000000),
[Name] NVARCHAR(250) NOT NULL
INDEX [IName] HASH WITH (BUCKET_COUNT = 1000000),
[CustomerSince] DATETIME NULL
)
WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA);
Bu tablo, «memory
optimized» bir
tablodur
Bu tablo, durable
İkincil indeksler aynı
satırda tanımlanıyor
Hash Index
Create Table DDL
8. CREATE TABLE DDL
Kod üretimi ve derlemesi
Tablo için DLL üretimi
Tablo’nun DLL’inin yüklenmesi
9
9.
10. CREATE PROCEDURE [dbo].[InsertOrder] @id INT, @date DATETIME
WITH
NATIVE_COMPILATION,
SCHEMABINDING,
EXECUTE AS OWNER
AS
BEGIN ATOMIC
WITH
(TRANSACTION
ISOLATION LEVEL = SNAPSHOT,
LANGUAGE = 'us_english')
-- insert T-SQL here
END
Bu prosedür, makine
dilinde derleniyor
Makine diline derlenmiş
prosedürler, şemaya
bağlı tanımlanmalıdır
Atomik bloklar
• Transaction yok ise,
yeni bir tane başlat
• Aksi takdirde,
Savepoint tanımla
Çalışma kontekstinin
belirtilmesi gerekiyor
Session ayarları, prosedür
oluşturma esnasında
tanımlanarak sabitlenir
Create Procedure DDL
11. CREATE PROC DDL
Sorgu optimizasyonu
Kod üretimi ve derlemesi
Prosedür DLL’i üretimi
Prosedür DLL’i yüklemesi
12
12. Memory-Optimized Tablolara Erişim
• Makine diline derlenmiş
prosedürler
– Sadece memory optimized tablolara
erişim
– En yüksek performans
– Sınırlı T-SQL desteği
• Ne zaman kullanmalı
– OLTP tipi işlemler
– Kritik iş mantıklarını hızlandırmada
• Interpreted T-SQL Erişimi
– Hem memory-optimized hem de
disk-based tablolara erişebilir
– Daha düşük performans
– Tam T-SQL desteği
• Ne zaman kullanılmalı
– Ad hoc sorgular
– Raporlama tipi sorgular
– Uygulamaların taşınmasını
hızlandırmada
13
15. Time Transaction T1 (SNAPSHOT) Transaction T2 (SNAPSHOT)
1 BEGIN
2 BEGIN
3 UPDATE t SET c1=‘value2’ WHERE c2=123
4 UPDATE t SET c1=‘value1’ WHERE
c2=123 (write conflict)
İlk yazan
kazanır