Я только что создал дополнительную файловую группу и хочу переместить некоторые таблицы к ней, а затем сделать ее доступной только для чтения.
Я не уверен, как это сделать?
Я просто использую ALTER blah blah TO MyFileGroup
?
Я только что создал дополнительную файловую группу и хочу переместить некоторые таблицы к ней, а затем сделать ее доступной только для чтения.
Я не уверен, как это сделать?
Я просто использую ALTER blah blah TO MyFileGroup
?
Что-то вроде этого должно помочь:
CREATE UNIQUE CLUSTERED INDEX PK_YourTableName
ON dbo.YourTableName(YourPKFields)
WITH (DROP_EXISTING = ON) ON [NewFilegroup]
Есть два пути; один из SSMS, а другой - с использованием TSQL.
Из электронной документации по SQL Server 2008:
Чтобы переместить существующий индекс в другую файловую группу или раздел схема
В проводнике объектов подключитесь к экземпляру базы данных SQL Server Engine, а затем развернуть этот экземпляр.
Разверните базы данных, разверните базу данных, содержащую таблицу с конкретный индекс, а затем развернуть Таблицы.
Разверните таблицу, в которой находится индекс, а затем разверните индексы.
Щелкните правой кнопкой мыши индекс, который нужно перенести, и выберите "Свойства".
В диалоговом окне "Свойства индекса" выберите страницу "Хранение".
Выберите файловую группу для перемещения индекса.
Вы не можете перемещать индексы, созданные с помощью единственное ограничение первичного ключа путем используя диалоговое окно "Свойства индекса". Чтобы переместить эти индексы, вам необходимо снимите ограничение с помощью ALTER TABLE (Transact-SQL) с DROP CONSTRAINT, а затем повторно создать ограничение на желаемое файловая группа с использованием ALTER TABLE (Transact-SQL) с ADD CONSTRAINT вариант.
Если таблица или индекс разделены, выберите схему раздела, в которой для перемещения индекса.
[Pre SQL Server 2008: размещение существующей таблицы в другой файловой группе (SSMS)
Более эффективным способом является
для создания кластерного индекса на Таблица. Если в таблице уже есть кластеризованный индекс, вы можете использовать Команда CREATE INDEX WITH DROP_EXISTING, чтобы воссоздать кластеризованный индекс и переместить его в определенную файловую группу. Когда таблица имеет кластеризованный индекс, уровень листа индекс и страницы данных таблица по существу становится одной и одна и та же. Таблица должна существовать там, где кластеризованный индекс существует, поэтому, если вы создавать или воссоздавать кластеризованные индекс - размещение индекса на конкретная файловая группа - вы перемещаете таблицу в новую файловую группу.
Кредит: Брайан Моран
Вы можете создать (или воссоздать) кластеризованный индекс, определяющий новую файловую группу для предложения ON, и который будет перемещать таблицу (данные). Но если у вас есть некластеризованные индексы и вы хотите их на другую файловую группу, вы должны сбросить и заново создать их, указав новую файловую группу в предложении ON. Ссылка.
Я согласен с Марком. Rebuild cluster работает хорошо и намного быстрее, чем Tasks- > Shrink Database- > Files- > Empty file by migrating data to another file.
Создание отдельных индексов позволяет контролировать нагрузку на систему без создания огромных журнальных файлов из select * into [your.new.table.] from .....