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

Rel*_*ity 2 sql-server performance

我有一张表有超过3.8亿条记录.我有一个存储过程:

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

整个过程大约需要30分钟才能执行.这DELETE需要28分钟.

删除是一个简单的陈述,有以下几点:

Delete a where condition_1 AND condition_2 AND condition_3
Run Code Online (Sandbox Code Playgroud)

有谁能够帮我?

Rem*_*anu 8

你的桌子是如何组织的?您拥有什么聚集索引以及您拥有哪些非聚集索引?那三个条件究竟是什么?

DELETE的行为与SELECT非常相似,因为它需要找到有资格删除的行.为此,它将使用与SELECT相同的技术,如果您的condition_1,condition_2和condition_3没有覆盖索引,它们将触发一个表扫描,该扫描将按数据大小计时(380M) .