如何在sql server 2008中进行分区

发布于 2024-10-20 21:40:48 字数 225 浏览 4 评论 0原文

我在 sql server 2008 数据库中有事务表。我想在这张桌子上进行每日分区。所以我使用了分区创建向导。我给了分区模式、分区函数一切。我将边界值设置为 1.1.2011 和 10.1.2011 以及每日水平。然后我将值输入到该表中,每天一行(仅用于检查),它将插入到每个分区中。最后每个分区各包含 1 行。但我想以这样的方式,如果我在 2011 年 1 月 1 日输入,它将被加载到第一个分区并删除现有数据。我该如何做到这一点。

I am having transaction table in sql server 2008 db. I would like to do daily partition on this table. So i used the partition creation wizard. I gave the partition schema, patition function everything. I set the boundary values as 1.1.2011 and 10.1.2011 and daily level. then i entered the values to that table as each day one row (just for checking ), it will get insert into each partition. Atlast each partition contain 1 row each. But i want in such a way, if i entered on 11.1.2011, it will be loaded to 1st partition be deleting the existing data.. How i can do this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

反目相谮 2024-10-27 21:40:48

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

那么可以吗?是的 - 您可以通过添加触发器来模拟间隔分区,我不久前就举了一个例子(http://sqlfascination.com/2010/09/12/interval-partitioning-in-sql-server-2008/

你应该这样做吗?我严重怀疑这一点 - 性能影响不会微不足道,并且管理触发器中的分区是测试中的练习,而不是生产代码。

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

From a technical standpoint this is possible, and you are trying to duplicate a form of interval partitioning that Oracle has, where the new partitions are generated on the fly for you. In SQL Server you have to manage this process entirely yourself - the partition maintenance, creation / deletion of partitions must be coded within procedures.

So can it be done? yes - you can simulate interval partitioning by adding a trigger, and I knocked up an example of this a while back (http://sqlfascination.com/2010/09/12/interval-partitioning-in-sql-server-2008/ )

Should you do it? I severely doubt it - the performance hit will not be insignificant, and managing the partitions in a trigger was an exercise in testing, not production code.

If you know that each night you need to move the partition forward, you can schedule a stored proc to handle this all for you, which would be far more efficient than using a trigger.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文