SQL分区表 - 如何插入不需要分区到分区表中的数据?

时间:2016-11-08 15:21:24

标签: mysql sql-server database data-warehouse partitioning

我使用以下步骤对事实表进行了分区:

  1. 重命名事实表(作为备份行事)
  2. 根据数据的加载ID创建了两个文件组(我为加载ID 1处理1000行,为加载ID 2处理1000行)
  3. 创建了一个分区函数,它涵盖了两个载荷中值的左侧范围。
  4. 为这些创建了相应的Schemes,其中包含两个文件组和一个[primary]文件组。
  5. 使用分区创建新的事实表并将数据重新插入。
  6. 一切正常。 问题是我有其他数据无法被范围覆盖,我需要将其插入到新表中。 (不需要对此数据进行分区)

    我可以简单地在新表中插入其他数据吗?如果我这样做,那么数据会去哪里,即哪个文件组?

    或者我是否需要告诉分区功能/方案将其他数据放在某处但不在分区文件组中?

    任何帮助将不胜感激。 非常感谢:)

3 个答案:

答案 0 :(得分:0)

如果您的表已分区,它将根据您的架构进入您拥有的一个或多个分区。您只需执行插入操作,服务器就会自动将其放在正确的分区中。

答案 1 :(得分:0)

分区表意味着它将使用分区函数来确定每行的放置位置。没有表中的数据被分区而没有被分区的事情。也许你应该有第二张桌子。或者,您可以尝试创建一个计算列,该列将不应分区的所有行放入其自己的分区中,并在计算列上创建分区函数。如果要为分区函数使用计算列,请确保将其定义为持久化。

答案 2 :(得分:0)

你应该在两端包装你的分区,并为你的分区函数提供一个缓冲区,以便在左边和右边的范围之外转储数据,你可以通过SQL Server中的分区方案将文件分配给分区函数。

File 1 - BUFFER PARTITION A
File 2 - BUFFER PARTITION AA
File 3 - PARTITION LEFT
File 4 - PARTITION RIGHT
File 5 - BUFFER PARTITION Z
File 6 - BUFFER PARTITION ZZ

BUFFER PARTITION AABUFFER PARTITION Z可以处理溢出。

然后你可以做一些有用的东西,比如换出文件或插入和重新排序。