SlideShare a Scribd company logo
1 of 30
Donnez votre avis !
Depuis votre smartphone, sur :
http://notes.mstechdays.fr
De nombreux lots à gagner toutes les heures !!!
Claviers, souris et jeux Microsoft…
Merci de nous aider à améliorer les TechDays
http://notes.mstechdays.fr
La puissance du In-
Memory dans SQL Server :
Le moteur xVelocity pour la
BI et l'OLTP
Nadia Ben El Kadi
Microsoft
Code / Développement
Frédéric PICHAUT
Microsoft
Avec la collaboration d’Aurélien Koppel qui n’a pas pu assurer la
présentation.
• La tendance « In-Memory »
• Moteur(s) xVelocity
• BI
• OLTP
• Conclusion
• Questions
Sommaire
LATENDANCE « IN MEMORY »
Tendances - Processeurs
Moore’s Law: more
transistors and cores
Clock speeds not
increasing…
Perf/Clock (ILP) not
increasing
… due to power/heat limits
Chart reference
http://www.gotw.ca/publications/concurrency-ddj.htm
• La plupart des systèmes OLTP ont une taille de base< 1TB
• L’ensemble de travail est généralement plus petit
• Lorsque les bases actuelles ont été crées:
• La mémoire était chère
• La taille des données était > à la taille mémoire disponible
• Nécessitait des mécanismes complexes de pagination pour
persister les données.
• Nos clients demandent de faibles temps de latence à grande échelle.
Tendances – Charges OLTP
MOTEUR(S) XVELOCITY
• BI: xVelocity in-memory analytics engine
– PowerPivot (Excel 2010 et >)
– Excel 2013
– Analysis Services 2012 – Modèle tabulaire
• SQL DataWarehousing: xVelocity memory optimized
ColumnStore index
– ColumnStore Indexes
• SQL: xVelocity main memory optimized OLTP
– Projet Hekaton
Moteurs Xvelocity pour la BI et l’OLTP
• Algorithmes de compression (x10-x100)
– Dictionnaire des valeurs distinctes des colonnes
référencées dans un indexe Bitmap
– Autres
Compression
XVELOCITY EN BI
• Add- in Excel gratuit
• Analyse de volumes importants de données
– Permet de dépasser la limite de 1 Millions de lignes d’une feuille Excel traditionnelle
• Multi sources:
– Excel, CSV, ODBC, SSAS, Flux…
• Excel 2010
– Add-in gratuit téléchargeable
• Excel 2013
– Add-in inclus par défaut
PowerPivot & Excel 2013
• Version In-Memory d’Analysis Services
• Possibilité Import de fichiers PowerPivot
• BI Entreprise
– Sécurité
– Partitions
Analysis Services 2012 - Tabular
xVELOCITY CLUSTERED
COLUMNSTORE
• Exécution rapide pour le requêtes DW
– Environ 10x voir plus
• Réduction de l’espace
• Possibilité Insert, Update, Deleted
• Plus besoin d’autres indexes
• Plus de type de données supporté
– Supprime des limitations des non-clustered
columnstores de SQL 2012
Advantages des Clustered Columnstores
0.0
5.0
10.0
15.0
20.0
Table with
customary
indexing
Table with
customary
indexing
(page
compression)
Table with no
indexing
Table with no
indexing
(page
compression)
Table with
columnstore
index
Clustered
columnstore
Space Used in GB
101 million row table (Table + index space)
Structure d’une Partition CCSI
• CREATE CLUSTERED COLUMNSTORE
Organise et compresse le CS
• BULK INSERT: Crée de nouveaux CS
groupes
• INSERT: Les enregistrements sont placé
dans le RS (heap)
– Quand le RS est plein un nouveau CS groupe est
créé
• DELETE: Les enregistrements sont
marqués dans le Deleted Bitmap
• UPDATE: Delete plus Insert
Pas prévu pour les applications OLTP,
mais idéal pour les DW avec
principalement de la lecture!
Column Store (CS)
Deleted
Bitmap
Row Store (RS)
Partition
Commandes
CREATE TABLE <table> ( … )
CREATE CLUSTERED COLUMNSTORE INDEX <name> on <table>
Conversion de la table en Clustered Columnstores Index
Attention à la mémoire et au parallélisme (MAXDOP 1)
BULK INSERT, SELECT INTO <name> on <table>
Crée des groupes d’enregistrements de 1M de lignes
Si le dernier groupe n’est pas plein il restera dans le Row Store
INSERT/UPDATE
Stocke les lignes dans le Row Store
Tuple Mover
• Quand le RS contiens 1M de lignes, elles sont transférées dans un nouveau CS Row Group
• Par default toutes les 5 minutes
• Manuellement: ALTER INDEX <name> ON <table> REORGANIZE
Le partitionnement des Clustered Columnstores Indexes marche comme sur les autres tables
• SQL Server 2012
– Plusieurs limitations du moteur font que des
jointure ne s’excecute pas en Batch mais en
Row mode
• vNext
– Support de tous les types de JOIN
• OUTER JOIN
• Semi-join: IN, NOT IN
– UNION ALL
– Scalar aggregates
– Mixed mode plans,…
– Tous les types de données
• Sauf CLR, (n)varchar(max), varbinary(max)
BATCH MODE
xVELOCITY DANS SQL (projet
Hekaton)
• Un ajout au moteur SQL pour l’OLTP, optimisé pour une gestion en mémoire
– Support des propriétés ACID
– Le but de la V1 est spécifiquement orienté vers l’OLTP
• Complètement intégré au moteur SQL Server
– Un avantage sur nos compétiteurs
– Une approche Hybride entre le In-memory et le traditionnel
• Obtenir de la performance en éliminant le plus possible d’instruction
– Des indexes optimisés en mémoire
• Dissocié de la structure disque. Pas de B+tree, ni de buffer pool
– Plus de mécanisme de locks & latches
• Gestion de concurrence optimiste,
– L’optimisation faite lors de la compilation
• T-SQL compilé en code natif C
• Target:
– 2-5X d’amélioration en scalability
– Jusqu’a10X i d’amélioration en performance certains workloads.
Hekaton en bref
Hekaton Architecture Principles
20
SQL Server Integration
• Same manageability,
administration &
development experience
• Integrated queries &
transactions
• Integrated HA and
backup/restore
Main-Memory
Optimized
• Optimized for in-memory
data with full ACID
• No buffer pool, B-trees or
pages
• Indexes (Hash e.g.) exist
only in memory
• Stream-based storage
High Concurrency
• Multi-version optimistic
concurrency control
• Core engine uses lock-free
algorithms
• No lock manager, latches or
spinlocks
T-SQL Compiled to
Machine Code
• T-SQL compiled to machine
code via C code generator
and VC
• Invoking a procedure is just
a DLL entry-point
• Aggressive optimizations @
compile-time
Steadily declining memory
price, NVRAM
Many-core processorsStalling CPU clock rate TCO
Hardware trends Business
Hybrid engine and
integrated experience
High performance data
operations
Frictionless scale-up
Efficient, business-logic
processing
Customer
Benefits
HekatonArchiectureDrivers
Hekaton Architecture
Memory-optimized Table Filegroup
Data Filegroup
SQL Server.exe
Memory_optimized Tables & Indexes
TDS Handler and Session Management
Natively Compiled
SPs and Schema
Buffer Pool for Tables & Indexes
Proc/Plan cache for ad-hoc T-
SQL and SPs
Client App
Transaction Log
Query
InterOp
Non-durable Table
T1 T4T3T2
T1 T4T3T2
T1 T4T3T2
T1 T4T3T2
Tables
Indexes
Interpreter for TSQL, query plans,
expressions
T1 T4T3T2
T1 T4T3T2
Checkpoint & Recovery
Access Methods
Parser,
Catalog,
Algebrizer,
Optimizer
Hekaton
Compiler
Hekaton
Component
Key
Existing SQL
Component
Generated .dll
Hash
Indexes
Hekaton Architecture
SQL Server.exe
Buffer Pool for Tables & Indexes
Hekaton Engine :
Hash Indexes, Tables, Transactions, Multi-
versioning, Checkpoint/Recovery, …
Hkengine.dll=700 KB
TDS Handler and Session Management
Natively Compiled SPs
& Schema
Proc/Plan cache for ad-hoc T-SQL and
SPs
Client App
Query
Interop
Interpreter for TSQL, query
plans, expressions
Access Methods , LOBs, Lock Mgr, &
Storage
Parser, Catalo
g, Algebrizer,
Optimizer
Hekaton Compiler
& VC compiler
Transaction ManagerSecurity
Database Mgmt and Log
Hekaton
Component
Integration
changes
Backup/Restore/HADRON
Key
Existing SQL
Component
Checkpoint & Recovery
Generated .dll
sqlmin.dll=39 MB
SOS
Filestream Filegroup
Memory Optimized Table
Filegroup
Data Filegroup
No Hekaton Changes
Transaction Log
Additional Hekaton Log
records
Main-memory optimized indexes
MicrosoftConfidential
23
90,150 Susan Bogota
50, ∞ Jane Prague
100, 200 John Paris
70, 90 Susan Brussels
200, ∞ John Beijing
Timestamps NameChain ptrs City
Hash index on
City
B
P
Hash index on
Name
J
S
• Row can be part of multiple indexes, but there is only a single copy
• Each row version has a valid time range indicated by two timestamps
• A version is visible if transaction read time falls within the version’s valid time
• Garbage collection of versions: incremental, parallel, non-blocking, cooperative
Row format
Hekaton Resultats en single-core
Engine
Factor
Faster
Trans /
sec
SPs/sec CPI
Instructions
/ Tran
X Fewer
Instructions
SQL Server 1,420 6,970 2.4 973,000
SQL Server
Hekaton
48 67,800 334,000 1.6 30,300 32
• Test: Rejouer une trace des 3 plus fréquents updates du TPC-E
• Pas de communication client/server
• Pas d’I/O moteur sauf pour le transaction log
• Toutes les données en mémoire pour les deux tests
• Checkpoints off
Operation Factor faster (slower) than
regular SQL
Comments
Interop Native
Select count(*)1 (2.5) =
No clustered index scan in
Hekaton
Hash Join1 (1.3) N/A Uses index scan
Nested-loop Join1 4.0 N/A Probes into hash index
Single-row selects1 1.3 40 SP doing selects in loop
Single-row selects1 1.2 17
Native compiled SP calls SQL’s
rand()
Single-row updates1 N/A 10 SP doing update in loop
Bwin Session State 6 Version M4 Expectation for
OLTP workloads
Advantage of
pushing work to
SPs
Interop targets app
migration, not perf
(1) Table de 1 million d’enregistrements accédée en une requête ou SP
Hekaton Performances
Migration vers Hekaton
• Storage
ALTER DATABASE ContosoOLTP ADD FILEGROUP [ContosoOLTP_hk_fs_fg] CONTAINS MEMORY_OPTIMIZED_DATA;
ALTER DATABASE ContosoOLTP
ADD FILE (NAME = [ContosoOLTP_fs_dir],
FILENAME = 'H:MOUNTHEADDATACONTOSOOLTP_FS_DIR') to FILEGROUP [ContosoOLTP_hk_fs_fg];
• Table
CREATE TABLE Customers (
CustomerID nchar (5) NOT NULL PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT=100000),
CompanyName nvarchar (40) NOT NULL INDEX IX_CompanyName HASH(CompanyName) WITH (BUCKET_COUNT=65536),
ContactName nvarchar (30) NOT NULL ,
ContactTitle nvarchar (30) NOT NULL ,
Address nvarchar (60) NOT NULL ,
City nvarchar (15) NOT NULL INDEX IX_City HASH(City) WITH (BUCKET_COUNT=1024),
Region nvarchar (15) NOT NULL INDEX IX_Region HASH(Region) WITH (BUCKET_COUNT=1024),
PostalCode nvarchar (10) NOT NULL INDEX IX_PostalCode HASH(PostalCode) WITH (BUCKET_COUNT=100000),
Country nvarchar (15) NOT NULL ,
Phone nvarchar (24) NOT NULL ,
Fax nvarchar (24) NOT NULL
) WITH (MEMORY_OPTIMIZED=ON)
• Native procedure
CREATE PROC InsertCustomers (@CustomerID nchar(5),@CompanyName nvarchar(40),
@ContactName nvarchar(30),@ContactTitle nvarchar(30), @Address nvarchar(60),
@City nvarchar(15),@Region nvarchar(15),@PostalCode nvarchar(10),
@Country nvarchar(15),@Phone nvarchar(24),@Fax nvarchar(24))
WITH NATIVE_COMPILATION, SCHEMABINDING, execute as owner as
BEGIN ATOMIC WITH (TRANSACTION ISOLATION LEVEL = SNAPSHOT, language = 'english')
INSERT INTO [dbo].[Customers] VALUES(@CustomerID,@CompanyName,@ContactName,@ContactTitle,@Address,
@City,@Region,@PostalCode,@Country,@Phone,@Fax);
END
Poursuivons la conversation
Support Premier à votre écoute!
Nom du speaker
Fonction du speaker
Société du speaker
Stands F-G-H au Village Microsoft
Pour
candidater,rendez-voussurle
standServer&Cloud
UnlienpourtoutsavoirsurSQL
Server2012:
www.microsoft.fr/SQL
QUESTIONS
Formez-vous en ligne
Retrouvez nos évènements
Faites-vous accompagner
gratuitement
Essayer gratuitement nos
solutions IT
Retrouver nos experts
Microsoft
Pros de l’ITDéveloppeurs
www.microsoftvirtualacademy.comhttp://aka.ms/generation-app
http://aka.ms/evenements-
developpeurs
http://aka.ms/itcamps-france
Les accélérateurs
Windows Azure, Windows Phone,
Windows 8
http://aka.ms/telechargements
La Dev’Team sur MSDN
http://aka.ms/devteam
L’IT Team sur TechNet
http://aka.ms/itteam

