SlideShare une entreprise Scribd logo
1  sur  45
Deep Dive Performance
le In-Memory dans SQL
Server
Aurélien Koppel
Resp. Tech. de compte (ADM)
Microsoft France

Frédéric Pichaut
Senior Escalation Egineer
Microsoft France
Bases de données/Data management
Equipe Microsoft Premier - ADM
Développez, déployez et supportez
plus efficacement vos applications
Bonnes
pratiques ALM

Transferts
d’expertises

Accédez directement aux experts
Microsoft et groupes produits Corp.

Améliorez la qualité de
vos développements

Réduisez les risques et coûts
des projets applicatifs
Donnez votre avis !
Depuis votre smartphone sur :
http://notes.mstechdays.fr
De nombreux lots à gagner toute les heures !!!
Claviers, souris et jeux Microsoft…
Merci de nous aider à améliorer les Techdays !

#mstechdays

Bases de données/ Data management
Sommaire
• Introduction au In-Memory dans SQL
Server
• Les ColumnStore Indexes (v2)
• Le In-Memory OLTP (Hekaton)
• Conclusion
• Questions/Réponses
#mstechdays

Bases de données/ Data management
LE IN-MEMORY DANS SQL SERVER
2014

#mstechdays

Bases de données/ Data management
Les nouveaux serveurs aujourd’hui
• Server: HP DL580G7 (Environ $50K)
• CPU :
• 4-socket running Intel Westmere-EX
• 10 cores per socket,
• 2 threads per core
• 80 logical processors
• Memoire: 256GB (extensible à 2 TB)
• Disques: Controller, disk enclosure, and
25 x 146GB SAS 15K rpm disks
#mstechdays

Bases de données/ Data management
Le In-Memory dans SQL Server
• 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 Server 2012 et >)
• SQL: xVelocity main memory optimized OLTP
– Projet Hekaton (SQL Server 2014)
#mstechdays

Bases de données/ Data management
LES COLUMN STORE INDEXES (V2)

#mstechdays

Bases de données/ Data management
Qu’est ce qu’un CSI?
• ColumnStore Index
• Nouveau type d’index introduit avec SQL Server 2012
• Membre de la famille “xVelocity”
• Stockage:
– En mémoire
– En colonne
– Compressé

• Syntaxe de création plus simple que pour des autres
types d’indexes: Pas réservé aux « Experts »!
#mstechdays

Bases de données/ Data management
Fonctionnement des ColumnStore Indexes
Stockage en ligne
« Traditionnel »

Stockage en colonnes
C1

C
2

C3

C4

C5

Bénéfices:
•

Améliore les calculs d’agrégats:

•

Pas besoin de parcourir toutes les
pages

•

Améliore la compression:

…

Les données d’une même colonne ont
plus de probabilité d’être redondantes
•

Réduit les I/O:
Ne va chercher que les colonnes
nécessaires

#mstechdays

Bases de données/ Data management
Pourquoi utiliser les Columnstore Indexes?
•

Optimiser l’accès à de gros entrepôts de données (pas OLTP)
– Schémas en étoile, tables de fait volumineuses
– Meilleur Temps de réponse

•

Transparent pour l’application:
–
–
–
–

•

Requêtes
Backup and restore
Mirroring, log shipping
SSMS, etc.

Réduction de l’effort de modélisation de la base de données
– Moins d’indexes à créer et maintenir
– Réduit le besoin d’agrégats pré-calculés ou de vues indexées
– Peut dans certains cas éviter la création de cubes OLAP (Si la performance
est le critère principal)
#mstechdays

Bases de données/ Data management
Nouveauté SQL Server 2014: Clustered Columnstore
Indexes
•
•

Avantages des clustered index:
– Economisent de la place
Etudier la migration de vos tables en CCSI ou
l’utilisation des CCSI pour les nouvelles tables de
vos DWH

20.0

Space Used in GB (101 million row
table)

15.0
10.0

91%
savings

5.0

•

•

Support de nouveaux types de données
• High precision decimal, datatypeoffset,
binary, varbinary, uniqueidentifier, etc.
• Types non supportés: spatial, XML, max
types

0.0

Requêtes DML et DDL supportées
– Possibilité de faire évoluer le schéma de la
Bases de données/ Data management
#mstechdays
table

** Space Used = Table space + Index space
C1

C2

C3

C4

C5

•
•

C6

DML (update, delete, insert) -> Utilisent le delta store
INSERT Values
–

C1

C2

•
C3

C4

C5

C6

•

•

#mstechdays

Si batch < 100k, insert dans le delta store, sinon columnstore

SELECT
–

•

DELETE suivi d’un INSERT.

BULK INSERT
–

•

Opération logique
Donnée effacée physiquement après REBUILD

UPDATE
–

•

Toujours dans le delta store

DELETE
–
–

tuple mover

Column
Store

Delta (row)
store

Nouveauté SQL Server 2014: Updatable Columnstore
Index

Unit les données des Column et Row stores - internal UNION
operation.

“Tuple mover” convertit les données en mode Column
quand le row group est plein (~1M of rows)
REORGANIZE statement -> convertit le delta store en
column store.

Bases de données/ Data management
Nouveauté SQL Server 2014: Performance
Améliorée
•

Mode mixte d’exécution de requête (row et
batch)
–

•

La présence d’opérateurs de type row n’empêche pas les
autres opérateurs d’être exécutés en mode batch.

De nouveaux opérateurs « batch »:
–
–
–

joins (inner, outer)
partial/global aggregates w/ and w/o group by
union all operator

Note:
•

Les agrégats de type “Distinct” et les opérateurs “UNION” sont toujours
exécutés en row mode.

#mstechdays

Bases de données/ Data management
DÉMO COLUMN STORE
INDEXES

#mstechdays

Bases de données/ Data management
Demo Clustered ColumnStore Indexes

Dim
Date

Fact
Internet
Sales

Dim
Customer

50 Millions de lignes

#mstechdays

Bases de données/ Data management

Dim
Geography
Demo Clustered ColumnStore Indexes

#mstechdays

Bases de données/ Data management
LE IN-MEMORY OLTP (HEKATON)

#mstechdays

