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

  1. In Esplora oggetti di SQL Server Management Studio selezionare la tabella in cui si vuole abilitare l'estensione.

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

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

Esamina 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 o MIGRATION_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).

Vedi anche