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

转载 2006年06月07日 19:13:00
   最近有个朋友问我,他说他在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 * into Table2 From Table1 Where Time > = '2006-03-10' 

然后直接Truncate Table1。无论何种恢复模式都不会进行日志记录
Truncate table Table1

最后对Table2进行改名为Table1
EC sp_rename 'Table2', 'Table1'

海量数据相似查找系列1 -- Minhashing & LSH & Simhash 技术汇总

这一节重点针对高维稀疏数据情况,说如何通过哈希技术进行快速进行相似查找。 试想个案例,就拿推荐系统中item-user矩阵说事。如果你有item数量是百万级别,user是千万级别,这个矩阵是十分稀疏的...
  • hero_fantao
  • hero_fantao
  • 2017年04月19日 21:11
  • 671

海量数据搜索、查询

1.有一篇英文文章(也就是说每个单词之间由空格分隔),请找出“csdn”这个单词出现的次数。要求效率最高,并写出算法的时间级。方法一: 假设不区分大小写,由于英文字母有26个,因此,可以将单词映射为...
  • gao1440156051
  • gao1440156051
  • 2016年05月13日 16:18
  • 553

Oracle库Delete删除千万以上普通堆表数据的方法

Oracle库Delete删除千万以上普通堆表数据的方法 http://www.cnblogs.com/jyzhao/p/3879590.html 需求:Ora...
  • zdy0_2004
  • zdy0_2004
  • 2015年07月16日 21:20
  • 564

海量数据处理

本文转自:http://www.epubit.com.cn/article/290 所谓海量数据处理,是指基于海量数据的存储、处理或操作。因为数据量太大,导致要么无法在较短时间内迅速解决,要么无...
  • xinjianwuhen1991
  • xinjianwuhen1991
  • 2015年11月29日 16:06
  • 1316

【SQL Server性能优化】删除大量数据的方法比较

use master go if exists(select * from sys.databases where name = 'test') drop database test go ...
  • yupeigu
  • yupeigu
  • 2013年08月16日 19:15
  • 5465

SQL Server 海量数据查询代码优化以及建议

1.应尽量避免在  where  子句中对字段进行   null  值判断,否则将导致引擎放弃使用索引而进  行全表扫描,如:     select id from t where num i...
  • yang_629
  • yang_629
  • 2015年07月20日 17:17
  • 2431

海量数据处理之基本方法

2013年9月18日 针对海量数据的处理,可以使用的方法非常多,常见的方法有Hash法、Bit-map法、Bloom filter法、数据库优化法、倒排索引法、外排序法、Trie树、堆、双层...
  • yaotinging
  • yaotinging
  • 2014年04月13日 17:29
  • 8311

海量空间数据的快速检索架构

1、 背景         目前空间信息中信息检索的对象是数据的元数据,这些元数据分布在各个单位中,而这些元数据的总数目是非常巨大的),空间信息检索的目的就是如何在大数据中快速找到用户需要的数据信息。...
  • zhongyangzhong
  • zhongyangzhong
  • 2013年03月04日 23:38
  • 2315

如何处理海量数据(长文)

在实际的工作环境下,许多人会遇到海量数据这个复杂而艰巨的问题,它的主要难点有以下几个方面:一、数据量过大,数据中什么情况都可能存在。如果说有10条数据,那么大不了每条去逐一检查,人为处理,如果有上百条...
  • as02446418
  • as02446418
  • 2015年08月03日 21:27
  • 1178

SQL server 海量数据库的查询优化及分页算法(收藏)

http://www.w17x.com/AritcleDisplay.aspx?id=661 具体如下: 如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页...
  • hliq5399
  • hliq5399
  • 2016年05月19日 09:51
  • 4408
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何在SQLSERVER中快速有条件删除海量数据
举报原因:
原因补充:

(最多只允许输入30个字)