SQL Server – les columnstore index à la rescousse de la BI

Petit retour d’expérience sur l’usage des CCSI (Clustered Column Store Index) avec SQL Server 2014.

Avec un de nos clients, nous avons fait quelques bench sur le sujet. Sur une architecture équivalente, nous avons mis en place un index columnstore sur une table de fait contenant plus de 300 millions d’enregistrements. Malgré me dires et ceux de Microsoft, mes interlocuteurs étaient très sceptiques tout en fondant de grands espoirs. Lire la suite

[PASS Summit 2013] SQL Server 2012 & 2014 : Columnstore Indexes

Speaker : Jimmy May – MCM, Principal architect Microsoft

Niveau de la session : 300

 

Introduction :

1. Démo : Columnstore index vs index classique

SQL Server 2012 SP1 –>

SELECT count(*) FROM FactTable (100 millions de lignes) :

Sans Columnstore index –> 104 secondes

Avec Columnstore index –> 1 seconde

 

SELECT avec jointures –> 30 lignes retournées :

Sans Columnstore index –> 1 minute 56 secondes

Avec Columnstore index –> 3 secondes

SQL Server 2012 & 2014 : New ! Improved ! Features

 

2. SQL Columnstore index codename APOLLO utilisé dans PowerPivot, PowerView et SSAS,

3. Stockage traditionnel : data stockée physiquement ligne par ligne,

4. Stockage (columnstore) : data stockée en colonne,

5. Caractéristiques du columnstore :

  • Highly compressed,
  • Agressive readahead,
  • Structure hybride (in-memory, disque),
  • Processe les data en unités appelées « batches »,
  • Exécution des requêtes en mode vectoriel,
  • Plusieurs modifications côté moteur (I/O, Mémoire, Cache),

6. Why columnstore ?

  • Optimise l’accès aux DWH volumineux,
  • Est transparent pour l’utilisateur,
  • Réduit l’effort de design physique des DB,

 

Columnstore Index :

1. Version 2012 :

  • Disponible sous SQL Server 2012 Enterprise Edition mais indisponible sur Azure (à l’exception de IaaS),
  • N’est pas compatible avec les vues indexées, filtered indexes et sparses columns,

2. Version 2014 :

  • Full read / write (Insert, Update, Delete, Merge),
  • Supporte tous les types de données à l’exception des CLR, (n)varchar (max), varbinary(max) et spatial,
  • Nouveauté : Clustered Columnstore Index (le Non-Clustered Columnstore Index est en Read uniquement),
  • Compression qui offre un gain d’espace de l’ordre de 25 à 30 %,
  • Optimisation du Hash Join et du Bitmap.

Conclusion :

Session plutôt décevante. Le speaker est vite passé sur les sujets importants et n’a pas fait de démos (la session a commencé sur une démo ratée). Les chiffres, plutôt flatteurs, communiqués sur les performances du columnstore index ne représentent rien sans une vraie preuve, une véritable démonstration. Dommage…