Настройка базы данных Stretch для таблицы
Область применения: SQL Server 2016 (13.x) и более поздних версий — только Windows
Внимание
Stretch Database устарел в SQL Server 2022 (16.x) и База данных SQL Azure. Эта функция будет удалена в будущей версии ядро СУБД. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.
Чтобы настроить таблицу так, чтобы она использовала Stretch Database, выберите Stretch > Включить для таблицы в SQL Server Management Studio. После этого откроется мастер включения Stretch для таблицы. Stretch Database для таблицы можно включить также с помощью Transact-SQL. Либо можно создать новую таблицу, уже настроенную для Stretch Database.
Внимание
Поддержка Stretch Database удалена в SQL Server Management Studio версии 19. Для управления Stretch Database можно использовать SQL Server Management Studio версии 18.9.1 или более ранней версии.
Если холодные данные хранятся в отдельной таблице, эту таблицу можно перенести полностью.
Если таблица содержит как горячие, так и холодные данные, строки для переноса можно выбрать с помощью функции фильтров.
Предварительные требования. Если при выборе Stretch > Включить для таблицы вы не включили Stretch Database для базы данных, то мастер сначала настроит базу данных для Stretch Database. Следуйте указаниям в статье Запуск мастера включения растяжения для базы данных вместо пошаговых инструкций в этой статье.
Разрешения. Чтобы настроить Stretch Database для таблицы или базы данных, требуются права db_owner. Для включения Stretch Database для таблицы также требуются разрешения ALTER для таблицы.
Примечание.
В случае последующего отключения Stretch Database для таблицы или базы данных помните, что такое отключение не приводит к удалению дистанционного объекта. Если вы хотите удалить удаленную таблицу или базу данных, это нужно сделать с помощью портала управления Azure. Пока удаленные объекты не будут удалены вручную, их хранение будет сопровождаться затратами в Azure.
Использование мастера
1. Запуск мастера
В среде SQL Server Management Studio в обозревателе объектов выберите таблицу, для которой нужно включить перенос.
Щелкните таблицу правой кнопкой мыши и выберите Stretch > Включить, чтобы запустить мастер.
2. Введение
Изучите информацию о назначении мастера и предварительные требования.
3. Выбор таблиц из базы данных
Убедитесь, что выбрана нужная таблица.
Вы можете перенести таблицу полностью или указать функцию фильтров в мастере. Если вы хотите использовать другой тип функции фильтров, чтобы выбрать строки для переноса, выполните одно из следующих действий.
Закройте мастер и выполните инструкцию ALTER TABLE, чтобы включить растяжение для таблицы и указать функцию фильтров.
Выполните инструкцию ALTER TABLE, чтобы указать функцию фильтров после выхода из мастера. Необходимые пошаговые инструкции см. в статье Добавление функции фильтров после запуска мастера.
Синтаксис ALTER TABLE описан далее в этой статье.
4. Сводка
Просмотрите введенные значения и выбранные в мастере параметры. Нажмите кнопку Готово , чтобы включить растягивание.
5. Результаты
Проверка результатов.
Использование Transact-SQL
Вы можете включить Stretch Database для существующей таблицы или создать новую таблицу с поддержкой Stretch Database с помощью Transact-SQL.
Параметры
При выполнении CREATE TABLE или ALTER TABLE для включения Stretch Database для таблицы используйте следующие параметры.
Если в таблице содержатся горячие и холодные данные, можно использовать предложение
FILTER_PREDICATE = <function>
, чтобы задать функцию для выбора переносимых строк. Этот предикат должен вызывать встроенную функцию с табличным значением. Дополнительные сведения см. в разделе Выбор строк для миграции с использованием функции фильтров. Если функция фильтров не указана, переносится вся таблица.Внимание
Если указать плохо оптимизированную функцию фильтров, перенос данных будет выполняться медленно. База данных Stretch применяет функцию фильтров к таблице с помощью оператора CROSS APPLY.
Укажите
MIGRATION_STATE = OUTBOUND
, чтобы немедленно запустить перенос данных, либоMIGRATION_STATE = PAUSED
, чтобы отложить его.
Включение Stretch Database для существующей таблицы
Чтобы настроить существующую таблицу для использования со службой Stretch Database, выполните инструкцию ALTER TABLE.
В приведенном ниже примере переносится вся таблица и перенос данных начинается немедленно.
USE [<Stretch-enabled database name>];
GO
ALTER TABLE [<table name>]
SET ( REMOTE_DATA_ARCHIVE = ON ( MIGRATION_STATE = OUTBOUND ) );
GO
В примере, приведенном ниже, переносятся только строки, определяемые встроенной функцией с табличным значением dbo.fn_stretchpredicate
. Перенос данных откладывается. Дополнительные сведения о функции фильтров см. в статье Выбор строк для миграции с использованием функции фильтров.
USE [<Stretch-enabled database name>];
GO
ALTER TABLE [<table name>]
SET ( REMOTE_DATA_ARCHIVE = ON (
FILTER_PREDICATE = dbo.fn_stretchpredicate(),
MIGRATION_STATE = PAUSED ) );
GO
Дополнительные сведения см. в статье ALTER TABLE (Transact-SQL).
Создание новой таблицы с поддержкой Stretch Database
Чтобы создать новую таблицу с поддержкой Stretch Database, выполните команду CREATE TABLE.
В приведенном ниже примере переносится вся таблица и перенос данных начинается немедленно.
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
В примере, приведенном ниже, переносятся только строки, определяемые встроенной функцией с табличным значением dbo.fn_stretchpredicate
. Перенос данных откладывается. Дополнительные сведения о функции фильтров см. в статье Выбор строк для миграции с использованием функции фильтров.
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
Дополнительные сведения см. в статье CREATE TABLE (Transact-SQL).