Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQL Server 2016 :Améliorations OLTP en mémoire

Mise à jour :30 novembre 2015

L'équipe SQL Server a publié un article de blog avec de nouvelles fonctionnalités pour l'OLTP en mémoire dans CTP 3.1 :

  • SQL Server 2016 Community Technology Preview 3.1 est disponible

Mise à jour :17 novembre 2015
Jos de Bruijn a publié une liste mise à jour des modifications OLTP en mémoire à partir de CTP 3.0 :

  • OLTP en mémoire :nouveautés de SQL2016 CTP3

J'ai publié plus tôt des informations sur les modifications apportées aux groupes de disponibilité dans SQL Server 2016, dont j'ai appris l'existence chez MS Ignite en grande partie grâce à une session de Joey D'Antoni et Denny Cherry. Une autre excellente session a été présentée par Kevin Farlee et Sunil Agarwal sur les changements en magasin pour In-Memory OLTP (la fonctionnalité anciennement connue sous le nom de "Hekaton"). Une remarque intéressante :la vidéo de cette session montre une démo où Kevin exécute CTP2.0 (build 13.0.200) - bien que ce ne soit probablement pas la version que nous verrons publiquement cet été.

Fonctionnalité/Limite SQL Server 2014 SQL Server 2016
Taille maximale combinée des tableaux durables 256 Go 2 To
LOB (varbinary(max), [n]varchar(max)) Non pris en charge Pris en charge*
Chiffrement transparent des données (TDE) Non pris en charge Pris en charge
Fils de point de contrôle hors ligne 1 1 par conteneur
ALTER PROCÉDURE / sp_recompile Non pris en charge Pris en charge (entièrement en ligne)
Appels de procédure native imbriqués Non pris en charge Pris en charge
FDU scalaires compilées nativement Non pris en charge Pris en charge
ALTER TABLE Non pris en charge
(DROP / re-CREATE)
Partiellement pris en charge
(hors ligne - détails ci-dessous)
Déclencheurs DML Non pris en charge Partiellement pris en charge
(APRES, compilé nativement)
Index sur les colonnes NULLable Non pris en charge Pris en charge
Collations non-BIN2 dans les colonnes de clé d'index Non pris en charge Pris en charge
Pages de codes non latines pour les colonnes [var]char Non pris en charge Pris en charge
Comparaison/tri non-BIN2 dans les modules natifs Non pris en charge Pris en charge
Clés étrangères Non pris en charge Pris en charge
Vérifier/contraintes uniques Non pris en charge Pris en charge
Parallélisme Non pris en charge Pris en charge
OUTER JOIN, OR, NOT, UNION [ALL], DISTINCT, EXISTS, IN Non pris en charge Pris en charge
Ensembles de résultats actifs multiples (MARS)
(signifie une meilleure prise en charge d'Entity Framework.)
Non pris en charge Pris en charge
Concepteur de tables SSMS Non pris en charge Pris en charge

* La prise en charge LOB ne sera pas disponible dans la livraison CTP cet été.

ALTER TABLE est une opération hors ligne et prendra en charge l'ajout/la suppression de colonnes, d'index et de contraintes. Il y aura de nouvelles extensions de syntaxe pour prendre en charge certaines de ces actions. Vous pouvez modifier vos valeurs de nombre de compartiments avec une simple reconstruction (notez cependant que toute reconstruction nécessitera 2X de mémoire) :

ALTER TABLE dbo.InMemoryTable
  ALTER INDEX IX_NC_Hash 
  REBUILD WITH (BUCKET_COUNT = 1048576);

En plus de ces améliorations de capacité/fonctionnalité, il existe également des améliorations de performances supplémentaires. Par exemple, il sera possible d'ajouter un index columnstore en mémoire, pouvant être mis à jour et non clusterisé sur des tables sur disque ou en mémoire. Et ils ont simplifié la façon dont les lignes supprimées sont traitées (en 2014, ces opérations utilisent FileStream ; en 2016, ils sauteront cette étape). Des améliorations ont également été apportées aux conseillers en migration et à l'analyseur des meilleures pratiques :ils sont désormais plus légers sur la collecte de données et fournissent plus de contexte sur la complexité de la migration.

Il y a encore des limitations avec certains de ces changements. TDE, par exemple, nécessite des étapes supplémentaires lors de la mise à niveau d'une base de données. Mais il est clair qu'à mesure que l'OLTP en mémoire gagne en maturité, ils éliminent bon nombre des principaux obstacles à l'adoption.

Mais attendez, il y a plus ! Si vous souhaitez utiliser OLTP en mémoire dans Azure SQL Database, une préversion publique avec prise en charge complète sera disponible cet été. Vous n'aurez donc pas besoin de votre propre serveur physique avec 2 To de mémoire pour pousser cette fonctionnalité à ses limites. Cependant, ne vous attendez pas à ce que cette fonctionnalité soit intégrée à l'édition Standard.