gpt4 book ai didi

sql - 如何在不使用500,000+行表中的截断表的同时有效地删除行

转载 作者:行者123 更新时间:2023-12-03 10:08:39 26 4
gpt4 key购买 nike

假设我们有30个列和500,000行的表Sales。我想删除表中的40万(那些在"toDelete='1'"的地方)。

但是我有一些限制:

  • 表被读/写为“经常”,我不希望很长的“删除”花费很长时间并将表锁定太长时间
  • 我需要跳过事务日志(就像TRUNCATE一样),但是在执行"DELETE ... WHERE..."时(我需要提出一个条件),但是还没有找到任何方法来执行此操作...

  • 欢迎任何建议来改变
    DELETE FROM Sales WHERE toDelete='1'

    到更分区的东西,可能还没有事务日志。

    最佳答案

    调用DELETE FROM TableName将在一个大事务中完成整个删除操作。这很贵。

    这是另一种将批量删除行的选项:

    deleteMore:
    DELETE TOP(10000) Sales WHERE toDelete='1'
    IF @@ROWCOUNT != 0
    goto deleteMore

    关于sql - 如何在不使用500,000+行表中的截断表的同时有效地删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11230225/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com