在 SQLSERVER 中快速有条件删除海量数据

2016-02-19 10:43 1 1 收藏

下面图老师小编跟大家分享一个简单易学的在 SQLSERVER 中快速有条件删除海量数据教程,get新技能是需要行动的,喜欢的朋友赶紧收藏起来学习下吧!

【 tulaoshi.com - 编程语言 】

如果你的硬盘空间小,并且不想设置数据库的日志为最小(因为希望其他正常的日志希望仍然记录),而且对速度要求比较高,并清除所有的数据建议你用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'

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

来源:https://www.tulaoshi.com/n/20160219/1595568.html

延伸阅读
标签: SQLServer
  在SQL Server中提供了这种恢复方式的存储过程。 一个数据库包括两个文件,mdf数据库文件和ldf日志文件     1.sp_attach_db [@dbname =] 'dbname',[@filename1 =] 'filename_n'      给系统添加一个数据库,在dbname指定数据库名称,filename_n指定数据库的文件和日志文件。比如我有一个j...
标签: 孕前准备
生二胎是一直很多家庭的愿望,但受到政策的限制,很多家庭总是不能如愿以偿。而近年来二胎政策是越来越宽松了,只要符合条件的家庭都可以申请生二胎,那么,哪些人可以合法生二胎呢? 11日有媒体报道,广州将有可能再次申请“单独二胎”(夫妻双方一方为独生子女的可生育第二个孩子)试点。广东省计生委、广州计生局随后分...
标签: SQLServer
我们了解到OPENXML使用起来简单直接,但非常占用内存。本周,我们讨论SQL Server 2005的新功能,它允许你将XML数据分解到关系格式中,而不必耗用太多内存。 在举例说明如何分解上一篇文章中的数据时,我们首先了解一下XQuery和它在SQL Server 2005中为开发者提供的功能。 XQuery介绍 XQuery,也称作XML Query,是一种查询XML数...
如何快速在PPT中删除全部备注信息   童鞋们现在都是如何删除PPT备注嗒?一个个逐条删Tulaoshi.Com除的童鞋请默默举手,快快抱走这条技巧吧![奥特曼]文件信息检查问题检查文档演示文稿备注检查,即可全部删除备注信息。一次性删除PPT备注! 如何在PPT中插入Excel表格   Excel中选中内容,点击开始栏中的剪贴板中的复制按...
标签: MySQL mysql数据库
开发人员的噩梦——删除重复记录 想必每一位开发人员都有过类似的经历,在对数据库进行查询或统计的时候不时地会碰到由于表中存在重复的记录而导致查询和统计结果不准确。解决该问题的办法就是将这些重复的记录删除,只保留其中的一条。 在SQL Server中除了对拥有十几条记录的表进行人工删除外,实现删除重复记录一般都是写一段代码...

经验教程

197

收藏

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