我有一个生产中的数据库,其中一个表已经变得非常大(大量累积的数据)。
为了提高查询性能,我使用了sql server优化器,它建议使用一个新的索引。
因此,我制作了一个生产数据库的副本进行测试,它确实提高了性能,但是我的问题是,创建索引花费了大约24小时,并且在创建索引时应用程序不可用。
对于这个特定的应用程序,停机几个小时不是问题,但24小时的停机时间才是问题,我正在寻找一种方法来创建这个索引,而不必这样做。
目前我只有几个想法。
一种想法是将备份复制到另一台服务器。应用新索引和任何其他更改。将备份复制回生产服务器。关闭应用程序并合并自我备份以来的任何新数据。
当然,这有它自己的一系列问题,比如必须将数据重新合并在一起,因此我不喜欢这个想法。
这是SQL Server 2008标准版。
我通常通过脚本部署数据库更改。
更新:另一个想法是在几天内将归档数据分块移出主表。然后在表变得足够小时创建索引。然后慢慢地将数据迁移回来。
https://stackoverflow.com/questions/2309889
复制相似问题