20
In-Memory OLTP Pierwsze wrażenia Wlodek Bielski BImasters / ACTION CE [email protected] .pl

SQL Server 2014: In-memory OLTP

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: SQL Server 2014: In-memory OLTP

In-Memory OLTPPierwsze wrażenia

Wlodek BielskiBImasters / ACTION [email protected]

Page 2: SQL Server 2014: In-memory OLTP

OLTP na rozdrożu…

Klasyczna architektura• Wolne HDD, drogie SSD,

tani RAM• Prędkość CPU zamarła

(od kilku lat 3-4 GHz)• Dosyć słaba skalowalność

(Internal Blocking, Locking,Latching)

In-Memory OLTP• Dane przechowywane w RAM,

HDD tylko jako backup• Oszczędne korzystanie

z cykli procesora• Rezygnacja z mechanizmów

blokowania

ἑκατόν

Page 3: SQL Server 2014: In-memory OLTP

In-Memory OLTP

• Zoptymalizowane pod pamięć RAM tabele i indeksy

• Natywna kompilacja logiki w procedurach składowanych

• Struktury danych bez latch’y i locków• Pełna integracja z innymi komponentami

Page 4: SQL Server 2014: In-memory OLTP

Trwałe vs nietrwałe tabele

• Non-durable – sesje ASP

Page 5: SQL Server 2014: In-memory OLTP

CREATE TABLE DDL

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);

Page 6: SQL Server 2014: In-memory OLTP

Natywna kompilacja procedur

• Do DLL• Przy każdym restarcie rekompilacja obiektów do DLL

• C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\xtp

• XTP_P - procedury• XTP_T - tabele

Page 7: SQL Server 2014: In-memory OLTP

Tworzenie Memory-Optimized TableCREATE TABLE DDL

Table DLL wyprodukowana

Table DLL załadowana

Page 8: SQL Server 2014: In-memory OLTP

Ograniczenia

• Maks. rozmiar wiersza 8060 bajtów• Maks. rozmiar tabeli 512 GB• Brak triggerów DML• Brak XML / typów danych CLR• Brak LOB – nvarchar(max)• Brak obsługi „out of memory”• Brak ALTER TABLE, FOREIGN KEY, CHECK• Brak możliwości dodania/usunięcia indeksu

Page 9: SQL Server 2014: In-memory OLTP

Transakcje

• Semantyka podobna do READ_COMMITED_SNAPSHOT / SNAPSHOT

• Wiersze są wersjonowane• Optymistyczna współbieżność• Brak locków, zamiast tego mechanizm

wykrywania konfliktów• Pierwszy zapis wygrywa• Sugerowane krótkie transakcje

Page 10: SQL Server 2014: In-memory OLTP

Zmiany w T-SQL DDL

• ALTER DATABASE• CREATE DATABASE• CREATE PROC WITH NATIVE_COMPILATION

• CREATE TABLE MEMORY_OPTIMIZED, DURABILITY

• CREATE TYPE MEMORY_OPTIMIZED

Za to nie ma…• ALTER_TABLE, CREATE/DROP INDEX, sp_rename• FOREIGN KEY, CHECK CONSTRAINT

MEMORY_OPTIMIZED_DATA

Page 11: SQL Server 2014: In-memory OLTP

DemoNowa baza – tylko In-Memory

Page 12: SQL Server 2014: In-memory OLTP

Migracja - Narzędzie AMR

Page 13: SQL Server 2014: In-memory OLTP

Migracja do Memory-Based Tables

• Configure Management Data Warehouse.• Configure data collection.• Generate AMR Reports to identify performance-critical

tables and stored procedures.

Page 14: SQL Server 2014: In-memory OLTP

Migracja do Memory-Based Tables

• Oszacowanie zapotrzebowania na RAM• Niewspierane elementy T-SQL• Partycjonowanie tabel

Page 15: SQL Server 2014: In-memory OLTP

DemoIstniejąca baza - dostosowanie

Page 16: SQL Server 2014: In-memory OLTP

Wnioski i rekomendacje

• Odpowiedź na trend rynkowy• 80/20, względnie 95/5

Page 17: SQL Server 2014: In-memory OLTP

In-Memory OLTP: Konkurencja

• SAP HANA– OLTAP - OLAP i OLTP w jednym– Silnik + platforma + usługi– MaxDB + TREX + P*Time

• Oracle Exadata– Appliance– In-Memory, o ile flash cache = RAM

• IBM BLU (DB2 10.5)– „Big Data, Lightning Fast, Ultra Easy”– W tej chwili bardziej OLAP - odczyt

Page 18: SQL Server 2014: In-memory OLTP

Więcej informacji?

• Whitepaper Kalen Delaney• MSDN: In-Memory OLTP (In-Memory Optimization)• Channel 9: TechEd 2013 North America (Sunil Agarwal)– Overview (+BWin)– App Dev Deep Dive– Management Deep Dive

• Channel 9: TechEd 2013 Europe (Jos de Bruijn)– Overview– Developer Deep Dive– DBA Deep Dive

Page 19: SQL Server 2014: In-memory OLTP
Page 20: SQL Server 2014: In-memory OLTP

BImasters

• Business Intelligence Consultant• Database Developer