Позвольте мне начать с того, что я не гуру SQL, я знаю достаточно, чтобы столкнуться с этим :) Мы только что перенесли клиент с SQL 2008 R2 на SQL 2016 на новом оборудовании, и мы хотим перенести индексы на другой раздел, который находится на более быстром диске, чем базы данных.
Существует около 40 баз данных с парой десятков таблиц и индексов в каждой таблице. Некоторые индексы кластеризованы, другие - некластеризованы. Есть ли способ переместить все индексы сразу? Что-то похожее на это http://sqlsrvscrpt.codeplex.com/wikipage?title=DBScript%20Utility&referringTitle=Home к сожалению, этот инструмент не будет работать с SQL 2016.
Заранее спасибо!
У вас уже хранятся индексы вне основного файла данных mdf? Обычно базы данных SQL делятся на первичный файл данных (.mdf), файл журнала (.ldf) и иногда вторичные файлы данных (.ndf). Табличные данные сами по себе также являются типом индекса, поэтому похоже, что вы просто хотите переместить данные на новый диск. Самый простой способ сделать это - отсоединить базу данных, переместить файлы данных в любое место, а затем снова присоединить. Это можно сделать через ssms, щелкнув правой кнопкой мыши базу данных, затем щелкнув Tasks-> Detach, а затем щелкнув правой кнопкой мыши папку Databases и нажав «Attach», чтобы повторно прикрепить ее в новом месте. Вы также можете использовать хранимые процедуры sp_detach_db и sp_attach_db.