我的应用程序中的报告运行一个需要 5 - 15 秒的查询(仅限于将返回的行数)。
该查询对我的应用程序的几乎所有主表(客户、销售、单位等)有 8 个联接。
一个小工具向我展示,此时,所有这 8 个表都被共享表锁锁定。也就是说,此时不会进行任何更新操作。
朋友的一个解决方案是,在查询中的每个连接(并不强制要求数据100%正确(脏读))都使用NoLock,这样8个表中只有1个会被完全锁定。
这是一个好的解决方案吗?对于一份99%的数据都来自一个表的报表,解锁较少的prio表?
尝试查看 READ COMMITTED SNAPSHOT 而不是 NOLOCK。这意味着数据可能是“旧的”,但永远不会脏。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)