SQL Server 2008: воссоздание одних и тех же индексов и статистики в разных базах данных - PullRequest
1 голос
/ 22 декабря 2009

Недавно мне было поручено обновить «унаследованную» базу данных (ранее им управлял бывший сотрудник, который недавно покинул компанию). Новая база данных имеет ту же структуру, что и предыдущая; единственное отличие заключается в самом контенте, поскольку в этой базе данных теперь более свежие данные.

Проблема в том, что старая база данных имеет много индексов и статистических данных, которые я также должен реализовать в более новой базе данных, и я боюсь, что сценарии создания базы данных были потеряны где-то вдоль шоссе.

Следовательно, как я могу (предпочтительно используя транзакционный SQL) воссоздать старые индексы в новой базе данных?

Ура, ребята

Ответы [ 3 ]

3 голосов
/ 22 декабря 2009

Я хотел бы взглянуть на инвестиции в инструменты Red Gate, которые сделают это легко (индексы, данные и объекты могут быть синхронизированы).

Если вам действительно нужна одинаковая статистика по обеим базам данных, это сложно сделать, особенно если вы не обновляете статистику вручную. Я бы просто беспокоился о том, что Red Gate может синхронизировать первым.

1 голос
/ 22 декабря 2009

Попробуйте выполнить следующие действия

  • Щелкните правой кнопкой мыши базу данных и выберите Задачи , затем Создать сценарии ...
  • Выберите базу данных еще раз и нажмите кнопку Далее. (Примечание. Вы можете просто использовать поле для отметки внизу здесь и написать сценарий для всех объектов в БД и закончить - сэкономить время!) Перетаскивайте панель вниз, пока не перейдете к Параметры таблицы / просмотра
  • Убедитесь, что для Script Indexes установлено значение True, затем нажмите кнопку Далее
  • Выберите необходимые объекты для сценария, затем нажмите Next
  • Выберите элементы для сценария
  • Наконец, выберите, хотите ли вы сценарий для файла / буфера обмена / окна запроса
1 голос
/ 22 декабря 2009

В SSMS вы можете щелкнуть правой кнопкой мыши по индексу в проводнике объектов и нажать «Индекс скрипта как». Затем вы можете запустить скрипт для своей новой базы данных.

EDIT:

Если у вас есть несколько индексов, вы не можете легко написать их все в SSMS 2005. Вы можете посмотреть на скрипт, похожий на этот: http://www.sqlservercentral.com/scripts/Miscellaneous/31893/

Другим интересным способом может быть использование C #, см. http://blogs.msdn.com/benjones/archive/2008/08/27/how-can-i-generate-a-t-sql-script-for-just-the-indexes.aspx для примера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...