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

2016-02-19 10:43 3 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'

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

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

延伸阅读
标签: 办公软件
    近日,校长交给我一个麻烦的任务:将全校两千多名学生的学籍信息录入到office 2000中作为资料保存。硬着头皮输了二十来个人,就遇到两个麻烦:一是要在单元格之间不断切换输入法,影响输入速度;二是输入的学号前面部分都是zjsx(“枝江市实验小学”的拼音字头),重复输入令人厌烦,而且容易出错。常言道:“磨刀不误砍柴工...
标签: SQLServer
  在SQL Server中提供了这种恢复方式的存储过程。 一个数据库包括两个文件,mdf数据库文件和ldf日志文件     1.sp_attach_db [@dbname =] 'dbname',[@filename1 =] 'filename_n'      给系统添加一个数据库,在dbname指定数据库名称,filename_n指定数据库的文件和日志文件。比如我有一个j...
标签: SQLServer
我们了解到OPENXML使用起来简单直接,但非常占用内存。本周,我们讨论SQL Server 2005的新功能,它允许你将XML数据分解到关系格式中,而不必耗用太多内存。 在举例说明如何分解上一篇文章中的数据时,我们首先了解一下XQuery和它在SQL Server 2005中为开发者提供的功能。 XQuery介绍 XQuery,也称作XML Query,是一种查询XML数...
1。Oracle中: select org_id from organizations start with org_id= :org_id connect by prior org_id=supervision_org_id order by supervision_org_id 2。Sql Functiong:  FunctionNo SubFunctionNo SubFunctionType     01.   systemadmin Privilege 0     01.   systemadmin subsysadmin 1(表示樹...
标签: windows系统
在Windows 8.1中按不同条件快速筛选应用 Win8.1的开始屏幕有一个小小的改进在左下角增加了一个小小的箭头按钮,这个按钮可以帮我们迅速带到Win8.1系统的应用列表中,在这里我们可以看到当前安装的所有应用。 点击Win8.1开始屏幕左下方的小箭头图标,触摸屏用户向上滑动即可,切换到应用列表界面。 图示:点击箭头按钮或者触...

经验教程

804

收藏

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