如何在 SQL SERVER 中快速有条件删除海量数据

2016-02-19 12:10 5 1 收藏

下面,图老师小编带您去了解一下如何在 SQL SERVER 中快速有条件删除海量数据,生活就是不断的发现新事物,get新技能~

【 tulaoshi.com - 编程语言 】

最近有个朋友问我,他说他在SQLSERVER删除几百万到几千万数据是显的很慢,帮他分析了一下,提了一些以下意见,或许对很多人有用。

    如果你的硬盘空间小,并且不想设置数据库的日志为最小(因为希望其他正常的日志希望仍然记录),而且对速度要求比较高,并清除所有的数据建议你用turncate table1,因为truncate 是DDL操作,不产生rollback,不写日志速度快一些,然后如果有自增的话,恢复到1开始,而delete会产生rollback,如果删除大数据量的表速度会很慢,同时会占用很多的rollback segments,同时还要记录下G级别的日志 ;当然如果有条件删除比如where time〈'2006-3-10' 怎么办,能不能不记录日志用delete,回答是不行的,SQL Server 引擎在设计上就会对 Delete 操作进行日志记录。至今没有办法强制制定某一些语句不记录到日志中,如果在执行 Delete Table1 where Time 〈 '2006-3-10' 由于涉及的记录比较多,所以日志记录也相应很大(3-4G),如果可行,我建议用以下方式:

    选出您所需要保留的记录到新的表。如果您使用 Full Recovery Mode
根据SELECT INTO的记录数,日志可能会比较大
Select * into Table2 From Table1 Where Time 〉 = '2006-03-10'

    然后直接Truncate Table1。无论何种恢复模式都不会进行日志记录:Truncate table Table1

    最后对Table2进行改名为Table1:EC sp_rename 'Table2', 'Table1' 

来源:http://www.tulaoshi.com/n/20160219/1600080.html

延伸阅读
标签: 怀孕
孕妇吃什么鱼最好 选择鱼有条件 孕妇吃什么鱼最好,孕妇吃墨鱼有滋肝肾、补气血、清胃去热等功能。有养血、明目、通经、安胎、利产、止血、催乳等功能。鲤鱼有健脾开胃、利尿消肿、止咳平喘、清热解毒等功能。同时,对于孕妇来说有安胎通乳的功效。 孕妇吃什么鱼最好,孕妇吃青鱼有补气养胃、化湿利水、祛风除烦等功能。其所含锌硒等微量...
获得MS SQL的版本号 execute master..sp_msgetversion 得到硬盘文件信息 参数说明:目录名,目录深度,是否显示文件 execute master..xp_dirtree 'c:' execute master..xp_dirtree 'c:',1 execute master..xp_dirtree 'c:',1,1 列出服务器上安装的所有OLEDB提供的程序 execute master..xp_...
标签: 夫妻 情感
怎样的老公才是好老公?爱你没有条件 怎样的老公才是好老公? 你知道好老公有什么标准吗?下面我们一起来看看,好老公的标准吧! 1、爱你没有条件 你一定爱这个男人,这个男人也一定爱你。这种爱是纯感情的,不带有任何利益色彩,也不带有任何功利目的。你们两个人在一起,不论何时何地,都会非常地开心快乐和幸福...
本文介绍了几种不同的策略如何在SQL Server中由原子建立分子查询。 每位SQL Server开发员都有自己的首选操作方法。我的方法叫做分子查询。这些是由原子查询组合起来的查询,通过它们我可以处理一个表格。将原子组合起来,可以建立分子。当然也会有限制(化学家所称的化合价),但一般来说,这个原理还是适用的。 在本文中,我将...
对于采用 SQL Server 2005 Analysis Service技术生成多维数据集的BI项目来说,数据访问权限的控制有两个级别:一个是在多维数据集中设置,一个是在前台展现工具中设置。本文将介绍怎样在多维数据集中设置访问权限控制的方法。 对于访问控制需求(这里以SQL Server 2005自带的示例说明)有如下说明:假设Adventure Works Cycles将全球...

经验教程

215

收藏

99
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部