Création d’une table optimisée en mémoire
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance
Les tables optimisées en mémoire sont une fonctionnalité de SQL Server où la table entière réside en mémoire. Une deuxième copie des données de la table est conservée sur le disque. Les données des tables mémoire optimisées sont uniquement lues à partir du disque lors de la récupération d'une base de données. Par exemple, après le redémarrage d'un serveur. Les tables optimisées en mémoire peuvent être créées dans le Concepteur de tables d’Azure Data Studio.
Notes
Les tables optimisées en mémoire doivent appartenir à un groupe de fichiers. Pour en savoir plus sur ce sujet, consultez cette documentation sur le groupe de fichiers à mémoire optimisée.
Les tables optimisées en mémoire doivent avoir une clé primaire non-cluster. Pour une présentation des tables optimisées en mémoire, consultez l’article Introduction aux tables optimisées en mémoire. De plus, toutes les tables optimisées en mémoire doivent avoir au moins un index.
Créer une table optimisée en mémoire
Pour créer une table optimisée en mémoire, nous devons vérifier qu’un groupe de fichiers a été créé pour notre base de données. Dans l’Explorateur d’objets, ouvrez une nouvelle fenêtre de l’éditeur de requête au niveau du serveur. Nous allons créer une base de données entièrement nouvelle dans laquelle résidera notre table optimisée en mémoire. Dans l’éditeur de requête, copiez, collez et exécutez le code suivant :
CREATE DATABASE imoltp GO -------------------------------------- -- create database with a memory-optimized -- filegroup and a container. ALTER DATABASE imoltp ADD FILEGROUP imoltp_mod CONTAINS MEMORY_OPTIMIZED_DATA; ALTER DATABASE imoltp ADD FILE ( name='imoltp_mod1', filename='c:\data\imoltp_mod1') TO FILEGROUP imoltp_mod; ALTER DATABASE imoltp SET MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = ON; GO --
Le code ci-dessus crée une base de données, ajoute un groupe de fichiers à la base de données, ajoute un fichier au groupe de fichiers et définit enfin le niveau d’isolation de toute table optimisée en mémoire ajoutée à cette base de données sur SNAPSHOT.
Ensuite, créez votre table. Pour cela, ouvrez la base de données imoltp à partir de l’Explorateur d’objets, cliquez avec le bouton droit sur le dossier Tables, puis sélectionnez Nouvelle table. La vue du Concepteur de tables s’ouvre. Affectez la clé primaire à cette table (vérifiez que cette clé n’est pas en cluster en décochant la case En cluster dans les paramètres Clé primaire).
Dans le volet Propriétés de la table. Cochez la case Mémoire optimisée. Cela active la liste déroulante de durabilité dans laquelle vous pouvez choisir si vous souhaitez que seul le schéma soit stocké en mémoire ou à la fois le schéma et les données. Le choix de « Schéma » enregistre uniquement le schéma de votre base de données en mémoire. Comme vous pouvez le voir ci-dessous, le script est mis à jour pour refléter les modifications.
Si vous choisissez Schéma, seul le schéma est enregistré en mémoire. Si vous choisissez Schéma et données, le schéma et les données sont enregistrés en mémoire. Notez la modification dans le script.
Notes
Le Concepteur de tables prend également en charge les index de hachage et les index columnstore, ceux-ci pouvant être configurés lors de la création de la table optimisée en mémoire.