sql – 删除中的ROWLOCK的目的是什么时候应该使用它?
发布时间:2020-05-23 14:46:03 所属栏目: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)是一个提示,指示数据库应该将行锁定在行范围上.这意味着数据库将避免将锁升级到块或表范围.当只有一行或只有几行将受查询影响时,您可以使用提示,以防止锁定锁定不会被查询删除的行.这将让另一个查询同时读取不相关的行,而不必等待删除完成. 如果您在一个将删除大量行的查询中使用它,则可能会降低性能,因为数据库将尝试避免将锁升级到更大的范围,即使这样更有效. 通常,您不需要向查询添加这样的提示,因为数据库知道要使用什么样的锁.只有在您遇到性能问题的情况下,因为数据库作出了错误的决定,您应该向查询中添加这样的提示. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
