【发布时间】:2019-06-27 18:34:16
【问题描述】:
我有运行以下 SQL 查询的 Powershell 脚本。此脚本计划每 5 分钟运行一次。你能告诉我每5分钟查询一次数据库是否会导致数据库死锁。有人可以说明死锁在 SQL 中是如何工作的。
SELECT TOP 1000 * FROM TABLE1
我不关心从选择查询中获得的数据。我正在提取这些数据以检查响应时间。参数WITH(NOLOCK)是否防止死锁?
【问题讨论】:
-
或者你可以搜索一下,有很多好的结果。 sql server what is a deadlock.
-
也许你的同事的意思是阻塞而不是死锁。在这种情况下,您可以添加
NOLOCK提示来避免这种情况,但要了解结果可能在事务上不一致,包括在某些情况下跳过或重复的行。 -
请允许我建议您忽略该同事在该领域的所有其他 cmets。如前所述,您问一个理论问题是因为有人这么说。不要试图解决不存在的问题。没有 order by 子句的 TOP 是不明智的 - 但这是一个非常不同且不相关的问题。
-
我没有使用锁删除了我的答案,SMor 是正确的。建议在不了解副作用或解释副作用的情况下玩锁是不明智的。
标签: sql-server database powershell