mysql快速删除大表数据部分数据_SQL Server大表如何快速删除数据

本文探讨了在SQL Server中快速删除大表数据的方法,包括整张表清空、部分数据删除。建议根据数据量比例采取TRUNCATE、新建表、分批删除等策略,并强调删除或禁用无关索引、创建合适索引以提高删除效率。
摘要由CSDN通过智能技术生成

在SQL Server中,如何快速删除大表中的数据呢?回答这个问题前,我们必须弄清楚上下文环境和以及结合实际、具体的需求,不同场景有不同的应对方法。

1: 整张表的数据全部删除

如果是整张表的数据全部清空、删除,这种场景倒是非常简单,TRUNCATE TABLE肯定是最快的。 反而用DELETE处理的话,就是一个糟糕的策略。

2: 大表中删除一部分数据

对于场景1、非常简单,但是很多实际业务场景,并不能使用TRUNCATE这种方法,实际情况可能只是删除表中的一部分数据或者进行数据归档后的删除。假设我们遇到的表为TEST,需要删除TEST表中的部分数据。那么首先我们需要对表的数据量和被删除的数据量做一个汇总统计,具体,我们应该采用下面方法:

·检查表的数据量,以及要删除的数据量。然后计算删除的比例,

sp_spaceused'dbo.TEST';

SELECT COUNT(*) AS DELETE_RCD WHERE TEST WHERE ......

2.1 删除大表中绝大部分的数据,但是这个绝大部分怎么定义不好量化,所以我们这里就量化为60%。如果删除的数据比例超过60%,就采用下面方法:

1: 新建表TEST_TMP

2:将要保留的数据转移到TEST_TMP

3: 将原表TEST重命名为TEST_OLD, 而将TEST_TMP重命名为TEST

4: 检查相关的触发器、约束,进行触发器或约束的重命名

5: 核对操作是否正确后,原表(TEST_OLD)要

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值