让我先说我不是 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 完成,方法是右键单击数据库,然后单击任务->分离,然后右键单击数据库文件夹并单击“附加”以将其重新附加到新位置。您还可以使用 sp_detach_db 和 sp_attach_db 存储过程。
https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-detach-and-attach-sql-server