我知道在分区之间切换需要两个分区都驻留在同一个文件组中,但是无法找到任何合适的位置来知道哪里这个概念背后的原因是什么。
源表和目标表必须共享相同的文件组。
ALTER TABLE ... SWITCH语句的源表和目标表必须位于同一文件组中,并且它们的大值列必须存储在同一文件组中。任何相应的索引,索引分区或索引 View 分区也必须驻留在同一文件组中。但是,文件组可以与相应表或其他相应索引的文件组不同。
http://technet.microsoft.com/en-us/library/ms191160(v=sql.105).aspx
在我的分区实现之一中:
我希望将旧数据移动到不同的表中,即可存档的(出于分析目的)驻留在不同的文件组(不同的驱动器)中。但是由于这种限制,我已经实现了如上所述
我了解遵循的概念(数据不会物理移动)。但为什么?
像这样的预期答案,例如“由于sql-server pagesize限制或分页概念重叠等”。
请帮助我找到或理解这一点!
最佳答案
switch
语句之所以有效,是因为它实际上只是替换磁盘上的地址,而不是移动数据。因此,两组数据都必须位于同一文件组中,以便于执行此“技巧”。