Abilitare Stretch Database per una tabella
Si applica a: SQL Server 2016 (13.x) e versioni successive - Solo Windows
Importante
Stretch Database è deprecato in SQL Server 2022 (16.x) e database SQL di Azure. Questa funzionalità verrà rimossa nelle versioni future del motore di database. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.
Per configurare una tabella per Stretch Database, selezionare Stretch > Abilita per una tabella in SQL Server Management Studio per aprire la procedura guidata Abilitare la tabella per l'estensione. È anche possibile usare Transact-SQL per abilitare Stretch Database in una tabella esistente o per creare una nuova tabella con Stretch Database abilitato.
Importante
Il supporto di Stretch Database è stato rimosso in SQL Server Management Studio v19. Per gestire Stretch Database, è possibile usare SQL Server Management Studio v18.9.1 o una versione precedente.
Se i dati ad accesso sporadico vengono archiviati in una tabella separata, è possibile eseguire la migrazione dell'intera tabella.
Se la tabella contiene dati usati più di frequente e dati usati meno di frequente, è possibile specificare una funzione di filtro per selezionare le righe di cui eseguire la migrazione.
Prerequisiti. Se si seleziona Stretch > Abilita per una tabella e non è stato ancora abilitato Stretch Database per il database, la procedura guidata configura prima il database per Stretch Database. Seguire i passaggi descritti in Avviare la procedura guidata Abilitare il database per Stretch anziché quelli riportati in questo articolo.
Autorizzazione. L'abilitazione di Stretch Database in un database o una tabella richiede autorizzazioni db_owner. Anche per abilitare Stretch Database in una tabella sono necessarie le autorizzazioni ALTER nella tabella.
Nota
Se in seguito si disabilita Stretch Database, tenere presente che la disabilitazione di Stretch Database per una tabella o un database non elimina l'oggetto remoto. Se si vuole eliminare la tabella remota o il database remoto, è necessario eliminarlo tramite il portale di gestione di Azure. Gli oggetti remoti continuano a generare costi di Azure fino a quando non vengono eliminati manualmente.
Usare la procedura guidata
1. Avviare la procedura guidata
In Esplora oggetti di SQL Server Management Studio selezionare la tabella in cui si vuole abilitare l'estensione.
Fare clic con il pulsante destro del mouse e scegliere Stretch > Abilita per avviare la procedura guidata.
2. Introduzione
Esaminare lo scopo della procedura guidata e i prerequisiti.
3. Selezionare le tabelle del database
Verificare che la tabella che si vuole abilitare sia visualizzata e selezionata.
È possibile eseguire la migrazione di un'intera tabella oppure specificare una funzione di filtro nella procedura guidata. Se si vuole usare un tipo diverso di funzione di filtro per selezionare le righe di cui eseguire la migrazione, eseguire una di queste operazioni.
Uscire dalla procedura guidata ed eseguire l'istruzione ALTER TABLE per abilitare l'estensione per la tabella e specificare una funzione di filtro.
Eseguire l'istruzione ALTER TABLE per specificare una funzione di filtro dopo l'uscita dalla procedura guidata. Per i passaggi necessari, vedere Aggiungere una funzione di filtro dopo l'esecuzione della procedura guidata.
La sintassi di ALTER TABLE è descritta più avanti in questo articolo.
4. Riepilogo
Esaminare i valori immessi e le opzioni selezionate nella procedura guidata. Selezionare quindi Fine per abilitare l'estensione.
5. Risultati
Esaminare i risultati.
Usare Transact-SQL
È possibile usare Transact-SQL per abilitare Stretch Database per una tabella esistente o per creare una nuova tabella con Stretch Database abilitato.
Opzioni
Usare le opzioni seguenti quando si esegue CREATE TABLE o ALTER TABLE per abilitare Stretch Database in una tabella.
Facoltativamente, usare la clausola
FILTER_PREDICATE = <function>
per specificare una funzione che selezioni le righe di cui eseguire la migrazione se la tabella contiene sia dati usati più di frequente sia dati usati meno di frequente. Il predicato deve eseguire la chiamata a una funzione inline con valori di tabella. Per altre informazioni, vedere Selezionare le righe di cui eseguire la migrazione tramite una funzione di filtro. Se non si specifica una funzione di filtro, viene eseguita la migrazione dell'intera tabella.Importante
Se si specifica una funzione di filtro dalle prestazioni scarse, anche la migrazione dei dati avrà prestazioni scarse. Stretch Database applica la funzione del filtro alla tabella tramite l'operatore CROSS APPLY.
Specificare
MIGRATION_STATE = OUTBOUND
per avviare subito la migrazione dei dati oMIGRATION_STATE = PAUSED
per rimandare l'inizio della migrazione dei dati.
Abilitare Stretch Database per una tabella esistente
Per configurare una tabella esistente per Stretch Database, eseguire il comando ALTER TABLE.
Nell'esempio seguente viene eseguita la migrazione dell'intera tabella e la migrazione dei dati viene avviata immediatamente.
USE [<Stretch-enabled database name>];
GO
ALTER TABLE [<table name>]
SET ( REMOTE_DATA_ARCHIVE = ON ( MIGRATION_STATE = OUTBOUND ) );
GO
Nell'esempio seguente viene eseguita solo la migrazione delle sole righe identificate dalla funzione inline con valori di tabella dbo.fn_stretchpredicate
e viene rimandata la migrazione dei dati. Per altre informazioni sulla funzione di filtro, vedere Select rows to migrate by using a filter function (Selezionare le righe di cui eseguire la migrazione usando una funzione di filtro).
USE [<Stretch-enabled database name>];
GO
ALTER TABLE [<table name>]
SET ( REMOTE_DATA_ARCHIVE = ON (
FILTER_PREDICATE = dbo.fn_stretchpredicate(),
MIGRATION_STATE = PAUSED ) );
GO
Per altre informazioni, vedere ALTER TABLE (Transact-SQL).
Creare una nuova tabella con Stretch Database abilitato
Per creare una nuova tabella con Stretch Database abilitato, eseguire il comando CREATE TABLE.
Nell'esempio seguente viene eseguita la migrazione dell'intera tabella e la migrazione dei dati viene avviata immediatamente.
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
Nell'esempio seguente viene eseguita solo la migrazione delle sole righe identificate dalla funzione inline con valori di tabella dbo.fn_stretchpredicate
e viene rimandata la migrazione dei dati. Per altre informazioni sulla funzione di filtro, vedere Select rows to migrate by using a filter function (Selezionare le righe di cui eseguire la migrazione usando una funzione di filtro).
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
Per altre informazioni, vedere CREATE TABLE (Transact-SQL).