La sortie du Service Pack 1 pour SQL Server 2016 est venue avec une annonce pour le moins inattendue : de nombreuses fonctionnalités jusqu’ici réservées à l’édition Enterprise le sont maintenant dans les éditions Standard, Express, et même LocalDB.
La table suivante décrit ce changement de façon plus visuelle : le moins qu’on puisse dire, c’est qu’elle s’est éclairci avec ce Service Pack !
Mêmes les fonctionnalités introduites avec SQL Server 2016 RTM Enterprise ont été élargies aux autres éditions. Ceci permet bien sûr de programmer de façon plus uniforme, en ayant moins recours à la vérification de l’édition. C’est tout à fait avantageux pour les éditeurs de logiciels, mais aussi pour les scripts de maintenance, notamment PowerShell, qui devraient donc compter moins de if une fois toutes les bases de données migrées vers cette version (ce qui n’est pas une mince affaire :)). Mon seul regret ira peut-être à la reconstruction d’index en ligne, mais c’est un choix qui se justifie si l’on se place de l’autre côté du comptoir.
Pour avoir une vue plus complète, voici la page de comparaison des éditions de SQL Server 2016 SP1.
Ceci étant, c’est d’abord une excellente nouvelle, quoique la littérature actuelle sur ce sujet en dise du fait des limitations suivantes pour les index ColumnStore et les tables optimisées en mémoire (InMemory OLTP) :
- un quart de la quantité de RAM allouée à SQL Server
- degré de parallélisation maximal : 2 cores
Mais ne serait-ce que pour la sécurité des données, les fonctionnalités introduites avec SQL Server 2016 RTM sont bienvenues dans l’édition Standard en SP1. Ensuite ces deux fonctionnalités limitées couvrent des cas d’utilisation très courants, comme l’analytique simple que l’on développe pour une application OLTP, ou encore les variables de type TABLE et autres tables temporaires que l’on peut tenter de déplacer en InMemory pour alléger la charge d’IOs disque de TempDB.
Mais bien sûr ce n’est pas Black Friday tous les jours, donc il faut aussi voir ce qui justifie toujours l’achat d’une édition Enterprise ou Standard de SQL Server 2016 SP1 :
- L’Agent SQL Server n’est pas porté aux éditions Express et LocalDB;
- La parallélisation n’est pas disponible dans ces deux mêmes éditions;
- ALTER INDEX … REBUILD WITH (ONLINE = ON) est toujours réservé à l’édition Enterprise;
- Les groupes de disponibilité AlwaysOn prennent tout leur sens sous l’édition Enterprise; autrement, cela s’apparente à de la mise en mirroir;
- La prise en compte à chaud de CPU et de RAM additionnels est réservé à l’édition Enterprise;
- Le cryptage (Transparent Data Encryption) avec ou sans EKM (Extensible Key Management, qui permet de déplacer la gestion des clés à un petit serveur spécialisé (Hardware Security Module)) reste une fonctionnalité Enterprise;
- Le cryptage et la compression des sauvegardes n’est pas disponible en édition Express ou LocalDB;
- La quantité de RAM est toujours limitée à 128Go pour une édition Standard, quand l’Enterprise est à 24 To (!!!);
Pas grand chose de choquant donc, si ce n’est peut-être le dernier élément de cette liste : l’écart entre Enterprise et Standard frise le gouffre. Ceci est accentué lorsqu’on trouve des PC portables disposant de 32 voire 64Go de RAM. On peut donc avoir bonne espérance que cette limite sera repoussée dans un avenir relativement proche.
Dès lors il est simple de voir que le volume de licences Standard de SQL Server 2016 va forcément augmenter, sans pour autant marcher sur les plates-bandes de celui de l’édition Enterprise.
En ce qui concerne la consolidation du code à travers les éditions, nous les verrons dans un prochain billet.
Bonne migration vers SQL Server 2016 SP1 Ã tous !