sql-server - 删除sql server表中的数据需要很多时间

标签 sql-server performance

我有一个包含超过 3.8 亿条记录的表。我有一个存储过程:

  1. 删除一些记录。
  2. 插入一些东西。

执行整个过程大约需要 30 分钟。此 DELETE 需要 28 分钟。

Delete 是一个简单的语句,大致如下:

Delete a where condition_1 AND condition_2 AND condition_3

谁能帮帮我?

最佳答案

您的餐 table 是如何组织的?你有什么聚集索引和你有什么非聚集索引?这 3 个条件究竟是什么?

DELETE 的行为很像 SELECT,因为它需要找到符合删除条件的行。为此,它将使用与 SELECT 相同的技术,如果您的 condition_1、condition_2 和 condition_3 没有覆盖索引,它们将触发表扫描,该扫描将按数据大小 (380M) 计时.

关于sql-server - 删除sql server表中的数据需要很多时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3883420/

相关文章:

javascript - 将经常使用的字符串定义为变量是否可以提高性能?

sql - 无法使用 Azure 数据库创建外部源

java - Hql查询优化-返回索引id或整个对象

sql - 如何使用聚合函数sql server选择列

sql - 为什么在使用 CASE 表达式时会出现语法错误 Msg 156?

Avro 与 Protobuf 的性能指标

mysql - 使用子查询最大限度地减少更新中的行锁定

performance - 加载 Font Awesome 最快的是什么?

sql-server - T-SQL 选择重复行之间的行

performance - 使用 commitWithin 的 Solr 性能没有意义