More Related Content

More from Microsoft Technet France

Automatisez, visualisez et améliorez vos processus d’entreprise avec Nintex
Automatisez, visualisez et améliorez vos processus d’entreprise avec Nintex Automatisez, visualisez et améliorez vos processus d’entreprise avec Nintex
Automatisez, visualisez et améliorez vos processus d’entreprise avec Nintex Microsoft Technet France
 
Comment réussir votre déploiement de Windows 10
Comment réussir votre déploiement de Windows 10Comment réussir votre déploiement de Windows 10
Comment réussir votre déploiement de Windows 10Microsoft Technet France
 
Fusion, Acquisition - Optimisez la migration et la continuité des outils col...
 Fusion, Acquisition - Optimisez la migration et la continuité des outils col... Fusion, Acquisition - Optimisez la migration et la continuité des outils col...
Fusion, Acquisition - Optimisez la migration et la continuité des outils col...Microsoft Technet France
 
Wavestone déploie son portail Powell 365 en 5 semaines
Wavestone déploie son portail Powell 365 en 5 semainesWavestone déploie son portail Powell 365 en 5 semaines
Wavestone déploie son portail Powell 365 en 5 semainesMicrosoft Technet France
 
Retour d’expérience sur le monitoring et la sécurisation des identités Azure
Retour d’expérience sur le monitoring et la sécurisation des identités AzureRetour d’expérience sur le monitoring et la sécurisation des identités Azure
Retour d’expérience sur le monitoring et la sécurisation des identités AzureMicrosoft Technet France
 
