首先我要说的是,我不是 SQL 专家,我知道的知识只足以应付一些麻烦:) 我们刚刚在新硬件上将客户端从 SQL 2008 R2 迁移到 SQL 2016,并且我们希望将索引移动到比数据库更快的磁盘上的其他分区。
大约有 40 个数据库,每个表上有几十个表和索引。有些索引是群集的,有些是非群集的。有没有办法批量移动所有索引?类似于此http://sqlsrvscrpt.codeplex.com/wikipage?title=DBScript%20Utility&referringTitle=Home遗憾的是,此工具不适用于 SQL 2016。
提前致谢!
答案1
您的索引是否已存储在主 mdf 数据文件之外?通常,SQL 数据库分为主数据文件 (.mdf)、日志文件 (.ldf) 和有时的辅助数据文件 (.ndf)。表数据本身也是一种索引,因此听起来您只想将数据移动到新磁盘。最简单的方法是分离数据库,将数据文件移动到您想要的任何位置,然后重新连接。这可以通过 ssms 完成,方法是右键单击数据库,然后单击任务->分离,然后右键单击数据库文件夹并单击“附加”以将其重新附加到新位置。您还可以使用 sp_detach_db 和 sp_attach_db 存储过程。