Bases de données/ Data management
Hekaton: “In-Memory OLTP”
• Le “In-Memory OLTP” est l’une des innovations autour de
SQL Server 2014 pour titrer le mieux parties de la mémoire
et des processeurs
• Des éléments spécialisés pour chaque type de workloads:
• Column store indexes for SQL Server 2012/2014 and
PDW
• In-Memory Analytics – Power Pivot for Excel 2010
• App Fabric Cache - mid tier caching solution
• Stream Insight : Real time data stream analytics
•
#mstechdays In-Memory OLTP for SQL Server 2014
Bases de données/ Data management
Les Mythes sur le In-Memory OLTP
1. SQL Server In-Memory OLTP est une réponse aux
offres de nos compétiteurs
2. In-Memory OLTP c’est comme un DBCC PINTABLE
3. In-Memory OLTP est un nouveau produit séparé
4. On peut passer une application au In-Memory OLTP
sans aucun changement
5. Comme les tables sont en mémoire, les données ne
sont pas durables ou disponibles pour la haute dispo.
Tout est perdu après un crash
#mstechdays

Bases de données/ Data management
Mythe #1
• SQL Server In-Memory OLTP est une
réponse aux offres de nos compétiteurs
Le projet “Hekaton” a commencé il
y plus de 4 ans en réponse aux
besoins business et évolutions
hardware.
Pur produit de Microsoft Research
#mstechdays

Bases de données/ Data management
Mythe #2
• In-Memory OLTP c’est comme un DBCC
PINTABLE

In-memory OLTP est un nouveau design pour
optimiser les opérations sur les données en
mémoire.
Il n’y a pas de pages ou buffer pool pour les
memory-optimized tables.
#mstechdays

Bases de données/ Data management
Mythe #3
• In-Memory OLTP est un nouveau produit séparé

In-Memory OLTP complétement
intégré à SQL Server 2014
#mstechdays

Bases de données/ Data management
Hekaton Architecture
Client App

TDS Handler and Session Management

Natively Compiled
SPs and Schema

Parser,
Catalog,
Optimizer

Native
Compiler

T-SQL Query Execution

Query
Interop

T
1

T
2

T
3

Tables
Indexes

T
1
Memory Optimized Data
Filegroup

#mstechdays

Buffer Pool for Tables & Indexes

SQL Server.exe

Memory Optimized Tables & Indexes

T
2

T
3

Transaction Log
Bases de données/ Data management

T
1

T
2

Data Filegroup

T
3

Key
Existing
SQL
Componen
In-mem
t
OLTP
Componen
t
Generated
.dll
Mythe #4
• On peut passer un application au InMemory OLTP sans aucun changement

Il y a quelques modifications à faire, au
minimum dans le schéma.
Modifications plus faciles si on utilise
déjà des Stored Procedures
#mstechdays

Bases de données/ Data management
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 ,
Ville nvarchar (15) NOT NULL INDEX IX_Ville HASH(Ville) 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),
@Ville 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,
@Ville,@Region,@PostalCode,@Country,@Phone,@Fax);
END

#mstechdays

Bases de données/ Data management
Mythe #5
• Comme les tables sont en mémoire, les
données ne sont pas durables ou disponibles
pour la haute dispo. Tout est perdu après un
crash
Le In-Memory OLTP est compatible avec les composants
HA, incluant AlwaysOn
Les données sont résidentes sur disque, et survivent à un
crash.
On peut aussi travailler avec des tables volatiles
#mstechdays
Bases de données/ Data management
Concurrence d’accès

#mstechdays

Bases de données/ Data management
Hash Indexes
Hash index with (bucket_count=8):
Hash mapping:

f(Jean)
Array of
8-byte
Memory
pointers

#mstechdays

f(Jules)
f(Laura)

0
1
2
3
4
5
6
7

f(Paris)
f(Toulon), f(Nice)

Bases de données/ Data management

Fonction de hashing f:
• Mape les valeurs aux buckets
• Dans le système

Hash
Collisions
Memory Optimized Tables et Indexes
Timestamps
Hash index
Nom

f(Jean)

50, ∞

Pointeurs

Nom

Ville
Hash index
Ville

Jean

Paris
f(Paris)

f(Laura)
f(Toulon)

90, ∞

#mstechdays

Laura

Toulon

Bases de données/ Data management
Memory Optimized Tables et Indexes
Timestamps
Hash index
Nom

f(Jules)

Pointeurs

50, ∞

Nom

Ville
Hash index
Ville

Jean

Paris

f(Paris)

100, ∞

Jules

Paris

90, ∞

Laura

Toulon

T100: INSERT (Jules, Paris)
#mstechdays

Bases de données/ Data management
Memory Optimized Tables et Indexes
Timestamps
Hash index
Nom

Pointeurs

50, ∞

Nom

Ville
Hash index
Ville

Jean

Paris

100, ∞

Jules

Paris

90, ∞
90, 150

Laura

Toulon

T150: DELETE (Laura, Toulon)
#mstechdays

Bases de données/ Data management
Memory Optimized Tables et Indexes
Timestamps
Hash index
Nom

f(Jules)

Pointeurs

50, ∞
100, ∞
100, 200

Nom

Ville
Hash index
Ville

Jean

Jules

Paris

Paris
f(Nice)

200, ∞

90, 150

Jules

Laura

Nice

Toulon

T200: UPDATE (Jules, Paris) to (Jules, Nice)
#mstechdays

Bases de données/ Data management
Memory Optimized Tables et Indexes
Timestamps
Hash index
Nom

f(Jean)
f(Jules)

Pointeurs

50, ∞

Nom

Ville
Hash index
Ville

Jean

Paris

f(Paris)
100, 200

Jules

Paris
f(Nice)

200, ∞

90, 150

Jules

Laura

Nice

Toulon

T250: Garbage collection
#mstechdays

Bases de données/ Data management
BEGIN

AMR
• Analysis, Migrate and Report
Tool
• Configure Management Data
Warehouse,
• Configure Data Collection, and
run AMR Reports to identify
performance hotspots

Establish System
Performance Baseline

Run workload

Is MDW Set up?

Run AMR Reports

Configure Management
Data Warehouse

Migrate

Configure Data
Collection

Run Workload and
collect performance
metrics

Compare to Baseline
and set as new baseline

COMPLETE

#mstechdays

Bases de données/ Data management
AMR Report
• Table Analysis
• Usage Analysis
• Contention
analysis
• Store Procedure
Analysis
• Usage Analysis

#mstechdays

Bases de données/ Data management
Limitations dans SQL 2014 (V1)
• Optimisation pour l’OLTP
– No DML triggers
– No XML and no CLR data types

• Optimisation in-memory
– Rows are at most 8060 bytes – no off row data
– No Large Object (LOB) types like varchar(max)

• Limitations de schéma
– No FOREIGN KEY and no CHECK constraints
– No IDENTITY
– No schema changes (ALTER TABLE) – need to drop/recreate
table
– No add/remove index – need to drop/recreate table
#mstechdays

Bases de données/ Data management
Hekaton en bref
•

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

#mstechdays

Bases de données/ Data management
DEMO HEKATON

#mstechdays

