大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> 数据库 -> 如何在SQLSERVER中快速有条件删除海量数据

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

时间: 2021-07-31 作者:daque

即使你的硬盘空间小,而且不想树立数据库的日记为最小(由于蓄意其余平常的日记蓄意仍旧记载),并且对速率诉求比拟高,并废除一切的数据倡导你用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举行更名为table1ec sp_rename 'table2', 'table1'

 

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.