Mag*_*ier 2 sql-server partitioning sql-server-2016
我必须将 Sql Server 2008 R2 中的分区表更改为普通表,以使我的数据库与 Sql Server 2016 标准版兼容。
实际上该表有 5 个分区,行数如下:
> boundary, rows
2009-01-01 00:00:00.000 419
2010-01-01 00:00:00.000 386031
2011-01-01 00:00:00.000 1307990
2012-01-01 00:00:00.000 673183
NULL 9743057
Run Code Online (Sandbox Code Playgroud)
该表包含一个 BLOB(图像)列。该表的总大小约为 25 GB。
我已经通读了如何删除表分区的问题,但尽管它已经回答,但没有被接受的答案,而且这些答案并没有完全解决我的问题。
我意识到了ALTER PARTITION FUNCTION MERGE RANGE命令,但我真的不明白会发生什么。数据是否会被合并到现有文件组之一,之后我仍然会有一个分区表?
我是否必须将所有数据复制到具有相同结构的新表中(可能需要很长时间......)?
我将不得不在停机期间执行此操作,因此我需要一个尽可能高效的程序。
要完全删除表分区,请使用文件组规范而不是分区方案重建所有索引。CREATE INDEX与DROP_EXISTING=ON选项一起使用可以有效地做到这一点。
有关语法,请参阅MSDN:CREATE INDEX页面。