sql server 对大表大数据删除方案解析
2011-06-20 15:31
337 查看
通常对一张表的数据按指定条件进行删除 一般的做法都是 delete from table where 。。。。
但这样会有一个问题,就是数据库在对表进行删除时都会写日志,即使把日志模式改成简单时,还是会写日志,这是sql server 本身的机制。即使通过主键进行删除也一样很慢,除非很有空,通过程序定时循环删除,如果要一次性批量删除可能会有点难度。
经过本人测试发现通过DEL删除是非常慢的。在1700W条记录的表中删除700W的数据,直接通过主键删除还是很慢,。
可以考虑新建一张备份表,然后把不需要删除的数据insert到新建的表中。然后直接把原来的表drop掉,然后再把新建的表直接改名,添加索引等,效率会更高很多
但这样会有一个问题,就是数据库在对表进行删除时都会写日志,即使把日志模式改成简单时,还是会写日志,这是sql server 本身的机制。即使通过主键进行删除也一样很慢,除非很有空,通过程序定时循环删除,如果要一次性批量删除可能会有点难度。
经过本人测试发现通过DEL删除是非常慢的。在1700W条记录的表中删除700W的数据,直接通过主键删除还是很慢,。
可以考虑新建一张备份表,然后把不需要删除的数据insert到新建的表中。然后直接把原来的表drop掉,然后再把新建的表直接改名,添加索引等,效率会更高很多
相关文章推荐
- ORACLE大表删除部分数据的最佳方案
- 基于阿里云RDS数据误删除的回滚方案
- SQL Server中删除重复数据的几个方法
- 使用 SQL Server 2008 数据类型-xml 字段类型参数进行数据的批量选取或删除数据
- 最简单删除SQL Server中所有数据的方法
- EAS删除表格设置方案数据
- sql server 数据行无法删除 和 复制表结构
- 实战 SQL Server 2008 数据库误删除数据的恢复
- SQL Server 2008 数据库误删除数据的恢复
- tongyuekeji123 实战 SQL Server 2008 数据库误删除数据的恢复
- SQL Server中删除重复数据的几个方法
- SQL Server 2008 数据库误删除数据的恢复
- Sql Server重复数据删除
- 基于阿里云RDS数据误删除的回滚方案
- .SQL Server的主键可以设置成让所有数据删除后恢复成以1开始计数
- sql server 得到表中重复数据及删除
- SQL Server 数据加密功能解析
- SQL SERVER 游标删除无数据试图
- 案例解析|从数据规划、业务分析到管理决策的数据治理方案
- MySQL 删除大表的性能问题解决方案