请教sql2008中的分区表如何删除分区? 100czb]

发布时间:2017-3-26 15:29:24 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"请教sql2008中的分区表如何删除分区? 100czb]",主要涉及到请教sql2008中的分区表如何删除分区? 100czb]方面的内容,对于请教sql2008中的分区表如何删除分区? 100czb]感兴趣的同学可以参考一下。

一个表,现阶段每天有100万左右的数据,以后还会增加。目前该表性能很差,打算把这个表按天分区,且只保存最近3个月的数据,对于超过3个月的旧数据,就用作业自动删除掉。 了解了下,对sqlserver的分区表,可以用split 来增加分区,用merge来合并分区,但merge合并分区后,原来分区中的数据并不会删除。用什么方法可以把原来分区中的数据删除掉呢,千万别是按分区来delete数据啊,这个语句可耗时了。 像oracle中有alter table xxx drop partition yyy,我要实现的就是这样的功能。 谢谢。

具体没操作过,可以看看这个文章  http://blog.csdn.net/smallfools/archive/2009/12/04/4937878.aspx

晕,楼上的方法就是用merge的。 那篇文章的后面都列有结果,merge前是3+2,merge后是5,merge前后数据总量并没有改变嘛。

2K8   帮顶...

   其实实现的方式很多,个人觉得分区的概念是希望避免出现del数据的情况;否则定期生成新表(按月的方式),再定期删除(drop)相比更好用,基本上SQL2K下是类似这样的方式实现分区效果。

关注中。

给你个2008的。http://blog.csdn.net/bhtfg538/archive/2010/05/12/5583583.aspx

好像贴错了

引用 4 楼 claro 的回复:其实实现的方式很多,个人觉得分区的概念是希望避免出现del数据的情况;否则定期生成新表(按月的方式),再定期删除(drop)相比更好用,基本上SQL2K下是类似这样的方式实现分区效果。 这个是分区视图嘛,我们目前在SQL2000下也是这么用的,但分区视图管理不方便,所以想改成SQL2008的表分区。

没有人知道吗?

帮顶 我也想知道。。更好的方法。

不用delete,可以使用truncate来删除,建立一个临时表结构和原表一样的,具体代码如下: select object_name([object_id]),* from [sys].[partitions] where [object_id]=object_id('table_name')  order by [partition_number],[index_id] select object_name([object_id]),* from [sys].[partitions] where [object_id]=object_id('table_name_temp')  order by [partition_number],[index_id] alter table table_name switch partition 1 to table_name_temp partition 1 truncate table table_name_temp

switch

这个我不会

先switch到临时表中,然后merge。 如果不需要保存数据,可以drop临时表

分区表中有数据时是不能够删除的,只能将数据先移到其它表中,再删除。 所括分区函数和分区方案在分表中未删除之前都是不可以删除的。

sql server删除分区只能用merge 你如果同事需要删除数据的话得分两步走: 1.先建一张临时表,然后把要删除的书switch到这张临时表里; 2.与相邻的分区merge。

例如要将A表某天数据删除,首先该表应该是以天为单位的分区表, 需要如下操作: 1.建一个和A表一样的B表, 2.然后用switch语句将A表中某天数据移动到B表, 3.再将B表整个drop, 4.最后用Merge命令将A表中的空白分区合并 我前些天做过一个动态删除多个表数据的工具,这样做效率很高

楼上Ok!

上一篇:数据库问题,大侠们帮帮小辈吧 20huaxl342308]
下一篇:sql server 2008 如何分页和总条数一次性查出来 20korein]

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款