Подтвердить что ты не робот

Как переместить таблицу в определенную файловую группу в SQL Server 2008

Я только что создал дополнительную файловую группу и хочу переместить некоторые таблицы к ней, а затем сделать ее доступной только для чтения.

Я не уверен, как это сделать?

Я просто использую ALTER blah blah TO MyFileGroup?

4b9b3361

Ответ 1

Что-то вроде этого должно помочь:

CREATE UNIQUE CLUSTERED INDEX PK_YourTableName 
    ON dbo.YourTableName(YourPKFields)
    WITH (DROP_EXISTING = ON) ON [NewFilegroup]

Ответ 2

Есть два пути; один из 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. Ссылка.

Ответ 3

Я согласен с Марком. Rebuild cluster работает хорошо и намного быстрее, чем Tasks- > Shrink Database- > Files- > Empty file by migrating data to another file.

Создание отдельных индексов позволяет контролировать нагрузку на систему без создания огромных журнальных файлов из select * into [your.new.table.] from .....