SQL Server 2014: In-memory OLTP

Post on 24-Jan-2015

620 views 5 download

description

 

Transcript of SQL Server 2014: In-memory OLTP

In-Memory OLTPPierwsze wrażenia

Wlodek BielskiBImasters / ACTION CEwlodzimierz.bielski@action.com.pl

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

ἑκατόν

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

Trwałe vs nietrwałe tabele

• Non-durable – sesje ASP

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

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

Tworzenie Memory-Optimized TableCREATE TABLE DDL

Table DLL wyprodukowana

Table DLL załadowana

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

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

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

DemoNowa baza – tylko In-Memory

Migracja - Narzędzie AMR

Migracja do Memory-Based Tables

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

tables and stored procedures.

Migracja do Memory-Based Tables

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

DemoIstniejąca baza - dostosowanie

Wnioski i rekomendacje

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

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

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

BImasters

• Business Intelligence Consultant• Database Developer