从 SQL 代理作业中删除操作需要时间

问题描述 投票:0回答:1

我正在运行一个作业,该作业从 7 个表中删除数据,其中 2 个表包含 10-20 万条记录。但是,当从仅包含 42000 条记录的特定表 web_activity 中删除数据时,作业会陷入困境。大部分时间需要4个小时。但有时只需要7分钟。如果这是索引的问题那么7分钟执行当天会发生什么。

还有另外 4 个作业每天并行运行,有时会产生阻塞,但阻塞是由于其他作业占用了资源。
我关心的是如何才能减少删除web_activity表42000条记录的四个小时

还有一点:有大量的逻辑读2066225339。我不确定是否是这个原因。

在对该表执行 DBCC SHOWCONFIG 时,它显示以下数据:

在此输入图片描述

sql-server sql-server-2012 sql-delete production sql-execution-plan
1个回答
0
投票

听起来你想删除表中的所有记录。 如果是这种情况,我会使用 TRUNC 而不是 DELETE,因为它只是删除表中的所有记录。 当您需要查找特定记录时,更多地使用DELETE。 您可能还需要打开 SQL 事件探查器来准确查看 7 分钟和 4 小时情况下发生的情况,以帮助缩小可能影响其他领域的任何问题的范围。

© www.soinside.com 2019 - 2024. All rights reserved.