加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 删除中的ROWLOCK的目的是什么时候应该使用它?

发布时间:2020-12-12 08:30:27 所属栏目:MsSql教程 来源:网络整理
导读:例) 何时应该使用这个语句: DELETE TOP (@count)FROM ProductInfo WITH (ROWLOCK)WHERE ProductId = @productId_for_del; 何时应该做: DELETE TOP (@count)FROM ProductInfoWHERE ProductId = @productId_for_del; 解决方法 with(rowlock)是一个提示,指示数
例)

何时应该使用这个语句:

DELETE TOP (@count)
FROM ProductInfo WITH (ROWLOCK)
WHERE ProductId = @productId_for_del;

何时应该做:

DELETE TOP (@count)
FROM ProductInfo
WHERE ProductId = @productId_for_del;

解决方法

with(rowlock)是一个提示,指示数据库应该将行锁定在行范围上.这意味着数据库将避免将锁升级到块或表范围.

当只有一行或只有几行将受查询影响时,您可以使用提示,以防止锁定锁定不会被查询删除的行.这将让另一个查询同时读取不相关的行,而不必等待删除完成.

如果您在一个将删除大量行的查询中使用它,则可能会降低性能,因为数据库将尝试避免将锁升级到更大的范围,即使这样更有效.

通常,您不需要向查询添加这样的提示,因为数据库知道要使用什么样的锁.只有在您遇到性能问题的情况下,因为数据库作出了错误的决定,您应该向查询中添加这样的提示.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读