Aktivieren von Stretch Database für eine Tabelle
Gilt für: SQL Server 2016 (13.x) und höher – nur Windows
Wichtig
Stretch Database ist in SQL Server 2022 (16.x) und der Azure SQL-Datenbank veraltet. Diese Funktion wird in einer zukünftigen Version der Datenbank-Engine entfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden.
Um eine Tabelle für Stretch Database zu konfigurieren, wählen Sie Stretch > Aktivieren für eine Tabelle in SQL Server Management Studio aus, um den Assistenten zum Aktivieren einer Tabelle für Stretch zu öffnen. Sie können Transact-SQL auch verwenden, um Stretch Database für eine vorhandene Tabelle zu aktivieren oder um eine neue Tabelle zu erstellen, in der Stretch Database aktiviert ist.
Wichtig
Die Stretch Database-Unterstützung wird in SQL Server Management Studio v19 entfernt. Zum Verwalten der Stretch Database können Sie SQL Server Management Studio v18.9.1 oder niedriger verwenden.
Wenn Sie kalte Daten in einer separaten Tabelle speichern, können Sie die gesamte Tabelle migrieren.
Wenn Ihre Tabelle sowohl heiße als auch kalte Daten enthält, können Sie eine Filterfunktion zum Auswählen der zu migrierenden Zeilen angeben.
Voraussetzungen Wenn Sie Stretch > Aktivieren für eine Tabelle auswählen, Stretch Database jedoch bisher noch nicht für die Datenbank aktiviert war, konfiguriert der Assistent zuerst die Datenbank für Stretch Database. Führen Sie die Schritte unter Erste Schritte durch Ausführen des Assistenten zum Aktivieren von Stretch für eine Datenbank anstelle der in diesem Artikel aufgeführten Schritte durch.
Berechtigungen Um Stretch Database für eine Datenbank oder eine Tabelle zu aktivieren, benötigen Sie "db_owner"-Berechtigungen. Zum Aktivieren von Stretch Database für eine Tabelle sind auch ALTER-Berechtigungen für die Tabelle erforderlich.
Hinweis
Bedenken Sie später beim Deaktivieren von Stretch Database Folgendes: Wenn Sie Stretch Database für eine Tabelle oder eine Datenbank deaktivieren, wird das Remoteobjekt nicht gelöscht. Wenn Sie die Remotetabelle oder Remotedatenbank löschen möchten, müssen Sie sie mithilfe des Azure-Verwaltungsportals löschen. Die Remoteobjekte erzeugen weiterhin Azure-Kosten, bis Sie die Objekte manuell löschen.
Verwenden des Assistenten
1. Assistent starten
Wählen Sie im Objekt-Explorer in SQL Server Management Studio die Tabelle aus, für die Sie Stretch aktivieren möchten.
Klicken Sie mit der rechten Maustaste und wählen Sie Stretch> Aktivieren aus, um den Assistenten zu starten.
2. Einführung
Überprüfen Sie den Zweck des Assistenten und die Voraussetzungen.
3. Datenbanktabellen auswählen
Vergewissern Sie sich, dass die Tabelle, die Sie aktivieren möchten, angezeigt wird und ausgewählt ist.
Sie können eine ganze Tabelle migrieren oder eine Filterfunktion im Assistenten angeben. Wenn Sie zum Auswählen zu migrierender Zeilen eine andere Art von Filterfunktion verwenden möchten, führen Sie einen der folgenden Schritte aus.
Beenden Sie den Assistenten, und führen Sie die ALTER TABLE-Anweisung aus, um Stretch für die Tabelle zu aktivieren und eine Filterfunktion anzugeben.
Führen Sie die ALTER TABLE-Anweisung aus, um eine Filterfunktion anzugeben, nachdem Sie den Assistenten beendet haben. Die erforderlichen Schritte finden Sie unter Hinzufügen einer Filterfunktion nach Ausführen des Assistenten.
Die ALTER TABLE-Syntax wird im weiteren Verlauf dieses Artikels beschrieben.
4. Zusammenfassung
Überprüfen Sie die im Assistenten eingegebenen Werte und ausgewählten Optionen. Wählen Sie dann Fertig stellen aus, um Stretch zu aktivieren.
5. Ergebnisse
Überprüfen Sie die Ergebnisse.
Verwenden von Transact-SQL
Sie können Stretch Database mithilfe von Transact-SQL für eine vorhandene Tabelle aktivieren oder eine neue Tabelle erstellen, in der Stretch Database aktiviert ist.
Optionen
Verwenden Sie die folgenden Optionen beim Ausführen von CREATE TABLE oder ALTER TABLE, um Stretch Database für eine Tabelle zu aktivieren.
Verwenden Sie optional die
FILTER_PREDICATE = <function>
-Klausel, um eine Funktion zum Auswählen der zu migrierenden Zeilen anzugeben, wenn die Tabelle sowohl heiße als auch kalte Daten enthält. Das Prädikat muss eine Inline-Tabellenwertfunktion aufrufen. Weitere Informationen hierzu finden Sie unter Auswählen zu migrierender Zeilen mithilfe einer Filterfunktion. Wenn Sie keine Filterfunktion angeben, wird die gesamte Tabelle migriert.Wichtig
Wenn Sie eine schwache Filterfunktion angeben, wird die Datenmigration ebenfalls unzureichend ausgeführt. Stretch Database wendet die Filterfunktion mithilfe des CROSS APPLY-Operators auf die Tabelle an.
Geben Sie
MIGRATION_STATE = OUTBOUND
an, um sofort mit der Datenmigration zu beginnen, oderMIGRATION_STATE = PAUSED
, um den Beginn der Datenmigration zu verschieben.
Aktivieren von Stretch Database für eine vorhandene Tabelle
Um eine vorhandene Tabelle für Stretch Database zu konfigurieren, führen Sie den Befehl ALTER TABLE aus.
Im folgenden Beispiel wird die gesamte Tabelle migriert und es wird sofort mit der Datenmigration begonnen.
USE [<Stretch-enabled database name>];
GO
ALTER TABLE [<table name>]
SET ( REMOTE_DATA_ARCHIVE = ON ( MIGRATION_STATE = OUTBOUND ) );
GO
Im folgenden Beispiel werden dem nur die Zeilen migriert, die durch die dbo.fn_stretchpredicate
Inline-Tabellenwertfunktion identifiziert wurden, und die Datenmigration wird verschoben. Weitere Informationen zur Filterfunktion finden Sie unter Auswählen zu migrierender Zeilen mithilfe einer Filterfunktion (Stretch-Datenbank).
USE [<Stretch-enabled database name>];
GO
ALTER TABLE [<table name>]
SET ( REMOTE_DATA_ARCHIVE = ON (
FILTER_PREDICATE = dbo.fn_stretchpredicate(),
MIGRATION_STATE = PAUSED ) );
GO
Weitere Informationen finden Sie unter ALTER TABLE (Transact-SQL).
Erstellen einer neuen Tabelle, für die Stretch Database aktiviert ist
Führen Sie zum Erstellen einer neuen Tabelle, für die Stretch Database aktiviert ist, den Befehl CREATE TABLE aus.
Im folgenden Beispiel wird die gesamte Tabelle migriert und es wird sofort mit der Datenmigration begonnen.
USE [<Stretch-enabled database name>];
GO
CREATE TABLE [<table name>]
(
col1 int
/* replace the sample "col1" column shown above, with the actual list of columns */
)
WITH ( REMOTE_DATA_ARCHIVE = ON ( MIGRATION_STATE = OUTBOUND ) );
GO
Im folgenden Beispiel werden dem nur die Zeilen migriert, die durch die dbo.fn_stretchpredicate
Inline-Tabellenwertfunktion identifiziert wurden, und die Datenmigration wird verschoben. Weitere Informationen zur Filterfunktion finden Sie unter Auswählen zu migrierender Zeilen mithilfe einer Filterfunktion (Stretch-Datenbank).
USE [<Stretch-enabled database name>];
GO
CREATE TABLE [<table name>]
(
col1 int
/* replace the sample "col1" column shown above, with the actual list of columns */
)
WITH ( REMOTE_DATA_ARCHIVE = ON (
FILTER_PREDICATE = dbo.fn_stretchpredicate(),
MIGRATION_STATE = PAUSED ) );
GO
Weitere Informationen finden Sie unter CREATE TABLE (Transact-SQL).