Bases de données/ Data management
CONCLUSION

#mstechdays

Bases de données/ Data management
Le In-Memory dans SQL Server
• 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 Server 2012 et >)
• SQL: xVelocity main memory optimized OLTP
– Projet Hekaton (SQL Server 2014)
#mstechdays

Bases de données/ Data management
Ressources
Sessions Data Insights pour les professionnels de l’IT
http://aka.ms/itprosql
Sessions Data Insights pour les décideurs informatiques
http://aka.ms/itdmsql
Business Accelerator, un programme sur mesure pour les éditeurs de logiciel
http://aka.ms/isvbusacc
Un client prêt à témoigner ? Une belle histoire à partager ? Un Nokia Lumia à
gagner !
http://aka.ms/cloudosref
#mstechdays

Bases de données/ Data management
Digital is
business

Contenu connexe

Tendances

[JSS2015] 3 DMV's pour evaluer les indexs
[JSS2015] 3 DMV's pour evaluer les indexs[JSS2015] 3 DMV's pour evaluer les indexs
[JSS2015] 3 DMV's pour evaluer les indexsGUSS
 
Jss 2015 - Microsoft Stream analytics
Jss 2015 -  Microsoft Stream analyticsJss 2015 -  Microsoft Stream analytics
Jss 2015 - Microsoft Stream analyticsGeorges Damien
 
Windows Azure, plongée en eaux profondes (300)
Windows Azure, plongée en eaux profondes (300)Windows Azure, plongée en eaux profondes (300)
Windows Azure, plongée en eaux profondes (300)Microsoft Décideurs IT
 
Windows 8, Server 2012 et office 2013
Windows 8, Server 2012 et office 2013Windows 8, Server 2012 et office 2013
Windows 8, Server 2012 et office 2013Patricia NENZI
 
Présentation Ippon DGA Liferay Symposium 2011
Présentation Ippon DGA Liferay Symposium 2011Présentation Ippon DGA Liferay Symposium 2011
Présentation Ippon DGA Liferay Symposium 2011Ippon
 
L'IBM i est une plateforme en évolution : innovations de la version 7.3
L'IBM i est une plateforme en évolution : innovations de la version 7.3L'IBM i est une plateforme en évolution : innovations de la version 7.3
L'IBM i est une plateforme en évolution : innovations de la version 7.3Solutions IT et Business
 
Tp Sql Server Integration Services 2008
Tp  Sql Server Integration Services  2008Tp  Sql Server Integration Services  2008
Tp Sql Server Integration Services 2008Abdelouahed Abdou
 
Ce que tout dba doit savoir sur la configuration et l'optimisation de SQL Ser...
Ce que tout dba doit savoir sur la configuration et l'optimisation de SQL Ser...Ce que tout dba doit savoir sur la configuration et l'optimisation de SQL Ser...
Ce que tout dba doit savoir sur la configuration et l'optimisation de SQL Ser...serge luca
 
Révolution dans l'analytique et les entrepôts de données à découvrir avec Intel
Révolution dans l'analytique et les entrepôts de données à découvrir avec IntelRévolution dans l'analytique et les entrepôts de données à découvrir avec Intel
Révolution dans l'analytique et les entrepôts de données à découvrir avec IntelMicrosoft Décideurs IT
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Microsoft
 
[Café techno] Optimiser le coût de vos données avec DB2 distribué
[Café techno] Optimiser le coût de vos données avec DB2 distribué[Café techno] Optimiser le coût de vos données avec DB2 distribué
[Café techno] Optimiser le coût de vos données avec DB2 distribuéGroupe D.FI
 
MySQL 5, un SGBDR mature ?
MySQL 5, un SGBDR mature ?MySQL 5, un SGBDR mature ?
MySQL 5, un SGBDR mature ?Olivier DASINI
 
Les bonnes pratiques pour migrer d'Oracle vers Postgres
Les bonnes pratiques pour migrer d'Oracle vers PostgresLes bonnes pratiques pour migrer d'Oracle vers Postgres
Les bonnes pratiques pour migrer d'Oracle vers PostgresEDB
 
Nouveautés de DataDrill EXPRESS 3.8 & 4.0
Nouveautés de DataDrill EXPRESS 3.8 & 4.0Nouveautés de DataDrill EXPRESS 3.8 & 4.0
Nouveautés de DataDrill EXPRESS 3.8 & 4.0Olivier Pinette
 
SSAS 2012 : Multidimensionnel et tabulaire au banc d'essai
SSAS 2012 : Multidimensionnel et tabulaire au banc d'essaiSSAS 2012 : Multidimensionnel et tabulaire au banc d'essai
SSAS 2012 : Multidimensionnel et tabulaire au banc d'essaiMicrosoft Technet France
 
Sql Server Reporting Services
Sql Server Reporting ServicesSql Server Reporting Services
Sql Server Reporting ServicesBrahim Belghmi
 
Livre blanc Windows Azure et les éditeurs de logiciel
Livre blanc Windows Azure et les éditeurs de logicielLivre blanc Windows Azure et les éditeurs de logiciel
Livre blanc Windows Azure et les éditeurs de logicielMicrosoft Décideurs IT
 

Tendances (20)

[JSS2015] 3 DMV's pour evaluer les indexs
[JSS2015] 3 DMV's pour evaluer les indexs[JSS2015] 3 DMV's pour evaluer les indexs
[JSS2015] 3 DMV's pour evaluer les indexs
 
Jss 2015 - Microsoft Stream analytics
Jss 2015 -  Microsoft Stream analyticsJss 2015 -  Microsoft Stream analytics
Jss 2015 - Microsoft Stream analytics
 
Windows Azure, plongée en eaux profondes (300)
Windows Azure, plongée en eaux profondes (300)Windows Azure, plongée en eaux profondes (300)
Windows Azure, plongée en eaux profondes (300)
 
Windows 8, Server 2012 et office 2013
Windows 8, Server 2012 et office 2013Windows 8, Server 2012 et office 2013
Windows 8, Server 2012 et office 2013
 
Présentation Ippon DGA Liferay Symposium 2011
Présentation Ippon DGA Liferay Symposium 2011Présentation Ippon DGA Liferay Symposium 2011
Présentation Ippon DGA Liferay Symposium 2011
 
L'IBM i est une plateforme en évolution : innovations de la version 7.3
L'IBM i est une plateforme en évolution : innovations de la version 7.3L'IBM i est une plateforme en évolution : innovations de la version 7.3
L'IBM i est une plateforme en évolution : innovations de la version 7.3
 
Haute disponibilité jss2012
Haute disponibilité jss2012Haute disponibilité jss2012
Haute disponibilité jss2012
 
