`

SQL Server 一次性删除大量数据时的“事务日志已满”问题及truncate的使用

阅读更多
在使用sqlserver数据库做一次性删除大量同数据(几万条)的时候抛出异常如下:
消息 9002,级别 17,状态 4,第 1 行
数据库 'lylearnnet_syn' 的事务日志已满。若要查明无法重用日志中的空间的原因,请参阅 sys.databases 中的 log_reuse_wait_desc 列。

对库lylearnnet_syn的日志执行清空(DUMP TRANSACTION lylearnnet_syn WITH NO_LOG)或截断(BACKUP LOG lylearnnet_syn WITH NO_LOG)操作后该问题依然存在。

翻阅了一些资料总结了解决的办法大致分为两种,其中各有优缺点:

truncate  table  表名

优点:速度比delete的速度快,且使用事务和系统日志少。  缺点:不带有任何判断条件,不写入日志


set rowcount 200
delete from 表名 where 条件

分批量删除,每次删除200~1000条数据,这种方法可解决数据库的报出的异常。


参考自:
http://www.51obj.cn/?p=183


关于SQL Server中的truncate:
http://www.cnblogs.com/luqingfei/articles/456186.html


SQL Server中truncate、delete和drop的异同点:
http://www.searchdatabase.com.cn/ShowContent_12034.htm
                                                                                                                                                            
分享到:
评论

相关推荐

    SqlMDF数据提取工具

    8、在Sql Server运行在简单日志模式、完全日志模式或者大容量日志记录模式下数据被误(drop、delete、truncate)删除表恢复,updata后的数据恢复等。 9、Sql Serve文件无法附加情况下的数据恢复。 10、Sql Server...

    Log Explorer 4.2 MSSQL数据库日志查看及数据恢复工具

    你可以浏览日志、导出数据、恢复被修改或者删除的数据(包括执行过update,delete,drop和truncate语句的表格)。一旦由于系统故障或者人为因素导致数据丢失,它能够提供在线快速的数据恢复,最大程度上保证恢复期间的...

    Log Explorer for SQL Server v4.22 含注册机

    执行Drop Table和Truncate Table命令虽然会被SQLServer记录到日志文件中,但是并不记录被删除的数据。你可以使用LogExplore提供的功能来恢复这些数据。LogExplore提供两种机制来恢复被Drop或者Truncate的数据。 1、...

    SQL Server删除表及删除表中数据的方法

    在删除表数据时有delete和truncate两种方法,delete和truncate有什么区别呢? SQL Server,我们现在基本上使用的最古老的版本应该是SQL Server 2000吧,应该没有更早的版本了吧?!从SQL Server 2000开始,到SQL ...

    SQL语句中----删除表数据drop、truncate和delete的用法

    SQL语句中----删除表数据drop、truncate和delete的用法,对你爱不完

    SQL Server中TRUNCATE事务回滚操作方法

    本文介绍在事务中回滚TRUNCATE操作的方法,并演示了操作的结果,是可以对TRUNCATE进行回滚操作的。

    SQL中Truncate的用法

    但是,TRUNCATE TABLE 速度更快,使用的系统资源和事务日志资源更少。下面介绍SQL中Truncate的用法 当你不再需要该表时, 用 drop;当你仍要保留该表,但要删除所有记录时, 用 truncate;当你要删除部分记录时...

    Sql Server中清空所有数据表中的记录

    其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入死循环,二是这里使用了微软未正式公开的sp_...

    Microsoft SQL Server 2008技术内幕:T-SQL查询(第二卷)

    主要内容包括SQL的基础理论、查询优化、查询算法及复杂度,以及在使用子查询、表表达式、排名函数、数据聚合和透视转换、TOP和APPLY、数据修改、分区表、特殊数据结构等实际应用时会遇到的各种高级查询问题和解决...

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

    false改成true) 例:update 表 set bit字段=bit字段-1最近有个朋友问我,他说他在SQLSERVER删除几百万到几千万数据是显的很慢,帮他分析了一下,提了一些以下意见,或许对很多人有用,再者也好长没写过BLOG了,...

    sql之truncate_、delete与drop区别.pdf

    sql之truncate_、delete与drop区别.pdf sql之truncate_、delete与drop区别.pdf

    恢复错删除SQL数据的方法大全

    恢复错删除SQL数据的方法大全

    SQLServer2008技术内幕T-SQL查询包含源代码及附录A

    主要内容包括SQL的基础理论、查询优化、查询算法及复杂度,以及在使用子查询、表表达式、排名函数、数据聚合和透视转换、TOP和APPLY、数据修改、分区表、特殊数据结构等实际应用时会遇到的各种高级查询问题和解决...

    Log Explorer for SQL Server v4.22

    执行Drop Table和Truncate Table命令虽然会被SQLServer记录到日志文件中,但是并不记录被删除的数据。你可以使用LogExplore提供的功能来恢复这些数据。LogExplore提供两种机制来恢复被Drop或者Truncate的数据。 1、...

    SQL Server误区30日谈 第19天 Truncate表的操作不会被记录到日志

    误区 #19:Truncate表的操作不会被记录到...使用后台线程处理deferred-drop的好处是这个操作不会使得其所在的事务需要执行很长时间,因此也就不需要大量的锁。在SQL Server 2000SP3之前的版本(这个版本引入了deferred-d

    sql中 truncate 和 delete 有什么区别

    sql中 truncate 和 delete 有什么区别

    Lumigent Log Explorer for SQL Server v4.0.2.rar

    你可以浏览**志、导出数据、恢复被修改或者删除的数据(包括执行过update,delete,drop和truncate语句的表格)。一旦由于系统故障或者人为因素导致数据丢失,它能够提供在线快速的数据恢复,最大程度上保证恢复期间的...

    sqlserver 日志恢复方法(搞定drop和truncate)

    –1 use master backup database logTest to disk=’D:\\Program Files\\Microsoft SQL Server\\MSSQL10.MSSQLSERVER\\MSSQL\\Backup\\logTest.bak’ with format –2 use logTest create table table_1(Id int, ...

    LogExplorer4.2_SqlServer数据库恢复工具

    LogExplorer4.2_SqlServer数据库恢复工具 非常有用的工具,需要的拿去~ 使用Log Explorer查看和恢复数据 使用方法: 打开Log Explorer -> Attach Log File -> 选择SQL Server服务器和登陆方式 -> Connect -> 在...

    清理SQL Server日志释放文件空间的方法

    【问题场景】有一个数据库,它的名字叫CNBlogsText,日志文件霸占了23G硬盘空间,而事务日志已经截断(Truncate),实际日志内容很小,1G都不到。23G的空间只放1G不到的日志,如同用一栋别墅养一只宠物,太了!秉承...

Global site tag (gtag.js) - Google Analytics