Scénarios de mobilité couverts par Enterprise Mobility + Security
Scénarios de mobilité couverts par Enterprise Mobility + SecurityScénarios de mobilité couverts par Enterprise Mobility + Security
Scénarios de mobilité couverts par Enterprise Mobility + SecurityMicrosoft Technet France
 
SharePoint Framework : le développement SharePoint nouvelle génération
SharePoint Framework : le développement SharePoint nouvelle générationSharePoint Framework : le développement SharePoint nouvelle génération
SharePoint Framework : le développement SharePoint nouvelle générationMicrosoft Technet France
 
Stockage Cloud : il y en aura pour tout le monde
Stockage Cloud : il y en aura pour tout le mondeStockage Cloud : il y en aura pour tout le monde
Stockage Cloud : il y en aura pour tout le mondeMicrosoft Technet France
 
Bien appréhender le concept de Windows As a Service
Bien appréhender le concept de Windows As a ServiceBien appréhender le concept de Windows As a Service
Bien appréhender le concept de Windows As a ServiceMicrosoft Technet France
 
Protéger vos données avec le chiffrement dans Azure et Office 365
Protéger vos données avec le chiffrement dans Azure et Office 365Protéger vos données avec le chiffrement dans Azure et Office 365
Protéger vos données avec le chiffrement dans Azure et Office 365Microsoft Technet France
 
