使用sql查询中删除的输出的缺点

时间:2016-05-17 22:29:18

标签: sql-server

我在我的查询中使用输出已删除。*我有数百万行数据。

使用它有什么不利之处吗?

我的查询是:

DELETE from Table1
    OUTPUT deleted.* INTO Table2
    FROM Table4 MH
    inner join Table3 M
    on MH.id = M.Mid 
    where condition

它完美无缺。但这会锁定整个桌子吗? 这是一个好方法吗?

1 个答案:

答案 0 :(得分:0)

您确实需要将已删除的行写入另一个表,这可能会增加delete语句运行的时间。但是对于删除而言,使用输出子句而不是没有的锁应该是相同的(可能是不同的持续时间)。在非生产环境中使用扩展事件会话自行验证它!