Sql server 2008 如何在SQLServer2008中进行分区

Sql server 2008 如何在SQLServer2008中进行分区,sql-server-2008,partitioning,Sql Server 2008,Partitioning,我在SQLServer2008DB中有事务表。我想在这个表上做每日分区。所以我使用了分区创建向导。我给出了分区模式、分区函数以及所有内容。我将边界值设置为1.1.2011和10.1.2011以及每日水平。然后,我将值输入到该表中,作为每天一行(仅用于检查),它将被插入到每个分区中。至少每个分区包含一行。但我想这样,如果我在2011年11月1日输入,它将被加载到第一个分区,删除现有数据。。我怎么能做到这一点 从技术角度来看,这是可能的,并且您正在尝试复制Oracle所拥有的一种间隔分区形式,在这种

我在SQLServer2008DB中有事务表。我想在这个表上做每日分区。所以我使用了分区创建向导。我给出了分区模式、分区函数以及所有内容。我将边界值设置为1.1.2011和10.1.2011以及每日水平。然后,我将值输入到该表中,作为每天一行(仅用于检查),它将被插入到每个分区中。至少每个分区包含一行。但我想这样,如果我在2011年11月1日输入,它将被加载到第一个分区,删除现有数据。。我怎么能做到这一点

从技术角度来看,这是可能的,并且您正在尝试复制Oracle所拥有的一种间隔分区形式,在这种形式中,新分区是动态生成的。在SQL Server中,您必须完全自己管理此过程—分区维护、分区的创建/删除必须在过程中进行编码

那么这能做到吗?是的-您可以通过添加触发器来模拟间隔分区,不久前我就制作了一个这样的示例()

你应该这样做吗?我非常怀疑这一点——对性能的影响不会是微不足道的,在触发器中管理分区是测试中的一项练习,而不是生产代码


如果您知道每天晚上都需要向前移动分区,那么您可以安排一个存储过程来处理这一切,这比使用触发器要高效得多。

实际上,每天都会安排将数据加载到事务表中。因此,在插入之前,我可以调用另一个过程来处理分区创建。那应该很好。但是我如何删除第一个分区并插入一个新分区,这样在任何时候我都有10个分区,我以前也讨论过滚动分区窗口:你能提供滑动窗口分区方法的步骤吗?我在博客上写过滚动分区窗口的事,上面评论中的链接是这个过程的第一部分,第二部分在一个单独的帖子里。