Protéger votre patrimoine informationnel dans un monde hybride avec Azure Inf...
Protéger votre patrimoine informationnel dans un monde hybride avec Azure Inf...Protéger votre patrimoine informationnel dans un monde hybride avec Azure Inf...
Protéger votre patrimoine informationnel dans un monde hybride avec Azure Inf...Microsoft Technet France
 
Comprendre la stratégie identité de Microsoft
Comprendre la stratégie identité de MicrosoftComprendre la stratégie identité de Microsoft
Comprendre la stratégie identité de MicrosoftMicrosoft Technet France
 
Vous avez dit « authentification sans mot de passe » : une illustration avec ...
Vous avez dit « authentification sans mot de passe » : une illustration avec ...Vous avez dit « authentification sans mot de passe » : une illustration avec ...
Vous avez dit « authentification sans mot de passe » : une illustration avec ...Microsoft Technet France
 
Déploiement hybride, la téléphonie dans le cloud
Déploiement hybride, la téléphonie dans le cloudDéploiement hybride, la téléphonie dans le cloud
Déploiement hybride, la téléphonie dans le cloudMicrosoft Technet France
 
Supervisez la qualité des appels Skype for Business Online à l'aide de Call Q...
Supervisez la qualité des appels Skype for Business Online à l'aide de Call Q...Supervisez la qualité des appels Skype for Business Online à l'aide de Call Q...
Supervisez la qualité des appels Skype for Business Online à l'aide de Call Q...Microsoft Technet France
 
SharePoint 2016 : architecture, déploiement et topologies hybrides
SharePoint 2016 : architecture, déploiement et topologies hybridesSharePoint 2016 : architecture, déploiement et topologies hybrides
SharePoint 2016 : architecture, déploiement et topologies hybridesMicrosoft Technet France
 
Gestion de Windows 10 et des applications dans l'entreprise moderne
Gestion de Windows 10 et des applications dans l'entreprise moderneGestion de Windows 10 et des applications dans l'entreprise moderne
Gestion de Windows 10 et des applications dans l'entreprise moderneMicrosoft Technet France
 
Office 365 dans votre Système d'Informations
Office 365 dans votre Système d'InformationsOffice 365 dans votre Système d'Informations
Office 365 dans votre Système d'InformationsMicrosoft Technet France
 
