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

在SQL Server中,如何快速删除大表中的数据呢?回答这个问题前,我们必须弄清楚上下文环境和以及结合实际、具体的需求,不同场景有不同的应对方法。1: 整张表的数据全部删除如果是整张表的数据全部清空、删除,这种场景倒是非常简单,TRUNCATE TABLE肯定是最快的。 反而用DELETE处理的话,就是一个糟糕的策略。2: 大表中删除一部分数据对于场景1、非常简单,但是很多实际业务场景,并不能使...
摘要由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)要

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值