La version finale de SQL Server 2016 est sortie récemment. C’est donc le moment de s’intéresser aux nouvelles fonctionnalités apportées par cette version. Aujourd’hui nous allons découvrir les Stretch Database.

Stretch Database permet d’archiver les tables contenant des données historiques. Par exemple une table des commandes (Order) contient des données récentes et des données plus anciennes. L’idée est de conserver les commandes récentes dans la base locale et d’archiver les commandes plus anciennes dans Azure et ce de manière totalement transparente. SQL Server se débrouille pour déplacer les données automatiquement et charger les données de la base locale et distante de manière transparente. Actuellement Stretch Database migre l’intégralité de la table vers Azure, cela signifie qu’il faut que votre schéma sépare les données actuelles des données historiques dans 2 tables distinctes.

Il s’agit donc d’une fonctionnalité totalement transparent pour l’utilisateur (pas de changement des requêtes ni des applications existantes) permettant d’économiser du stockage sur nos serveurs (il faut cependant payer pour Azure).

Pour activer la fonctionnalité il faut exécuter la commande suivante :

EXEC sp_configure 'remote data archive' , '1';
RECONFIGURE;

Ensuite le plus simple est d’utiliser l’interface graphique pour la configuration. On commence par activer la fonctionnalité au niveau de la base de données :

activer fonctionnalité

On se connecte avec son compte Azure puis on indique les identifiants de la base de données Azure qui va être créée automatiquement :

base de données Azur

Puis SQL Server lance la configuration :

Configuration

A ce moment on a une nouvelle base de données dans Azure :

nouvelle base de données Azure

On active ensuite la fonctionnalité au niveau des tables voulues :

enable stretch

Et voilà, la synchronisation commence en arrière plan. On peut vérifier le bon fonctionnement de l’archivage en regardant le plan d’exécution :

Plan d'éxecution

On peut voir que la requête est tout ce qu’il y a de plus classique. SQL Server charge les données depuis les tables locales et distantes sans que l’on ait quoique ce soit à faire. Tout simplement magique !

Ne ratez plus aucune actualité avec la newsletter mensuelle de SoftFluent

Newsletter SoftFluent