大批量delete 优化方案
超过100万以上数据 删除的时候 会非常慢且产生大量日志文件 最大的问题是内存爆表 导致得多次重启服务才能删除整个库 暂时提出初步优化方案
1.设置日志为简单模式,处理完后恢复
ALTER DATABASE tcgpsdb SET RECOVERY SIMPLE --简单模式
ALTER DATABASE tcgpsdb SET RECOVERY FULL --还原为完全模式
2.delete的时候 会造成整表锁定,所以采用分批删除
@onecount 这里设置为一百万一次,可以自由调节
declare @onecount int
set @onecount=1000000
print getdate()
while 1=1
begin
delete top(@onecount) from XX where FSendTime<'2019-1-01'
IF (@@rowcount<@onecount) BREAK;
print getdate()
end
删除一千多万条数据耗时 注意:搜索时间字段有加索引
02 1 2019 11:25AM (1000000 行受影响)
02 1 2019 11:26AM (1000000 行受影响)
02 1 2019 11:27AM (1000000 行受影响)
02 1 2019 11:27AM (1000000 行受影响)
02 1 2019 11:28AM (1000000 行受影响)
02 1 2019 11:28AM (1000000 行受影响)
02 1 2019 11:29AM (1000000 行受影响)
02 1 2019 11:29AM (1000000 行受影响)
02 1 2019 11:30AM (1000000 行受影响)
02 1 2019 11:31AM (1000000 行受影响)
02 1 2019 11:31AM (636657 行受影响)
另外还有 插入到新表然后 drop 老表 把新表改为原来表名 这种涉及停机 所以暂不考虑
以上方案还是不够理想,这里抛砖迎玉 希望有更好的同学能给出 更快速 更省内存的解决方案
大批量delete 优化方案的更多相关文章
- Redmine性能优化方案
近来公司redmine服务器表现很糟糕,在16核,64GRAM的机器上,压测结果竟然只有每秒5~7个请求,部分页面一个都出不来. 以下是我对Redmine性能优化方案: redmine服务器性能问题排 ...
- mysql大内存高性能优化方案
mysql优化是一个相对来说比较重要的事情了,特别像对mysql读写比较多的网站就显得非常重要了,下面我们来介绍mysql大内存高性能优化方案 8G内存下MySQL的优化 按照下面的设置试试看:key ...
- MySql优化方案
mysql优化方案总结 u Mysql数据库的优化技术 对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索 ...
- 数据库sql优化方案
声明:这个不是我自己写的,是我们老师给我,我拿出来分享一下! 为什么要优化: 随着实际项目的启动,数据库经过一段时间的运行,最初的数据库设置,会与实际数据库运行性能会有一些差异,这时我们 ...
- 数据库SQL优化大总结之 百万级数据库优化方案(转载)
网上关于SQL优化的教程很多,但是比较杂乱.近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充. 这篇文章我花费了大量的时间查找资料.修改.排版,希望大家阅读之后,感觉 ...
- mysql 百万级数据库优化方案
https://blog.csdn.net/Kaitiren/article/details/80307828 一.百万级数据库优化方案 1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 wher ...
- SQL通用优化方案(where优化、索引优化、分页优化、事务优化、临时表优化)
SQL通用优化方案:1. 使用参数化查询:防止SQL注入,预编译SQL命令提高效率2. 去掉不必要的查询和搜索字段:其实在项目的实际应用中,很多查询条件是可有可无的,能从源头上避免的多余功能尽量砍掉, ...
- 数据库SQL优化百万级数据库优化方案
1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
- SQL优化:一些简单的又实用的SQL优化方案【转】
面试过程中,面试官有极高的频率会问道数据库的优化,SQL语句的优化,网上关于SQL优化的教程很多,但是鱼目混杂,显得有些杂乱不堪.近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请 ...
随机推荐
- 如何解决Failed to retrieve MSVC Environment from XXXXXXXX
升级了新版的Qt5.9.3后,本人的电脑也出了这个问题. 最后通过删除了path中的一些错误.多余的环境变量解决了.(删除了一些mysql的环境变量)
- jquery 1.7.2源码解析(一)总体架构
总体架构 jquery模块分类和依赖关系: 自调用匿名函数: /** * 自调用匿名函数,jquery加载完后立即被调用,用来加载各个模块 * 为什么使用自调用匿名函数: * 通过使用自调用匿名函数, ...
- [CSAcademy]Or Problem
[CSAcademy]Or Problem 题目大意: 一个长度为\(n(n\le2\times10^5)\)的序列\(A(0\le A_i<2^{20})\),将其分为恰好\(m\)个连续段, ...
- ESlint开发环境配置
ESLint 是在 ECMAScript/JavaScript 代码中识别和报告模式匹配的工具,它的目标是保证代码的一致性和避免错误,是JS开发过程中极佳工具,这篇文章将以WebStorm为例告诉你如 ...
- Flask请求request
Flask中的request是一个公共变量,需要导入request from flask import Flask,request 接收url中的参数 @app.route("/req&qu ...
- Android Studio 修改主题和字体
打开设置 或 修改主题 修改字体 参考资料 Android Studio主题以及字体修改
- linux 下通过xhost进入图形界面,经常会出现报错“unable to open display”
linux 下通过xhost进入图形界面,经常会出现报错“unable to open display” linux下的操作步骤如下: [root@localhost ~]# vncserver N ...
- JS_高阶函数(filter)
//2017/7/18 //高阶函数:filter. //filter也是一个常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素.和map()类似,Array的filter()也接收一 ...
- JS_高阶函数(map and reduce)
//高阶函数:一个函数可以接受另一个函数作为参数,这种函数称之为高阶函数. */ function f(x,y,f){ return f(x)+f(y); } var sumAbs=f(-6,4,Ma ...
- 【高精度&想法题】Count the Even Integers @ICPC2017HongKong/upcexam5563#Java
时间限制: 1 Sec 内存限制: 128 MB Yang Hui's Triangle is defined as follow. In the first layer, there are two ...