我有一个存储过程,当 NOLOCK 提示添加到查询时,它会执行更多读取操作。我很困惑 - 请问有人知道为什么吗?
详细信息:查询是:
SELECT * FROM dbo.<table-name> WITH (NOLOCK).
它进行了 40,000 次读取,但行数不到 2,000 行。我确定大多数这些读取是由 3 个 TEXT 列引起的。(如果我省略了这些,它会下降到 59 次读取!)但是当我删除 WITH (NOLOCK) 时,它会从 40,000 次读取到 13,000 次。我重复了几次,因为我认为我一定搞砸了,但这两种方式都非常一致。