Tp Sql Server Integration Services 2008
Tp  Sql Server Integration Services  2008Tp  Sql Server Integration Services  2008
Tp Sql Server Integration Services 2008
 
Ce que tout dba doit savoir sur la configuration et l'optimisation de SQL Ser...
Ce que tout dba doit savoir sur la configuration et l'optimisation de SQL Ser...Ce que tout dba doit savoir sur la configuration et l'optimisation de SQL Ser...
Ce que tout dba doit savoir sur la configuration et l'optimisation de SQL Ser...
 
Révolution dans l'analytique et les entrepôts de données à découvrir avec Intel
Révolution dans l'analytique et les entrepôts de données à découvrir avec IntelRévolution dans l'analytique et les entrepôts de données à découvrir avec Intel
Révolution dans l'analytique et les entrepôts de données à découvrir avec Intel
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016
 
[Café techno] Optimiser le coût de vos données avec DB2 distribué
[Café techno] Optimiser le coût de vos données avec DB2 distribué[Café techno] Optimiser le coût de vos données avec DB2 distribué
[Café techno] Optimiser le coût de vos données avec DB2 distribué
 
MySQL 5, un SGBDR mature ?
MySQL 5, un SGBDR mature ?MySQL 5, un SGBDR mature ?
MySQL 5, un SGBDR mature ?
 
Les bonnes pratiques pour migrer d'Oracle vers Postgres
Les bonnes pratiques pour migrer d'Oracle vers PostgresLes bonnes pratiques pour migrer d'Oracle vers Postgres
Les bonnes pratiques pour migrer d'Oracle vers Postgres
 
Nouveautés de DataDrill EXPRESS 3.8 & 4.0
Nouveautés de DataDrill EXPRESS 3.8 & 4.0Nouveautés de DataDrill EXPRESS 3.8 & 4.0
Nouveautés de DataDrill EXPRESS 3.8 & 4.0
 
CVMourad2
CVMourad2CVMourad2
CVMourad2
 
Initiation à l'intégration avec biztalk server
Initiation à l'intégration avec biztalk serverInitiation à l'intégration avec biztalk server
Initiation à l'intégration avec biztalk server
 
SSAS 2012 : Multidimensionnel et tabulaire au banc d'essai
SSAS 2012 : Multidimensionnel et tabulaire au banc d'essaiSSAS 2012 : Multidimensionnel et tabulaire au banc d'essai
SSAS 2012 : Multidimensionnel et tabulaire au banc d'essai
 
Sql Server Reporting Services
Sql Server Reporting ServicesSql Server Reporting Services
Sql Server Reporting Services
 
Livre blanc Windows Azure et les éditeurs de logiciel
Livre blanc Windows Azure et les éditeurs de logicielLivre blanc Windows Azure et les éditeurs de logiciel
Livre blanc Windows Azure et les éditeurs de logiciel
 

En vedette

Introduction au développement Windows Phone 8
Introduction au développement Windows Phone 8Introduction au développement Windows Phone 8
Introduction au développement Windows Phone 8Microsoft
 
Java dans Windows Azure Cloud Services, big data avec hd insight et les nouve...
Java dans Windows Azure Cloud Services, big data avec hd insight et les nouve...Java dans Windows Azure Cloud Services, big data avec hd insight et les nouve...
Java dans Windows Azure Cloud Services, big data avec hd insight et les nouve...Microsoft
 
5 Key Elements of a Successful Mobile Strategy (Anglais)
5 Key Elements of a Successful Mobile Strategy (Anglais)5 Key Elements of a Successful Mobile Strategy (Anglais)
5 Key Elements of a Successful Mobile Strategy (Anglais)Microsoft
 
Java sur Azure: OpenJDK mieux que vous n'avez jamais osé le demander ...
Java sur Azure: OpenJDK mieux que vous n'avez jamais osé le demander ...Java sur Azure: OpenJDK mieux que vous n'avez jamais osé le demander ...
Java sur Azure: OpenJDK mieux que vous n'avez jamais osé le demander ...Microsoft
 
Construire des applications parallèles avec Visual Studio 11 quoi de neuf ?
Construire des applications parallèles avec Visual Studio 11 quoi de neuf ?Construire des applications parallèles avec Visual Studio 11 quoi de neuf ?
Construire des applications parallèles avec Visual Studio 11 quoi de neuf ?Microsoft
 
Arte en Roma: arquitectura, escultura, pintura
Arte en Roma: arquitectura, escultura, pinturaArte en Roma: arquitectura, escultura, pintura
Arte en Roma: arquitectura, escultura, pinturasantisolera
 

En vedette (9)

Introduction au développement Windows Phone 8
Introduction au développement Windows Phone 8Introduction au développement Windows Phone 8
Introduction au développement Windows Phone 8
 
Java dans Windows Azure Cloud Services, big data avec hd insight et les nouve...
Java dans Windows Azure Cloud Services, big data avec hd insight et les nouve...Java dans Windows Azure Cloud Services, big data avec hd insight et les nouve...
Java dans Windows Azure Cloud Services, big data avec hd insight et les nouve...
 
5 Key Elements of a Successful Mobile Strategy (Anglais)
5 Key Elements of a Successful Mobile Strategy (Anglais)5 Key Elements of a Successful Mobile Strategy (Anglais)
5 Key Elements of a Successful Mobile Strategy (Anglais)
 
Java sur Azure: OpenJDK mieux que vous n'avez jamais osé le demander ...
Java sur Azure: OpenJDK mieux que vous n'avez jamais osé le demander ...Java sur Azure: OpenJDK mieux que vous n'avez jamais osé le demander ...
Java sur Azure: OpenJDK mieux que vous n'avez jamais osé le demander ...
 
Construire des applications parallèles avec Visual Studio 11 quoi de neuf ?
Construire des applications parallèles avec Visual Studio 11 quoi de neuf ?Construire des applications parallèles avec Visual Studio 11 quoi de neuf ?
Construire des applications parallèles avec Visual Studio 11 quoi de neuf ?
 
Arte en Roma: arquitectura, escultura, pintura
Arte en Roma: arquitectura, escultura, pinturaArte en Roma: arquitectura, escultura, pintura
Arte en Roma: arquitectura, escultura, pintura
 
ARQUITECTURA ROMANA
ARQUITECTURA ROMANAARQUITECTURA ROMANA
ARQUITECTURA ROMANA
 
La Pintura Romana
La Pintura RomanaLa Pintura Romana
La Pintura Romana
 
Pintura Romana
Pintura RomanaPintura Romana
Pintura Romana
 

Similaire à Deep Dive Performance , le In-Memory dans SQL Server

