我正在使用 NHibernate 从报告数据库中查询数据,并希望优化 READ 性能。“脏读”根本不是问题。NHibernate 提供锁定模式。如果我使用 LockMode.UpgradeNoWait 模式,我可以看到在生成的 SQL 中出现了“with (updlock, rowlock)”。我一直在阅读此内容,但不幸的是,我的 SQL 不够复杂,无法真正理解其后果。我相信我真正想要的是出现一个“with (nolock)”语句,但 NHibernate 并没有提供任何这样做的方法。
那么我的问题是:假设我的表正在其他事务中写入。针对该表的查询中的“with (updlock, rowlock)”提示是否会导致它更快地返回?它会损害性能吗?该查询是针对单个表的非常简单的选择。没有加入。覆盖查询的表上有一个非聚集索引。