Partager via


Création d’une table optimisée en mémoire

Important

Azure Data Studio sera mis hors service le 28 février 2026. Nous vous recommandons d’utiliser Visual Studio Code. Pour plus d’informations sur la migration vers Visual Studio Code, visitez Qu’est-ce qui se passe dans Azure Data Studio ?

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Les tables optimisées en mémoire sont une fonctionnalité de SQL Server dans laquelle la table entière réside dans la 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 lues uniquement à partir du disque pendant la récupération de base de données, par exemple après un redémarrage du serveur. Les tables à mémoire optimisée doivent appartenir à un groupe de fichiers et peuvent être créées dans le concepteur de tables dans Azure Data Studio. Pour en savoir plus, consultez cette documentation sur le groupe de fichiers à mémoire optimisée.

Les tables à mémoire optimisée doivent avoir une clé primaire non groupée. 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 nous assurer qu’un groupe de fichiers a été créé pour notre base de données. Dans l’Explorateur d’objets, ouvrez une nouvelle fenêtre d’éditeur de requête à partir du niveau du serveur, car nous allons créer une nouvelle base de données dans laquelle réside notre table mémoire optimisée. 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 pour toute table optimisée en mémoire ajoutée à cette base de données à l’instantané.

  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. Cette opération permet d’ouvrir la vue du concepteur de tables. Affectez la clé primaire pour cette table (vérifiez que cette clé primaire n'est pas clusterisée en décochant la case Clustered dans les paramètres de clé primaire ).

    Capture d'écran du Concepteur de tables qui montre comment créer une table optimisée en mémoire avec une clé primaire non-clusterisée.

  3. Dans le volet Propriétés du tableau, cochez la case Mémoire optimisée. Cela permet la liste déroulante de durabilité, où vous pouvez choisir si vous souhaitez uniquement le schéma ou les données stockées en mémoire. 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 montrant la table Memory-Optimized avec une configuration de schéma uniquement.

    Si vous choisissez Schéma, seul le schéma est enregistré en mémoire. Choisir Schéma et Données sauvegarde le schéma et les données 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 de stockage en colonnes, qui peuvent être configurés lors de la création de la table à mémoire optimisée.

Étape suivante