如何删除sqlserver:如何在SQLSERVER中快速有条件删除海量数据来源: 发布时间:星期日, 2009年9月6日 浏览:93次 评论:0
1.SQLSERVER数据库改bit类型为 not Boolean(即,true改成false;false改成true)
例:update 表 bit字段=bit字段-1 最近有个朋友问我他说他在SQLSERVER删除几百万到几千万数据是显很慢帮他分析了下提了些以下意见或许对很多人有用再者也好长没写过BLOG了起探讨下 如果你硬盘空间小并且不想设置数据库日志为最小(希望其他正常日志希望仍然记录)而且对速度要求比较高并清除所有数据建议你用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 * o Table2 From Table1 Where Time > = '2006-03-10' 然后直接Truncate Table1无论何种恢复模式都不会进行日志记录 Truncate table Table1 最后对Table2进行改名为Table1 EC sp_rename 'Table2', 'Table1' 0
相关文章
读者评论发表评论 |