La BI, Power BI, et SQL Server 2014
La BI, Power BI, et SQL Server 2014La BI, Power BI, et SQL Server 2014
La BI, Power BI, et SQL Server 2014SCALA
 
Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...
Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...
Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...Microsoft Technet France
 
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Azure SQL Data Warehouse - Azure Data LakeGUSS
 
Business intelligence pour startups
Business intelligence pour startupsBusiness intelligence pour startups
Business intelligence pour startupsSébastien Derivaux
 
Système d’Information à l’Apec : un nouveau coeur de métier mis en place avec...
Système d’Information à l’Apec : un nouveau coeur de métier mis en place avec...Système d’Information à l’Apec : un nouveau coeur de métier mis en place avec...
Système d’Information à l’Apec : un nouveau coeur de métier mis en place avec...Ippon
 
Restitution des données environnement Microsoft & data visualization : panel ...
Restitution des données environnement Microsoft & data visualization : panel ...Restitution des données environnement Microsoft & data visualization : panel ...
Restitution des données environnement Microsoft & data visualization : panel ...Microsoft
 
Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Microsoft
 
SQL Server et les développeurs
SQL Server et les développeurs SQL Server et les développeurs
SQL Server et les développeurs Microsoft
 
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnels
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnelsUSI 2013 : 7 changements nécessaires pour sauver vos SI décisionnels
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnelsJoseph Glorieux
 
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...Microsoft Technet France
 
Km202 g formation-ibm-infosphere-datastage-essentials-9-1
Km202 g formation-ibm-infosphere-datastage-essentials-9-1Km202 g formation-ibm-infosphere-datastage-essentials-9-1
Km202 g formation-ibm-infosphere-datastage-essentials-9-1CERTyou Formation
 
J1 T1 1 - Azure Data Platform, quelle solution pour quel usage - Charles-Hen...
J1 T1 1 - Azure Data Platform, quelle solution pour quel usage  - Charles-Hen...J1 T1 1 - Azure Data Platform, quelle solution pour quel usage  - Charles-Hen...
J1 T1 1 - Azure Data Platform, quelle solution pour quel usage - Charles-Hen...MS Cloud Summit
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaMicrosoft
 
Stockage sur site et dans le Cloud: témoignage d'implémentation StorSimple
Stockage sur site et dans le Cloud: témoignage d'implémentation StorSimple Stockage sur site et dans le Cloud: témoignage d'implémentation StorSimple
Stockage sur site et dans le Cloud: témoignage d'implémentation StorSimple Microsoft Technet France
 
Le Must du décisionnel avec l'ensemble de l'offre Microsoft BI
Le Must du décisionnel avec l'ensemble de l'offre Microsoft BILe Must du décisionnel avec l'ensemble de l'offre Microsoft BI
Le Must du décisionnel avec l'ensemble de l'offre Microsoft BIMicrosoft Ideas
 
Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]IBM France PME-ETI
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQLBruno Bonnin
 
Cl314 g formation-db2-pour-luw-nouvelles-fonctionnalites-et-considerations-po...
Cl314 g formation-db2-pour-luw-nouvelles-fonctionnalites-et-considerations-po...Cl314 g formation-db2-pour-luw-nouvelles-fonctionnalites-et-considerations-po...
Cl314 g formation-db2-pour-luw-nouvelles-fonctionnalites-et-considerations-po...CERTyou Formation
 
Panorama de l'écosystème Microsoft Data Platform
Panorama de l'écosystème Microsoft Data PlatformPanorama de l'écosystème Microsoft Data Platform
Panorama de l'écosystème Microsoft Data PlatformPhilippe Geiger
 

Similaire à Deep Dive Performance , le In-Memory dans SQL Server (20)

La BI, Power BI, et SQL Server 2014
La BI, Power BI, et SQL Server 2014La BI, Power BI, et SQL Server 2014
La BI, Power BI, et SQL Server 2014
 
Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...
Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...
Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...
 
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
 
Business intelligence pour startups
Business intelligence pour startupsBusiness intelligence pour startups
Business intelligence pour startups
 
Système d’Information à l’Apec : un nouveau coeur de métier mis en place avec...
Système d’Information à l’Apec : un nouveau coeur de métier mis en place avec...Système d’Information à l’Apec : un nouveau coeur de métier mis en place avec...
Système d’Information à l’Apec : un nouveau coeur de métier mis en place avec...
 
Restitution des données environnement Microsoft & data visualization : panel ...
Restitution des données environnement Microsoft & data visualization : panel ...Restitution des données environnement Microsoft & data visualization : panel ...
Restitution des données environnement Microsoft & data visualization : panel ...
 
Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1
 
SQL Server et les développeurs
SQL Server et les développeurs SQL Server et les développeurs
SQL Server et les développeurs
 
Migrer d'Excel vers power bi
Migrer d'Excel vers power biMigrer d'Excel vers power bi
Migrer d'Excel vers power bi
 
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnels
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnelsUSI 2013 : 7 changements nécessaires pour sauver vos SI décisionnels
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnels
 
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
 
Km202 g formation-ibm-infosphere-datastage-essentials-9-1
Km202 g formation-ibm-infosphere-datastage-essentials-9-1Km202 g formation-ibm-infosphere-datastage-essentials-9-1
Km202 g formation-ibm-infosphere-datastage-essentials-9-1
 
J1 T1 1 - Azure Data Platform, quelle solution pour quel usage - Charles-Hen...
J1 T1 1 - Azure Data Platform, quelle solution pour quel usage  - Charles-Hen...J1 T1 1 - Azure Data Platform, quelle solution pour quel usage  - Charles-Hen...
J1 T1 1 - Azure Data Platform, quelle solution pour quel usage - Charles-Hen...
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
Stockage sur site et dans le Cloud: témoignage d'implémentation StorSimple
Stockage sur site et dans le Cloud: témoignage d'implémentation StorSimple Stockage sur site et dans le Cloud: témoignage d'implémentation StorSimple
Stockage sur site et dans le Cloud: témoignage d'implémentation StorSimple
 
Le Must du décisionnel avec l'ensemble de l'offre Microsoft BI
Le Must du décisionnel avec l'ensemble de l'offre Microsoft BILe Must du décisionnel avec l'ensemble de l'offre Microsoft BI
Le Must du décisionnel avec l'ensemble de l'offre Microsoft BI
 
Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQL
 
Cl314 g formation-db2-pour-luw-nouvelles-fonctionnalites-et-considerations-po...
Cl314 g formation-db2-pour-luw-nouvelles-fonctionnalites-et-considerations-po...Cl314 g formation-db2-pour-luw-nouvelles-fonctionnalites-et-considerations-po...
Cl314 g formation-db2-pour-luw-nouvelles-fonctionnalites-et-considerations-po...
 
