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)是一个提示,指示数据库应该将行锁定在行范围上.这意味着数据库将避免将锁升级到块或表范围.当只有一行或只有几行将受查询影响时,您可以使用提示,以防止锁定锁定不会被查询删除的行.这将让另一个查询同时读取不相关的行,而不必等待删除完成. 如果您在一个将删除大量行的查询中使用它,则可能会降低性能,因为数据库将尝试避免将锁升级到更大的范围,即使这样更有效. 通常,您不需要向查询添加这样的提示,因为数据库知道要使用什么样的锁.只有在您遇到性能问题的情况下,因为数据库作出了错误的决定,您应该向查询中添加这样的提示. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- SQLServer2008/2005 生成数据字典SQL语句
- CentOS 7下MySQL服务启动失败的快速解决方法
- sql-server – SQL Server许可,是按CPU吗?那么一个32 CPU就
- SQL Server XML查询快速入门(18句话)
- sql-server – SQL Server是否具有类似于Oracle Streams Ad
- sqlserver性能计数器
- SQLSERVER查询整个数据库中某个特定值所在的表和字段的方法
- neo4j – 以Cypher格式导出整个数据库(ASCII文本)?
- mysql 8.0 安装配置方法教程
- MySQL索引的缺点以及MySQL索引在实际操作中有哪些事项