【问题标题】:Does creating more SQL AGENT steps for deleting records will be a performance gain or loss创建更多用于删除记录的 SQL AGENT 步骤是否会带来性能增益或损失
【发布时间】:2018-12-21 14:42:32
【问题描述】:

我的任务是从表中删除 900 万条记录

所以我打算通过 SQL 代理工作来做,我准备了脚本来从一个删除语句中删除 50000 条记录

那么现在我需要创建包含许多步骤的单个作业还是可以创建各种作业新作业而无需时间表?

哪个资源效率更高?

注意:日志备份配置为每20分钟一次

谢谢, Vishvas.K

【问题讨论】:

  • 关于删除大卷有很多答案。任何命中 > 5K 行的语句都会导致表锁定,因此如果您安排多个作业以每个清除 50K 行,您将最终锁定您的表。批量删除是最好的方法。

标签: sql-server sql-server-2014 sql-server-2016 sql-server-agent


【解决方案1】:

下面的快速简便的解决方案怎么样 -

  WHILE 1 = 1
  BEGIN
     DELETE TOP(5000)
     FROM Table_Name
     WHERE <condition_here>
     IF @@ROWCOUNT < 5000 BREAK;
  END

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-18
    相关资源
    最近更新 更多