如果我对表进行分区,是否可以在不告诉SQL Server的情况下替换分区文件?

时间:2010-03-05 09:48:29

标签: sql-server partitioning

我希望能够将一个表分区换成另一个表分区,只需在启动服务器之前替换partitionN.ndf。

一般目的是能够将一些表行分成不同的文件,以便在安装应用程序时,它只能使用一组。总有一些行需要,所以

情景A

ID     Game         Strategy
1      Squash       Stick to the T
2      Racketball   Drop it at the back
3      Tennis       Serve to the backhand
1000   Croquet      The key is to be really mean
1001   Billiards    Glare a lot

情景B

ID     Game         Strategy
1      Squash       Stick to the T
2      Racketball   Drop it at the back
3      Tennis       Serve to the backhand
1000   Baseball     Favour third
1002   Pool         Snooker them, be irritating

这里我将从1000分区出ID,并将低号保留在公共数据库中。在场景特定的分区中,将有许多ID需要维护公共数据库中的表的参照完整性。

那会有用吗?或者我是否需要向服务器发出一些分区命令以在服务器运行时替换它?我想部分问题是:服务器是刚刚启动并读取文件,还是维护缓存和其他对替换文件敏感的东西?

1 个答案:

答案 0 :(得分:1)

我认为它根本不起作用。 File是一个比单个表(gam,sgam,pfs,文件头页面)更复杂的结构,并且分区表在表中的每个分区都有一个HoBT ID,并且您的新文件将没有相同的HoBT ID IAM等。

编辑:

您的示例不是分区旨在解决的问题,您基本上是尝试使用预先填充了固定行的某一部分的表,以及基于安装条件可变的多个行

就我个人而言,我建议您立即忽略分区表,它不是正确的工具 - 您可以选择将值拆分为2个物理表,然后将视图放在两个物理表之上,union'ing两张桌子在一起。

这至少意味着你只是试图替换表,而不是单个分区 - 但我仍然不喜欢这种方法 - 如果我有足够的权限来发布安装添加和删除文件组/文件,那么我会足够的权限使用正确的数据加载例程,只需根据需要加载数据。

如果您需要对值的固定部分和可变部分进行物理分离,则可以在必要时使用视图方法。