SlideShare une entreprise Scribd logo
1  sur  20
In-Memory OLTP
Pierwsze wrażenia
Wlodek Bielski
BImasters / ACTION CE
wlodzimierz.bielski@action.com.pl
OLTP na rozdrożu…
Klasyczna architektura
• Wolne HDD, drogie SSD,
tani RAM
• Prędkośd CPU zamarła
(od kilku lat 3-4 GHz)
• Dosyd słaba skalowalnośd
(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ęd 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 FilesMicrosoft SQL Server
MSSQL11.MSSQLSERVERMSSQLDATAxtp
• XTP_P - procedury
• XTP_T - tabele
Tworzenie Memory-Optimized Table
CREATE TABLE DDL
Generowanie do C i kompilowanie
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śd
• 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
Demo
Nowa 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
Demo
Istnieją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

Contenu connexe

Similaire à SQL Server 2014: In-memory OLTP

Nowości w zakresie bezpieczeństwa w SQL Server 2016
Nowości w zakresie bezpieczeństwa w SQL Server 2016Nowości w zakresie bezpieczeństwa w SQL Server 2016
Nowości w zakresie bezpieczeństwa w SQL Server 2016Kamil Nowinski
 
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz
 
Roman Czarko-Wasiutycz- Projektowanie baz danych
Roman Czarko-Wasiutycz- Projektowanie baz danychRoman Czarko-Wasiutycz- Projektowanie baz danych
Roman Czarko-Wasiutycz- Projektowanie baz danychWomen in Technology Poland
 
Microsoft Business Intelligence dla DBA
Microsoft Business Intelligence dla DBAMicrosoft Business Intelligence dla DBA
Microsoft Business Intelligence dla DBAHighWheelSoftware
 
Jak nie narobić sobie problemów korzystając z EntityFramework
Jak nie narobić sobie problemów korzystając z EntityFrameworkJak nie narobić sobie problemów korzystając z EntityFramework
Jak nie narobić sobie problemów korzystając z EntityFrameworkHighWheelSoftware
 
[#3] in memory - IBM Integrated Analytics System
[#3] in memory - IBM Integrated Analytics System[#3] in memory - IBM Integrated Analytics System
[#3] in memory - IBM Integrated Analytics SystemArtur Wronski
 
Migracja bazy danych Oracle z wersji Enterprise do wersji Standard
Migracja bazy danych Oracle z wersji Enterprise do wersji Standard Migracja bazy danych Oracle z wersji Enterprise do wersji Standard
Migracja bazy danych Oracle z wersji Enterprise do wersji Standard 3camp
 
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...PROIDEA
 
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbaćBartosz Ratajczyk
 
PHP i memcached, zaawansowane przypadki użycia
PHP i memcached, zaawansowane przypadki użyciaPHP i memcached, zaawansowane przypadki użycia
PHP i memcached, zaawansowane przypadki użyciaPHPCon Poland
 
Maintenance_Plans_Zupełnie_Znienacka
Maintenance_Plans_Zupełnie_ZnienackaMaintenance_Plans_Zupełnie_Znienacka
Maintenance_Plans_Zupełnie_ZnienackaTobias Koprowski
 
SQLServer dla Programistów
SQLServer dla ProgramistówSQLServer dla Programistów
SQLServer dla ProgramistówHighWheelSoftware
 
Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13Divante
 
Skalowanie PostgreSQL @ DBConf.PL 2014
Skalowanie PostgreSQL @ DBConf.PL 2014Skalowanie PostgreSQL @ DBConf.PL 2014
Skalowanie PostgreSQL @ DBConf.PL 2014Filip Rembialkowski
 
[#2] architektura - IBM Integrated Analytics System
[#2] architektura - IBM Integrated Analytics System[#2] architektura - IBM Integrated Analytics System
[#2] architektura - IBM Integrated Analytics SystemArtur Wronski
 
PLNOG 3: Krzysztof Góźdź - Petabajtowe systemy przechowywania danych dla dost...
PLNOG 3: Krzysztof Góźdź - Petabajtowe systemy przechowywania danych dla dost...PLNOG 3: Krzysztof Góźdź - Petabajtowe systemy przechowywania danych dla dost...
PLNOG 3: Krzysztof Góźdź - Petabajtowe systemy przechowywania danych dla dost...PROIDEA
 

Similaire à SQL Server 2014: In-memory OLTP (20)

Nowości w zakresie bezpieczeństwa w SQL Server 2016
Nowości w zakresie bezpieczeństwa w SQL Server 2016Nowości w zakresie bezpieczeństwa w SQL Server 2016
Nowości w zakresie bezpieczeństwa w SQL Server 2016
 
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
 
Roman Czarko-Wasiutycz- Projektowanie baz danych
Roman Czarko-Wasiutycz- Projektowanie baz danychRoman Czarko-Wasiutycz- Projektowanie baz danych
Roman Czarko-Wasiutycz- Projektowanie baz danych
 
Microsoft Business Intelligence dla DBA
Microsoft Business Intelligence dla DBAMicrosoft Business Intelligence dla DBA
Microsoft Business Intelligence dla DBA
 
Jak nie narobić sobie problemów korzystając z EntityFramework
Jak nie narobić sobie problemów korzystając z EntityFrameworkJak nie narobić sobie problemów korzystając z EntityFramework
Jak nie narobić sobie problemów korzystając z EntityFramework
 
[#3] in memory - IBM Integrated Analytics System
[#3] in memory - IBM Integrated Analytics System[#3] in memory - IBM Integrated Analytics System
[#3] in memory - IBM Integrated Analytics System
 
Migracja bazy danych Oracle z wersji Enterprise do wersji Standard
Migracja bazy danych Oracle z wersji Enterprise do wersji Standard Migracja bazy danych Oracle z wersji Enterprise do wersji Standard
Migracja bazy danych Oracle z wersji Enterprise do wersji Standard
 
O co chodzi z FILESTREAM?
O co chodzi z FILESTREAM?O co chodzi z FILESTREAM?
O co chodzi z FILESTREAM?
 
RSIM - Actina Solar
RSIM - Actina SolarRSIM - Actina Solar
RSIM - Actina Solar
 
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
 
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
 
PHP i memcached, zaawansowane przypadki użycia
PHP i memcached, zaawansowane przypadki użyciaPHP i memcached, zaawansowane przypadki użycia
PHP i memcached, zaawansowane przypadki użycia
 
Maintenance_Plans_Zupełnie_Znienacka
Maintenance_Plans_Zupełnie_ZnienackaMaintenance_Plans_Zupełnie_Znienacka
Maintenance_Plans_Zupełnie_Znienacka
 
Podstawy ETL z SSIS
Podstawy ETL z SSISPodstawy ETL z SSIS
Podstawy ETL z SSIS
 
SQLServer dla Programistów
SQLServer dla ProgramistówSQLServer dla Programistów
SQLServer dla Programistów
 
Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13
 
Skalowanie PostgreSQL @ DBConf.PL 2014
Skalowanie PostgreSQL @ DBConf.PL 2014Skalowanie PostgreSQL @ DBConf.PL 2014
Skalowanie PostgreSQL @ DBConf.PL 2014
 
[#2] architektura - IBM Integrated Analytics System
[#2] architektura - IBM Integrated Analytics System[#2] architektura - IBM Integrated Analytics System
[#2] architektura - IBM Integrated Analytics System
 
PLNOG 3: Krzysztof Góźdź - Petabajtowe systemy przechowywania danych dla dost...
PLNOG 3: Krzysztof Góźdź - Petabajtowe systemy przechowywania danych dla dost...PLNOG 3: Krzysztof Góźdź - Petabajtowe systemy przechowywania danych dla dost...
PLNOG 3: Krzysztof Góźdź - Petabajtowe systemy przechowywania danych dla dost...
 
It od kuchni w nokaut.pl
It od kuchni w nokaut.plIt od kuchni w nokaut.pl
It od kuchni w nokaut.pl
 

Plus de Wlodek Bielski

Big Data and ML on Google Cloud
Big Data and ML on Google CloudBig Data and ML on Google Cloud
Big Data and ML on Google CloudWlodek Bielski
 
Machine Learning with GCP
Machine Learning with GCPMachine Learning with GCP
Machine Learning with GCPWlodek Bielski
 
Cloud Developer Days - BigQuery
Cloud Developer Days - BigQueryCloud Developer Days - BigQuery
Cloud Developer Days - BigQueryWlodek Bielski
 
Migrating Enterprise BI to Azure
Migrating Enterprise BI to AzureMigrating Enterprise BI to Azure
Migrating Enterprise BI to AzureWlodek Bielski
 
Pierwsze kroki w chmurze
Pierwsze kroki w chmurzePierwsze kroki w chmurze
Pierwsze kroki w chmurzeWlodek Bielski
 
Azure Analysis Services - AzureDay Poland 2018
Azure Analysis Services - AzureDay Poland 2018Azure Analysis Services - AzureDay Poland 2018
Azure Analysis Services - AzureDay Poland 2018Wlodek Bielski
 
AnalyticsConf : Azure SQL Data Warehouse
AnalyticsConf : Azure SQL Data WarehouseAnalyticsConf : Azure SQL Data Warehouse
AnalyticsConf : Azure SQL Data WarehouseWlodek Bielski
 
StreamInsight - Analiza danych w ruchu
StreamInsight - Analiza danych w ruchuStreamInsight - Analiza danych w ruchu
StreamInsight - Analiza danych w ruchuWlodek Bielski
 

Plus de Wlodek Bielski (9)

Big Data and ML on Google Cloud
Big Data and ML on Google CloudBig Data and ML on Google Cloud
Big Data and ML on Google Cloud
 
Machine Learning with GCP
Machine Learning with GCPMachine Learning with GCP
Machine Learning with GCP
 
Cloud Developer Days - BigQuery
Cloud Developer Days - BigQueryCloud Developer Days - BigQuery
Cloud Developer Days - BigQuery
 
Migrating Enterprise BI to Azure
Migrating Enterprise BI to AzureMigrating Enterprise BI to Azure
Migrating Enterprise BI to Azure
 
Pierwsze kroki w chmurze
Pierwsze kroki w chmurzePierwsze kroki w chmurze
Pierwsze kroki w chmurze
 
Azure Analysis Services - AzureDay Poland 2018
Azure Analysis Services - AzureDay Poland 2018Azure Analysis Services - AzureDay Poland 2018
Azure Analysis Services - AzureDay Poland 2018
 
AnalyticsConf : Azure SQL Data Warehouse
AnalyticsConf : Azure SQL Data WarehouseAnalyticsConf : Azure SQL Data Warehouse
AnalyticsConf : Azure SQL Data Warehouse
 
StreamInsight - Analiza danych w ruchu
StreamInsight - Analiza danych w ruchuStreamInsight - Analiza danych w ruchu
StreamInsight - Analiza danych w ruchu
 
WHUG Azure HDInsight
WHUG Azure HDInsightWHUG Azure HDInsight
WHUG Azure HDInsight
 

SQL Server 2014: In-memory OLTP

  • 1. In-Memory OLTP Pierwsze wrażenia Wlodek Bielski BImasters / ACTION CE wlodzimierz.bielski@action.com.pl
  • 2. OLTP na rozdrożu… Klasyczna architektura • Wolne HDD, drogie SSD, tani RAM • Prędkośd CPU zamarła (od kilku lat 3-4 GHz) • Dosyd słaba skalowalnośd (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 ἑκατόν
  • 3. In-Memory OLTP • Zoptymalizowane pod pamięd 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
  • 4. Trwałe vs nietrwałe tabele • Non-durable – sesje ASP
  • 5. 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);
  • 6. Natywna kompilacja procedur • Do DLL • Przy każdym restarcie rekompilacja obiektów do DLL • C:Program FilesMicrosoft SQL Server MSSQL11.MSSQLSERVERMSSQLDATAxtp • XTP_P - procedury • XTP_T - tabele
  • 7. Tworzenie Memory-Optimized Table CREATE TABLE DDL Generowanie do C i kompilowanie Table DLL wyprodukowana Table DLL załadowana
  • 8. 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
  • 9. Transakcje • Semantyka podobna do READ_COMMITED_SNAPSHOT / SNAPSHOT • Wiersze są wersjonowane • Optymistyczna współbieżnośd • Brak locków, zamiast tego mechanizm wykrywania konfliktów • Pierwszy zapis wygrywa • Sugerowane krótkie transakcje
  • 10. 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
  • 11. Demo Nowa baza – tylko In-Memory
  • 13. Migracja do Memory-Based Tables • Configure Management Data Warehouse. • Configure data collection. • Generate AMR Reports to identify performance-critical tables and stored procedures.
  • 14. Migracja do Memory-Based Tables • Oszacowanie zapotrzebowania na RAM • Niewspierane elementy T-SQL • Partycjonowanie tabel
  • 15. Demo Istniejąca baza - dostosowanie
  • 16. Wnioski i rekomendacje • Odpowiedź na trend rynkowy • 80/20, względnie 95/5
  • 17. 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
  • 18. 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
  • 19.
  • 20. BImasters • Business Intelligence Consultant • Database Developer

Notes de l'éditeur

  1. http://www.sqlpassion.at/archive/2013/08/12/extreme-transaction-processing-xtp-hekaton-the-solution-to-everything/
  2. Historiahttp://research.microsoft.com/en-us/news/features/hekaton-122012.aspx
  3. http://blogs.msdn.com/b/arvindsh/archive/2013/07/03/sql-2014-in-memory-oltp-hekaton-training-videos-and-white-papers.aspx
  4. IDENTITY – workaround SEQUENCE, albo GUID jako clusteredkey
  5. IDENTITY – workaround SEQUENCE, albo GUID jako clusteredkey
  6. IDENTITY – workaround SEQUENCE, albo GUID jako clusteredkey
  7. http://www.benjaminnevarez.com/tag/in-memory-oltp/
  8. http://blogs.msdn.com/b/arvindsh/archive/2013/07/03/sql-2014-in-memory-oltp-hekaton-training-videos-and-white-papers.aspx
  9. SAP i Oracle zmuszają do zakupu nowego produktu.SQL Server – Hekaton wbudowany w serce platformy
  10. http://blogs.msdn.com/b/arvindsh/archive/2013/07/03/sql-2014-in-memory-oltp-hekaton-training-videos-and-white-papers.aspx