Panorama de l'écosystème Microsoft Data Platform
Panorama de l'écosystème Microsoft Data PlatformPanorama de l'écosystème Microsoft Data Platform
Panorama de l'écosystème Microsoft Data Platform
 

Plus de Microsoft

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuMicrosoft
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaSMicrosoft
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileMicrosoft
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Microsoft
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Microsoft
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Microsoft
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à ZMicrosoft
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Microsoft
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsMicrosoft
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Microsoft
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryMicrosoft
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Microsoft
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Microsoft
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Microsoft
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET CoreMicrosoft
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Microsoft
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Microsoft
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursMicrosoft
 
Les nouveautés de C# 7
Les nouveautés de C# 7Les nouveautés de C# 7
Les nouveautés de C# 7Microsoft
 

Plus de Microsoft (20)

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieu
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaS
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobile
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à Z
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs Analytics
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site Recovery
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET Core
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeurs
 
Les nouveautés de C# 7
Les nouveautés de C# 7Les nouveautés de C# 7
Les nouveautés de C# 7
 

Deep Dive Performance , le In-Memory dans SQL Server

  • 1.
  • 2. Deep Dive Performance le In-Memory dans SQL Server Aurélien Koppel Resp. Tech. de compte (ADM) Microsoft France Frédéric Pichaut Senior Escalation Egineer Microsoft France Bases de données/Data management
  • 3. Equipe Microsoft Premier - ADM Développez, déployez et supportez plus efficacement vos applications Bonnes pratiques ALM Transferts d’expertises Accédez directement aux experts Microsoft et groupes produits Corp. Améliorez la qualité de vos développements Réduisez les risques et coûts des projets applicatifs
  • 4. Donnez votre avis ! Depuis votre smartphone sur : http://notes.mstechdays.fr De nombreux lots à gagner toute les heures !!! Claviers, souris et jeux Microsoft… Merci de nous aider à améliorer les Techdays ! #mstechdays Bases de données/ Data management
  • 5. Sommaire • Introduction au In-Memory dans SQL Server • Les ColumnStore Indexes (v2) • Le In-Memory OLTP (Hekaton) • Conclusion • Questions/Réponses #mstechdays Bases de données/ Data management
  • 6. LE IN-MEMORY DANS SQL SERVER 2014 #mstechdays Bases de données/ Data management
  • 7.
  • 8. Les nouveaux serveurs aujourd’hui • Server: HP DL580G7 (Environ $50K) • CPU : • 4-socket running Intel Westmere-EX • 10 cores per socket, • 2 threads per core • 80 logical processors • Memoire: 256GB (extensible à 2 TB) • Disques: Controller, disk enclosure, and 25 x 146GB SAS 15K rpm disks #mstechdays Bases de données/ Data management
  • 9. Le In-Memory dans SQL Server • 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 Server 2012 et >) • SQL: xVelocity main memory optimized OLTP – Projet Hekaton (SQL Server 2014) #mstechdays Bases de données/ Data management
  • 10. LES COLUMN STORE INDEXES (V2) #mstechdays Bases de données/ Data management
  • 11. Qu’est ce qu’un CSI? • ColumnStore Index • Nouveau type d’index introduit avec SQL Server 2012 • Membre de la famille “xVelocity” • Stockage: – En mémoire – En colonne – Compressé • Syntaxe de création plus simple que pour des autres types d’indexes: Pas réservé aux « Experts »! #mstechdays Bases de données/ Data management
  • 12. Fonctionnement des ColumnStore Indexes Stockage en ligne « Traditionnel » Stockage en colonnes C1 C 2 C3 C4 C5 Bénéfices: • Améliore les calculs d’agrégats: • Pas besoin de parcourir toutes les pages • Améliore la compression: … Les données d’une même colonne ont plus de probabilité d’être redondantes • Réduit les I/O: Ne va chercher que les colonnes nécessaires #mstechdays Bases de données/ Data management
  • 13. Pourquoi utiliser les Columnstore Indexes? • Optimiser l’accès à de gros entrepôts de données (pas OLTP) – Schémas en étoile, tables de fait volumineuses – Meilleur Temps de réponse • Transparent pour l’application: – – – – • Requêtes Backup and restore Mirroring, log shipping SSMS, etc. Réduction de l’effort de modélisation de la base de données – Moins d’indexes à créer et maintenir – Réduit le besoin d’agrégats pré-calculés ou de vues indexées – Peut dans certains cas éviter la création de cubes OLAP (Si la performance est le critère principal) #mstechdays Bases de données/ Data management
  • 14. Nouveauté SQL Server 2014: Clustered Columnstore Indexes • • Avantages des clustered index: – Economisent de la place Etudier la migration de vos tables en CCSI ou l’utilisation des CCSI pour les nouvelles tables de vos DWH 20.0 Space Used in GB (101 million row table) 15.0 10.0 91% savings 5.0 • • Support de nouveaux types de données • High precision decimal, datatypeoffset, binary, varbinary, uniqueidentifier, etc. • Types non supportés: spatial, XML, max types 0.0 Requêtes DML et DDL supportées – Possibilité de faire évoluer le schéma de la Bases de données/ Data management #mstechdays table ** Space Used = Table space + Index space
  • 15. C1 C2 C3 C4 C5 • • C6 DML (update, delete, insert) -> Utilisent le delta store INSERT Values – C1 C2 • C3 C4 C5 C6 • • #mstechdays Si batch < 100k, insert dans le delta store, sinon columnstore SELECT – • DELETE suivi d’un INSERT. BULK INSERT – • Opération logique Donnée effacée physiquement après REBUILD UPDATE – • Toujours dans le delta store DELETE – – tuple mover Column Store Delta (row) store Nouveauté SQL Server 2014: Updatable Columnstore Index Unit les données des Column et Row stores - internal UNION operation. “Tuple mover” convertit les données en mode Column quand le row group est plein (~1M of rows) REORGANIZE statement -> convertit le delta store en column store. Bases de données/ Data management
  • 16. Nouveauté SQL Server 2014: Performance Améliorée • Mode mixte d’exécution de requête (row et batch) – • La présence d’opérateurs de type row n’empêche pas les autres opérateurs d’être exécutés en mode batch. De nouveaux opérateurs « batch »: – – – joins (inner, outer) partial/global aggregates w/ and w/o group by union all operator Note: • Les agrégats de type “Distinct” et les opérateurs “UNION” sont toujours exécutés en row mode. #mstechdays Bases de données/ Data management
  • 17. DÉMO COLUMN STORE INDEXES #mstechdays Bases de données/ Data management
  • 18. Demo Clustered ColumnStore Indexes Dim Date Fact Internet Sales Dim Customer 50 Millions de lignes #mstechdays Bases de données/ Data management Dim Geography
  • 19. Demo Clustered ColumnStore Indexes #mstechdays Bases de données/ Data management
  • 20. LE IN-MEMORY OLTP (HEKATON) #mstechdays Bases de données/ Data management
  • 21. Hekaton: “In-Memory OLTP” • Le “In-Memory OLTP” est l’une des innovations autour de SQL Server 2014 pour titrer le mieux parties de la mémoire et des processeurs • Des éléments spécialisés pour chaque type de workloads: • Column store indexes for SQL Server 2012/2014 and PDW • In-Memory Analytics – Power Pivot for Excel 2010 • App Fabric Cache - mid tier caching solution • Stream Insight : Real time data stream analytics • #mstechdays In-Memory OLTP for SQL Server 2014 Bases de données/ Data management
  • 22. Les Mythes sur le In-Memory OLTP 1. SQL Server In-Memory OLTP est une réponse aux offres de nos compétiteurs 2. In-Memory OLTP c’est comme un DBCC PINTABLE 3. In-Memory OLTP est un nouveau produit séparé 4. On peut passer une application au In-Memory OLTP sans aucun changement 5. Comme les tables sont en mémoire, les données ne sont pas durables ou disponibles pour la haute dispo. Tout est perdu après un crash #mstechdays Bases de données/ Data management
  • 23. Mythe #1 • SQL Server In-Memory OLTP est une réponse aux offres de nos compétiteurs Le projet “Hekaton” a commencé il y plus de 4 ans en réponse aux besoins business et évolutions hardware. Pur produit de Microsoft Research #mstechdays Bases de données/ Data management
  • 24. Mythe #2 • In-Memory OLTP c’est comme un DBCC PINTABLE In-memory OLTP est un nouveau design pour optimiser les opérations sur les données en mémoire. Il n’y a pas de pages ou buffer pool pour les memory-optimized tables. #mstechdays Bases de données/ Data management
  • 25. Mythe #3 • In-Memory OLTP est un nouveau produit séparé In-Memory OLTP complétement intégré à SQL Server 2014 #mstechdays Bases de données/ Data management
  • 26. Hekaton Architecture Client App TDS Handler and Session Management Natively Compiled SPs and Schema Parser, Catalog, Optimizer Native Compiler T-SQL Query Execution Query Interop T 1 T 2 T 3 Tables Indexes T 1 Memory Optimized Data Filegroup #mstechdays Buffer Pool for Tables & Indexes SQL Server.exe Memory Optimized Tables & Indexes T 2 T 3 Transaction Log Bases de données/ Data management T 1 T 2 Data Filegroup T 3 Key Existing SQL Componen In-mem t OLTP Componen t Generated .dll
  • 27. Mythe #4 • On peut passer un application au InMemory OLTP sans aucun changement Il y a quelques modifications à faire, au minimum dans le schéma. Modifications plus faciles si on utilise déjà des Stored Procedures #mstechdays Bases de données/ Data management
  • 28. 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 , Ville nvarchar (15) NOT NULL INDEX IX_Ville HASH(Ville) 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), @Ville 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, @Ville,@Region,@PostalCode,@Country,@Phone,@Fax); END #mstechdays Bases de données/ Data management
  • 29. Mythe #5 • Comme les tables sont en mémoire, les données ne sont pas durables ou disponibles pour la haute dispo. Tout est perdu après un crash Le In-Memory OLTP est compatible avec les composants HA, incluant AlwaysOn Les données sont résidentes sur disque, et survivent à un crash. On peut aussi travailler avec des tables volatiles #mstechdays Bases de données/ Data management
  • 30. Concurrence d’accès #mstechdays Bases de données/ Data management
  • 31. Hash Indexes Hash index with (bucket_count=8): Hash mapping: f(Jean) Array of 8-byte Memory pointers #mstechdays f(Jules) f(Laura) 0 1 2 3 4 5 6 7 f(Paris) f(Toulon), f(Nice) Bases de données/ Data management Fonction de hashing f: • Mape les valeurs aux buckets • Dans le système Hash Collisions
  • 32. Memory Optimized Tables et Indexes Timestamps Hash index Nom f(Jean) 50, ∞ Pointeurs Nom Ville Hash index Ville Jean Paris f(Paris) f(Laura) f(Toulon) 90, ∞ #mstechdays Laura Toulon Bases de données/ Data management
  • 33. Memory Optimized Tables et Indexes Timestamps Hash index Nom f(Jules) Pointeurs 50, ∞ Nom Ville Hash index Ville Jean Paris f(Paris) 100, ∞ Jules Paris 90, ∞ Laura Toulon T100: INSERT (Jules, Paris) #mstechdays Bases de données/ Data management
  • 34. Memory Optimized Tables et Indexes Timestamps Hash index Nom Pointeurs 50, ∞ Nom Ville Hash index Ville Jean Paris 100, ∞ Jules Paris 90, ∞ 90, 150 Laura Toulon T150: DELETE (Laura, Toulon) #mstechdays Bases de données/ Data management
  • 35. Memory Optimized Tables et Indexes Timestamps Hash index Nom f(Jules) Pointeurs 50, ∞ 100, ∞ 100, 200 Nom Ville Hash index Ville Jean Jules Paris Paris f(Nice) 200, ∞ 90, 150 Jules Laura Nice Toulon T200: UPDATE (Jules, Paris) to (Jules, Nice) #mstechdays Bases de données/ Data management
  • 36. Memory Optimized Tables et Indexes Timestamps Hash index Nom f(Jean) f(Jules) Pointeurs 50, ∞ Nom Ville Hash index Ville Jean Paris f(Paris) 100, 200 Jules Paris f(Nice) 200, ∞ 90, 150 Jules Laura Nice Toulon T250: Garbage collection #mstechdays Bases de données/ Data management
  • 37. BEGIN AMR • Analysis, Migrate and Report Tool • Configure Management Data Warehouse, • Configure Data Collection, and run AMR Reports to identify performance hotspots Establish System Performance Baseline Run workload Is MDW Set up? Run AMR Reports Configure Management Data Warehouse Migrate Configure Data Collection Run Workload and collect performance metrics Compare to Baseline and set as new baseline COMPLETE #mstechdays Bases de données/ Data management
  • 38. AMR Report • Table Analysis • Usage Analysis • Contention analysis • Store Procedure Analysis • Usage Analysis #mstechdays Bases de données/ Data management
  • 39. Limitations dans SQL 2014 (V1) • Optimisation pour l’OLTP – No DML triggers – No XML and no CLR data types • Optimisation in-memory – Rows are at most 8060 bytes – no off row data – No Large Object (LOB) types like varchar(max) • Limitations de schéma – No FOREIGN KEY and no CHECK constraints – No IDENTITY – No schema changes (ALTER TABLE) – need to drop/recreate table – No add/remove index – need to drop/recreate table #mstechdays Bases de données/ Data management
  • 40. Hekaton en bref • 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 #mstechdays Bases de données/ Data management
  • 41. DEMO HEKATON #mstechdays Bases de données/ Data management
  • 43. Le In-Memory dans SQL Server • 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 Server 2012 et >) • SQL: xVelocity main memory optimized OLTP – Projet Hekaton (SQL Server 2014) #mstechdays Bases de données/ Data management
  • 44. Ressources Sessions Data Insights pour les professionnels de l’IT http://aka.ms/itprosql Sessions Data Insights pour les décideurs informatiques http://aka.ms/itdmsql Business Accelerator, un programme sur mesure pour les éditeurs de logiciel http://aka.ms/isvbusacc Un client prêt à témoigner ? Une belle histoire à partager ? Un Nokia Lumia à gagner ! http://aka.ms/cloudosref #mstechdays Bases de données/ Data management