Retour d’expérience sur ‘TFS Online’ (VSTS) dans une solution industrielle (c...
Retour d’expérience sur ‘TFS Online’ (VSTS) dans une solution industrielle (c...Retour d’expérience sur ‘TFS Online’ (VSTS) dans une solution industrielle (c...
Retour d’expérience sur ‘TFS Online’ (VSTS) dans une solution industrielle (c...Microsoft Technet France
 

More from Microsoft Technet France (20)

Automatisez, visualisez et améliorez vos processus d’entreprise avec Nintex
Automatisez, visualisez et améliorez vos processus d’entreprise avec Nintex Automatisez, visualisez et améliorez vos processus d’entreprise avec Nintex
Automatisez, visualisez et améliorez vos processus d’entreprise avec Nintex
 
Comment réussir votre déploiement de Windows 10
Comment réussir votre déploiement de Windows 10Comment réussir votre déploiement de Windows 10
Comment réussir votre déploiement de Windows 10
 
Fusion, Acquisition - Optimisez la migration et la continuité des outils col...
 Fusion, Acquisition - Optimisez la migration et la continuité des outils col... Fusion, Acquisition - Optimisez la migration et la continuité des outils col...
Fusion, Acquisition - Optimisez la migration et la continuité des outils col...
 
Wavestone déploie son portail Powell 365 en 5 semaines
Wavestone déploie son portail Powell 365 en 5 semainesWavestone déploie son portail Powell 365 en 5 semaines
Wavestone déploie son portail Powell 365 en 5 semaines
 
Retour d’expérience sur le monitoring et la sécurisation des identités Azure
Retour d’expérience sur le monitoring et la sécurisation des identités AzureRetour d’expérience sur le monitoring et la sécurisation des identités Azure
Retour d’expérience sur le monitoring et la sécurisation des identités Azure
 
Scénarios de mobilité couverts par Enterprise Mobility + Security
Scénarios de mobilité couverts par Enterprise Mobility + SecurityScénarios de mobilité couverts par Enterprise Mobility + Security
Scénarios de mobilité couverts par Enterprise Mobility + Security
 
SharePoint Framework : le développement SharePoint nouvelle génération
SharePoint Framework : le développement SharePoint nouvelle générationSharePoint Framework : le développement SharePoint nouvelle génération
SharePoint Framework : le développement SharePoint nouvelle génération
 
Stockage Cloud : il y en aura pour tout le monde
Stockage Cloud : il y en aura pour tout le mondeStockage Cloud : il y en aura pour tout le monde
Stockage Cloud : il y en aura pour tout le monde
 
Bien appréhender le concept de Windows As a Service
Bien appréhender le concept de Windows As a ServiceBien appréhender le concept de Windows As a Service
Bien appréhender le concept de Windows As a Service
 
Protéger vos données avec le chiffrement dans Azure et Office 365
Protéger vos données avec le chiffrement dans Azure et Office 365Protéger vos données avec le chiffrement dans Azure et Office 365
Protéger vos données avec le chiffrement dans Azure et Office 365
 
Protéger votre patrimoine informationnel dans un monde hybride avec Azure Inf...
Protéger votre patrimoine informationnel dans un monde hybride avec Azure Inf...Protéger votre patrimoine informationnel dans un monde hybride avec Azure Inf...
Protéger votre patrimoine informationnel dans un monde hybride avec Azure Inf...
 
Comprendre la stratégie identité de Microsoft
Comprendre la stratégie identité de MicrosoftComprendre la stratégie identité de Microsoft
Comprendre la stratégie identité de Microsoft
 
Vous avez dit « authentification sans mot de passe » : une illustration avec ...
Vous avez dit « authentification sans mot de passe » : une illustration avec ...Vous avez dit « authentification sans mot de passe » : une illustration avec ...
Vous avez dit « authentification sans mot de passe » : une illustration avec ...
 
Sécurité des données
Sécurité des donnéesSécurité des données
Sécurité des données
 
Déploiement hybride, la téléphonie dans le cloud
Déploiement hybride, la téléphonie dans le cloudDéploiement hybride, la téléphonie dans le cloud
Déploiement hybride, la téléphonie dans le cloud
 
Supervisez la qualité des appels Skype for Business Online à l'aide de Call Q...
Supervisez la qualité des appels Skype for Business Online à l'aide de Call Q...Supervisez la qualité des appels Skype for Business Online à l'aide de Call Q...
Supervisez la qualité des appels Skype for Business Online à l'aide de Call Q...
 
SharePoint 2016 : architecture, déploiement et topologies hybrides
SharePoint 2016 : architecture, déploiement et topologies hybridesSharePoint 2016 : architecture, déploiement et topologies hybrides
SharePoint 2016 : architecture, déploiement et topologies hybrides
 
Gestion de Windows 10 et des applications dans l'entreprise moderne
Gestion de Windows 10 et des applications dans l'entreprise moderneGestion de Windows 10 et des applications dans l'entreprise moderne
Gestion de Windows 10 et des applications dans l'entreprise moderne
 
Office 365 dans votre Système d'Informations
Office 365 dans votre Système d'InformationsOffice 365 dans votre Système d'Informations
Office 365 dans votre Système d'Informations
 
Retour d’expérience sur ‘TFS Online’ (VSTS) dans une solution industrielle (c...
Retour d’expérience sur ‘TFS Online’ (VSTS) dans une solution industrielle (c...Retour d’expérience sur ‘TFS Online’ (VSTS) dans une solution industrielle (c...
Retour d’expérience sur ‘TFS Online’ (VSTS) dans une solution industrielle (c...
 

La puissance du in-memory dans SQL Server : Le moteur xVelocity pour la BI et l'OLTP

  • 1. Donnez votre avis ! Depuis votre smartphone, sur : http://notes.mstechdays.fr De nombreux lots à gagner toutes les heures !!! Claviers, souris et jeux Microsoft… Merci de nous aider à améliorer les TechDays http://notes.mstechdays.fr
  • 2. La puissance du In- Memory dans SQL Server : Le moteur xVelocity pour la BI et l'OLTP Nadia Ben El Kadi Microsoft Code / Développement Frédéric PICHAUT Microsoft Avec la collaboration d’Aurélien Koppel qui n’a pas pu assurer la présentation.
  • 3. • La tendance « In-Memory » • Moteur(s) xVelocity • BI • OLTP • Conclusion • Questions Sommaire
  • 4. LATENDANCE « IN MEMORY »
  • 5. Tendances - Processeurs Moore’s Law: more transistors and cores Clock speeds not increasing… Perf/Clock (ILP) not increasing … due to power/heat limits Chart reference http://www.gotw.ca/publications/concurrency-ddj.htm
  • 6. • La plupart des systèmes OLTP ont une taille de base< 1TB • L’ensemble de travail est généralement plus petit • Lorsque les bases actuelles ont été crées: • La mémoire était chère • La taille des données était > à la taille mémoire disponible • Nécessitait des mécanismes complexes de pagination pour persister les données. • Nos clients demandent de faibles temps de latence à grande échelle. Tendances – Charges OLTP
  • 8. • BI: xVelocity in-memory analytics engine – PowerPivot (Excel 2010 et >) – Excel 2013 – Analysis Services 2012 – Modèle tabulaire • SQL DataWarehousing: xVelocity memory optimized ColumnStore index – ColumnStore Indexes • SQL: xVelocity main memory optimized OLTP – Projet Hekaton Moteurs Xvelocity pour la BI et l’OLTP
  • 9. • Algorithmes de compression (x10-x100) – Dictionnaire des valeurs distinctes des colonnes référencées dans un indexe Bitmap – Autres Compression
  • 11. • Add- in Excel gratuit • Analyse de volumes importants de données – Permet de dépasser la limite de 1 Millions de lignes d’une feuille Excel traditionnelle • Multi sources: – Excel, CSV, ODBC, SSAS, Flux… • Excel 2010 – Add-in gratuit téléchargeable • Excel 2013 – Add-in inclus par défaut PowerPivot & Excel 2013
  • 12. • Version In-Memory d’Analysis Services • Possibilité Import de fichiers PowerPivot • BI Entreprise – Sécurité – Partitions Analysis Services 2012 - Tabular
  • 14. • Exécution rapide pour le requêtes DW – Environ 10x voir plus • Réduction de l’espace • Possibilité Insert, Update, Deleted • Plus besoin d’autres indexes • Plus de type de données supporté – Supprime des limitations des non-clustered columnstores de SQL 2012 Advantages des Clustered Columnstores 0.0 5.0 10.0 15.0 20.0 Table with customary indexing Table with customary indexing (page compression) Table with no indexing Table with no indexing (page compression) Table with columnstore index Clustered columnstore Space Used in GB 101 million row table (Table + index space)
  • 15. Structure d’une Partition CCSI • CREATE CLUSTERED COLUMNSTORE Organise et compresse le CS • BULK INSERT: Crée de nouveaux CS groupes • INSERT: Les enregistrements sont placé dans le RS (heap) – Quand le RS est plein un nouveau CS groupe est créé • DELETE: Les enregistrements sont marqués dans le Deleted Bitmap • UPDATE: Delete plus Insert Pas prévu pour les applications OLTP, mais idéal pour les DW avec principalement de la lecture! Column Store (CS) Deleted Bitmap Row Store (RS) Partition
  • 16. Commandes CREATE TABLE <table> ( … ) CREATE CLUSTERED COLUMNSTORE INDEX <name> on <table> Conversion de la table en Clustered Columnstores Index Attention à la mémoire et au parallélisme (MAXDOP 1) BULK INSERT, SELECT INTO <name> on <table> Crée des groupes d’enregistrements de 1M de lignes Si le dernier groupe n’est pas plein il restera dans le Row Store INSERT/UPDATE Stocke les lignes dans le Row Store Tuple Mover • Quand le RS contiens 1M de lignes, elles sont transférées dans un nouveau CS Row Group • Par default toutes les 5 minutes • Manuellement: ALTER INDEX <name> ON <table> REORGANIZE Le partitionnement des Clustered Columnstores Indexes marche comme sur les autres tables
  • 17. • SQL Server 2012 – Plusieurs limitations du moteur font que des jointure ne s’excecute pas en Batch mais en Row mode • vNext – Support de tous les types de JOIN • OUTER JOIN • Semi-join: IN, NOT IN – UNION ALL – Scalar aggregates – Mixed mode plans,… – Tous les types de données • Sauf CLR, (n)varchar(max), varbinary(max) BATCH MODE
  • 18. xVELOCITY DANS SQL (projet Hekaton)
  • 19. • Un ajout au moteur SQL pour l’OLTP, optimisé pour une gestion en mémoire – Support des propriétés ACID – Le but de la V1 est spécifiquement orienté vers l’OLTP • Complètement intégré au moteur SQL Server – Un avantage sur nos compétiteurs – Une approche Hybride entre le In-memory et le traditionnel • Obtenir de la performance en éliminant le plus possible d’instruction – Des indexes optimisés en mémoire • Dissocié de la structure disque. Pas de B+tree, ni de buffer pool – Plus de mécanisme de locks & latches • Gestion de concurrence optimiste, – L’optimisation faite lors de la compilation • T-SQL compilé en code natif C • Target: – 2-5X d’amélioration en scalability – Jusqu’a10X i d’amélioration en performance certains workloads. Hekaton en bref
  • 20. Hekaton Architecture Principles 20 SQL Server Integration • Same manageability, administration & development experience • Integrated queries & transactions • Integrated HA and backup/restore Main-Memory Optimized • Optimized for in-memory data with full ACID • No buffer pool, B-trees or pages • Indexes (Hash e.g.) exist only in memory • Stream-based storage High Concurrency • Multi-version optimistic concurrency control • Core engine uses lock-free algorithms • No lock manager, latches or spinlocks T-SQL Compiled to Machine Code • T-SQL compiled to machine code via C code generator and VC • Invoking a procedure is just a DLL entry-point • Aggressive optimizations @ compile-time Steadily declining memory price, NVRAM Many-core processorsStalling CPU clock rate TCO Hardware trends Business Hybrid engine and integrated experience High performance data operations Frictionless scale-up Efficient, business-logic processing Customer Benefits HekatonArchiectureDrivers
  • 21. Hekaton Architecture Memory-optimized Table Filegroup Data Filegroup SQL Server.exe Memory_optimized Tables & Indexes TDS Handler and Session Management Natively Compiled SPs and Schema Buffer Pool for Tables & Indexes Proc/Plan cache for ad-hoc T- SQL and SPs Client App Transaction Log Query InterOp Non-durable Table T1 T4T3T2 T1 T4T3T2 T1 T4T3T2 T1 T4T3T2 Tables Indexes Interpreter for TSQL, query plans, expressions T1 T4T3T2 T1 T4T3T2 Checkpoint & Recovery Access Methods Parser, Catalog, Algebrizer, Optimizer Hekaton Compiler Hekaton Component Key Existing SQL Component Generated .dll Hash Indexes
  • 22. Hekaton Architecture SQL Server.exe Buffer Pool for Tables & Indexes Hekaton Engine : Hash Indexes, Tables, Transactions, Multi- versioning, Checkpoint/Recovery, … Hkengine.dll=700 KB TDS Handler and Session Management Natively Compiled SPs & Schema Proc/Plan cache for ad-hoc T-SQL and SPs Client App Query Interop Interpreter for TSQL, query plans, expressions Access Methods , LOBs, Lock Mgr, & Storage Parser, Catalo g, Algebrizer, Optimizer Hekaton Compiler & VC compiler Transaction ManagerSecurity Database Mgmt and Log Hekaton Component Integration changes Backup/Restore/HADRON Key Existing SQL Component Checkpoint & Recovery Generated .dll sqlmin.dll=39 MB SOS Filestream Filegroup Memory Optimized Table Filegroup Data Filegroup No Hekaton Changes Transaction Log Additional Hekaton Log records
  • 23. Main-memory optimized indexes MicrosoftConfidential 23 90,150 Susan Bogota 50, ∞ Jane Prague 100, 200 John Paris 70, 90 Susan Brussels 200, ∞ John Beijing Timestamps NameChain ptrs City Hash index on City B P Hash index on Name J S • Row can be part of multiple indexes, but there is only a single copy • Each row version has a valid time range indicated by two timestamps • A version is visible if transaction read time falls within the version’s valid time • Garbage collection of versions: incremental, parallel, non-blocking, cooperative Row format
  • 24. Hekaton Resultats en single-core Engine Factor Faster Trans / sec SPs/sec CPI Instructions / Tran X Fewer Instructions SQL Server 1,420 6,970 2.4 973,000 SQL Server Hekaton 48 67,800 334,000 1.6 30,300 32 • Test: Rejouer une trace des 3 plus fréquents updates du TPC-E • Pas de communication client/server • Pas d’I/O moteur sauf pour le transaction log • Toutes les données en mémoire pour les deux tests • Checkpoints off
  • 25. Operation Factor faster (slower) than regular SQL Comments Interop Native Select count(*)1 (2.5) = No clustered index scan in Hekaton Hash Join1 (1.3) N/A Uses index scan Nested-loop Join1 4.0 N/A Probes into hash index Single-row selects1 1.3 40 SP doing selects in loop Single-row selects1 1.2 17 Native compiled SP calls SQL’s rand() Single-row updates1 N/A 10 SP doing update in loop Bwin Session State 6 Version M4 Expectation for OLTP workloads Advantage of pushing work to SPs Interop targets app migration, not perf (1) Table de 1 million d’enregistrements accédée en une requête ou SP Hekaton Performances
  • 26. Migration vers Hekaton • Storage ALTER DATABASE ContosoOLTP ADD FILEGROUP [ContosoOLTP_hk_fs_fg] CONTAINS MEMORY_OPTIMIZED_DATA; ALTER DATABASE ContosoOLTP ADD FILE (NAME = [ContosoOLTP_fs_dir], FILENAME = 'H:MOUNTHEADDATACONTOSOOLTP_FS_DIR') to FILEGROUP [ContosoOLTP_hk_fs_fg]; • Table CREATE TABLE Customers ( CustomerID nchar (5) NOT NULL PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT=100000), CompanyName nvarchar (40) NOT NULL INDEX IX_CompanyName HASH(CompanyName) WITH (BUCKET_COUNT=65536), ContactName nvarchar (30) NOT NULL , ContactTitle nvarchar (30) NOT NULL , Address nvarchar (60) NOT NULL , City nvarchar (15) NOT NULL INDEX IX_City HASH(City) WITH (BUCKET_COUNT=1024), Region nvarchar (15) NOT NULL INDEX IX_Region HASH(Region) WITH (BUCKET_COUNT=1024), PostalCode nvarchar (10) NOT NULL INDEX IX_PostalCode HASH(PostalCode) WITH (BUCKET_COUNT=100000), Country nvarchar (15) NOT NULL , Phone nvarchar (24) NOT NULL , Fax nvarchar (24) NOT NULL ) WITH (MEMORY_OPTIMIZED=ON) • Native procedure CREATE PROC InsertCustomers (@CustomerID nchar(5),@CompanyName nvarchar(40), @ContactName nvarchar(30),@ContactTitle nvarchar(30), @Address nvarchar(60), @City nvarchar(15),@Region nvarchar(15),@PostalCode nvarchar(10), @Country nvarchar(15),@Phone nvarchar(24),@Fax nvarchar(24)) WITH NATIVE_COMPILATION, SCHEMABINDING, execute as owner as BEGIN ATOMIC WITH (TRANSACTION ISOLATION LEVEL = SNAPSHOT, language = 'english') INSERT INTO [dbo].[Customers] VALUES(@CustomerID,@CompanyName,@ContactName,@ContactTitle,@Address, @City,@Region,@PostalCode,@Country,@Phone,@Fax); END
  • 27. Poursuivons la conversation Support Premier à votre écoute! Nom du speaker Fonction du speaker Société du speaker Stands F-G-H au Village Microsoft
  • 30. Formez-vous en ligne Retrouvez nos évènements Faites-vous accompagner gratuitement Essayer gratuitement nos solutions IT Retrouver nos experts Microsoft Pros de l’ITDéveloppeurs www.microsoftvirtualacademy.comhttp://aka.ms/generation-app http://aka.ms/evenements- developpeurs http://aka.ms/itcamps-france Les accélérateurs Windows Azure, Windows Phone, Windows 8 http://aka.ms/telechargements La Dev’Team sur MSDN http://aka.ms/devteam L’IT Team sur TechNet http://aka.ms/itteam

Editor's Notes

  1. Notation
  2. Intro code / dev
  3. .
  4. While Hekaton’s memory optimized tables must fully fit into main memory, the database as a whole need not. These in-memory tables can be used in queries just as any regular table, however providing optimized and contention-free data operation at this stage. After migrating to optimized in-memory storage, stored procedures operating on these tables can be transformed into natively compiled stored procedures, dramatically increasing the processing speed of in-database logic. Recompiling these stored procedures is, again, done through T-SQL, as shown below: