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

  1. 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.

  2. 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).

    Capture d’écran du concepteur de tables affichant comment créer une table à mémoire optimisée avec une clé primaire non cluster.

  3. 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.

    Capture d’écran du concepteur de tables affichant la table à mémoire optimisée avec une configuration Schéma uniquement.

    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.

    Capture d’écran du Concepteur de tables montrant une table optimisée en mémoire (schéma uniquement).

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.

Étapes suivantes