Notes de l'éditeur

  1. Talking points:A table is a collection of row versions – validity of a row version at a point in time is indicated by the timestampThe buckets of a hash index are simply memory pointers to the first row in the bucketAll indexes on memory optimized tables are inherently coveringNo separate clustered index – table/index structure different from b-trees/heaps in disk-based tablesNo bookmark lookupAll row versions in the bucket are chained together into a linked listJean and Jules are in the same bucket “J”; thus the last row version of “Jules” points to the first row version of “Jean”A second index is again a collection of pointers to rows. In this case to the cities Nice and ParisAgain, rows in each bucket are chained through pointers between the rows – as you can see in this example, different indexes can have different chains of row versions in their bucketsThe Hekaton Garbage collector periodically removes row versions that are no longer valid for any active transaction – this means, e.g., that long-running transactions can force a lot of old row versions to stay in memory, and, e.g., cause memory pressure – discussed later in the DBA section of this presentation
  2. Talking points:A table is a collection of row versions – validity of a row version at a point in time is indicated by the timestampThe buckets of a hash index are simply memory pointers to the first row in the bucketAll indexes on memory optimized tables are inherently coveringNo separate clustered index – table/index structure different from b-trees/heaps in disk-based tablesNo bookmark lookupAll row versions in the bucket are chained together into a linked listJean and Jules are in the same bucket “J”; thus the last row version of “Jules” points to the first row version of “Jean”A second index is again a collection of pointers to rows. In this case to the cities Nice and ParisAgain, rows in each bucket are chained through pointers between the rows – as you can see in this example, different indexes can have different chains of row versions in their bucketsThe Hekaton Garbage collector periodically removes row versions that are no longer valid for any active transaction – this means, e.g., that long-running transactions can force a lot of old row versions to stay in memory, and, e.g., cause memory pressure – discussed later in the DBA section of this presentation
  3. Talking points:A table is a collection of row versions – validity of a row version at a point in time is indicated by the timestampThe buckets of a hash index are simply memory pointers to the first row in the bucketAll indexes on memory optimized tables are inherently coveringNo separate clustered index – table/index structure different from b-trees/heaps in disk-based tablesNo bookmark lookupAll row versions in the bucket are chained together into a linked listJean and Jules are in the same bucket “J”; thus the last row version of “Jules” points to the first row version of “Jean”A second index is again a collection of pointers to rows. In this case to the cities Nice and ParisAgain, rows in each bucket are chained through pointers between the rows – as you can see in this example, different indexes can have different chains of row versions in their bucketsThe Hekaton Garbage collector periodically removes row versions that are no longer valid for any active transaction – this means, e.g., that long-running transactions can force a lot of old row versions to stay in memory, and, e.g., cause memory pressure – discussed later in the DBA section of this presentation
  4. Talking points:A table is a collection of row versions – validity of a row version at a point in time is indicated by the timestampThe buckets of a hash index are simply memory pointers to the first row in the bucketAll indexes on memory optimized tables are inherently coveringNo separate clustered index – table/index structure different from b-trees/heaps in disk-based tablesNo bookmark lookupAll row versions in the bucket are chained together into a linked listJean and Jules are in the same bucket “J”; thus the last row version of “Jules” points to the first row version of “Jean”A second index is again a collection of pointers to rows. In this case to the cities Nice and ParisAgain, rows in each bucket are chained through pointers between the rows – as you can see in this example, different indexes can have different chains of row versions in their bucketsThe Hekaton Garbage collector periodically removes row versions that are no longer valid for any active transaction – this means, e.g., that long-running transactions can force a lot of old row versions to stay in memory, and, e.g., cause memory pressure – discussed later in the DBA section of this presentation
  5. Talking points:A table is a collection of row versions – validity of a row version at a point in time is indicated by the timestampThe buckets of a hash index are simply memory pointers to the first row in the bucketAll indexes on memory optimized tables are inherently coveringNo separate clustered index – table/index structure different from b-trees/heaps in disk-based tablesNo bookmark lookupAll row versions in the bucket are chained together into a linked listJean and Jules are in the same bucket “J”; thus the last row version of “Jules” points to the first row version of “Jean”A second index is again a collection of pointers to rows. In this case to the cities Nice and ParisAgain, rows in each bucket are chained through pointers between the rows – as you can see in this example, different indexes can have different chains of row versions in their bucketsThe Hekaton Garbage collector periodically removes row versions that are no longer valid for any active transaction – this means, e.g., that long-running transactions can force a lot of old row versions to stay in memory, and, e.g., cause memory pressure – discussed later in the DBA section of this presentation
  6. Talking points:A table is a collection of row versions – validity of a row version at a point in time is indicated by the timestampThe buckets of a hash index are simply memory pointers to the first row in the bucketAll indexes on memory optimized tables are inherently coveringNo separate clustered index – table/index structure different from b-trees/heaps in disk-based tablesNo bookmark lookupAll row versions in the bucket are chained together into a linked listJean and Jules are in the same bucket “J”; thus the last row version of “Jules” points to the first row version of “Jean”A second index is again a collection of pointers to rows. In this case to the cities Nice and ParisAgain, rows in each bucket are chained through pointers between the rows – as you can see in this example, different indexes can have different chains of row versions in their bucketsThe Hekaton Garbage collector periodically removes row versions that are no longer valid for any active transaction – this means, e.g., that long-running transactions can force a lot of old row versions to stay in memory, and, e.g., cause memory pressure – discussed later in the DBA section of this presentation
  7. -1min