我正在运行一个作业,该作业从 7 个表中删除数据,其中 2 个表包含 10-20 万条记录。但是,当从仅包含 42000 条记录的特定表 web_activity 中删除数据时,作业会陷入困境。大部分时间需要4个小时。但有时只需要7分钟。如果这是索引的问题那么7分钟执行当天会发生什么。
还有另外 4 个作业每天并行运行,有时会产生阻塞,但阻塞是由于其他作业占用了资源。
我关心的是如何才能减少删除web_activity表42000条记录的四个小时
还有一点:有大量的逻辑读2066225339。我不确定是否是这个原因。
在对该表执行 DBCC SHOWCONFIG 时,它显示以下数据:
听起来你想删除表中的所有记录。 如果是这种情况,我会使用 TRUNC 而不是 DELETE,因为它只是删除表中的所有记录。 当您需要查找特定记录时,更多地使用DELETE。 您可能还需要打开 SQL 事件探查器来准确查看 7 分钟和 4 小时情况下发生的情况,以帮助缩小可能影响其他领域的任何问题的范围。