我在sql server 2008 db中有事务表。我想在这张桌子上做每日分区。所以我使用了分区创建向导。我给了分区架构,patition函数应有尽有。我将边界值设置为1.1.2011和10.1.2011以及每日水平。然后我将每一天的值输入到该表中(仅用于检查),它将插入到每个分区中。每个分区至少包含1行。但我想以这样的方式,如果我在11.1.2011进入,它将被加载到第一个分区是删除现有的数据..我怎么能这样做。
答案 0 :(得分:1)
从技术角度来看,这是可能的,并且您正在尝试复制Oracle所具有的一种间隔分区形式,即可为您快速生成新分区。在SQL Server中,您必须自己完全管理此过程 - 分区维护,分区的创建/删除必须在过程中进行编码。
那可以吗?是的 - 您可以通过添加触发器来模拟间隔分区,并且我在前一段时间(http://sqlfascination.com/2010/09/12/interval-partitioning-in-sql-server-2008/)点击了一个示例
你应该这样做吗?我严重怀疑它 - 性能损失不会微不足道,并且在触发器中管理分区是测试的练习,而不是生产代码。
如果您知道每晚需要向前移动分区,您可以安排存储过程来为您处理这一切,这比使用触发器更有效。