Freigeben über


Erstellen einer speicheroptimierten Tabelle

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance

Speicheroptimierte Tabellen sind ein Feature von SQL Server, bei dem sich die gesamte Tabelle im Arbeitsspeicher befindet. Eine zweite Kopie der Tabellendaten wird auf Festplatte gespeichert. Daten in speicheroptimierten Tabellen werden nur während der Datenbankwiederherstellung vom Datenträger gelesen. Dies ist beispielsweise nach einem Neustart des Servers der Fall. Speicheroptimierte Tabellen können im Tabellen-Designer in Azure Data Studio erstellt werden.

Hinweis

Speicheroptimierte Tabellen müssen zu einer Dateigruppe gehören. Weitere Informationen hierzu finden Sie in dieser Dokumentation zu speicheroptimierten Dateigruppen.

Speicheroptimierte Tabellen müssen über einen nicht gruppierten Primärschlüssel verfügen. Eine Einführung in speicheroptimierte Tabellen finden Sie im Artikel Einführung in speicheroptimierte Tabellen. Darüber hinaus müssen alle speicheroptimierten Tabellen mindestens einen Index aufweisen.

Erstellen einer speicheroptimierten Tabelle

  1. Um eine speicheroptimierte Tabelle zu erstellen, muss für die Datenbank eine Dateigruppe erstellt worden sein. Öffnen Sie im Objekt-Explorer ein neues Abfrage-Editor-Fenster auf Serverebene, da wir eine völlig neue Datenbank erstellen, in der die speicheroptimierte Tabelle abgelegt wird. Kopieren Sie im Abfrage-Editor den folgenden Code, fügen Sie ihn ein, und führen Sie ihn aus:

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

    Mit dem oben genannten Code wird eine neue Datenbank erstellt. Der Datenbank wird eine Dateigruppe hinzugefügt, und der Dateigruppe wird eine Datei hinzugefügt. Schließlich wird die Isolationsstufe für jede speicheroptimierte Tabelle, die dieser Datenbank hinzugefügt wurde, auf SNAPSHOT festgelegt.

  2. Erstellen Sie als Nächstes Ihre Tabelle, indem Sie die imoltp-Datenbank im Objekt-Explorer öffnen, mit der rechten Maustaste auf den Ordner Tabellen klicken und Neue Tabelle auswählen. Daraufhin wird die Tabellen-Designeransicht geöffnet. Weisen Sie den Primärschlüssel für diese Tabelle zu (stellen Sie sicher, dass dieser Primärschlüssel nicht gruppiert ist, indem Sie das Kontrollkästchen Gruppiert in den Primärschlüssel-Einstellungen deaktivieren).

    Screenshot des Tabellen-Designers mit den Schritten zum Erstellen einer speicheroptimierten Tabelle mit nicht geclustertem Primärschlüssel.

  3. Im Bereich Tabelleneigenschaften. Aktivieren Sie das Kontrollkästchen Speicheroptimiert. Daraufhin wird die Dropdownliste „Dauerhaftigkeit“ angezeigt, in der Sie auswählen können, ob nur das Schema im Arbeitsspeicher oder sowohl das Schema als auch die Daten im Arbeitsspeicher gespeichert werden sollen. Wenn Sie „Schema“ auswählen, wird nur das Schema Ihrer Datenbank im Arbeitsspeicher gespeichert. Wie unten gezeigt, wird das Skript aktualisiert, um die Änderungen widerzuspiegeln.

    Screenshot des Tabellen-Designers mit speicheroptimierter Tabelle mit Konfiguration nur durch ein Schema.

    Wenn Sie Schema auswählen, wird nur das Schema im Arbeitsspeicher gespeichert. Wenn Sie Schema and Daten auswählen, werden sowohl das Schema als auch die Daten im Arbeitsspeicher gespeichert. Beachten Sie die Änderung im Skript.

    Screenshot des Tabellen-Designers mit einer speicheroptimierten Tabelle nur mit einem Schema.

Hinweis

Der Tabellen-Designer unterstützt auch Hashindizes und Columnstore-Indizes, die beim Erstellen der speicheroptimierten Tabelle konfiguriert werden können.

Nächste Schritte