首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSAccess: Select (NOLOCK) vs?

MSAccess: Select (NOLOCK) vs?
EN

Stack Overflow用户
提问于 2014-08-05 15:12:01
回答 2查看 6.6K关注 0票数 2

我有一个多用户的访问应用程序。我有一项任务似乎引起了偶然的冲突:

  1. 用户正在从链接的SQL Server表中获取数据到他们的本地DB,非常简单: 从dbo_Item.*中选择dbo_Item其中(dbo_Item.INVID)=4892));
  2. 其中一些获取可能涉及350K+记录,并且需要>~2分钟才能完成
  3. 我现在有db.QueryTimeout = 0
  4. 如果两个用户同时试图访问远程表,我们偶尔会看到SQL/Network错误。它们并不试图访问相同的数据集。
  5. 我怀疑这是一个超时问题,因为错误在1-2分钟内抛出。

Server端数据的所有者建议在我的访问查询中添加(NOLOCK)提示。我并不认为这是一种选择,但我确实发现了一个随机的建议,即执行“选择不同的”不会锁定表--这是真的吗?

是否有任何避免记录锁定问题的建议--或者还有什么其他的想法需要寻找?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-05 23:30:19

我决定使用应用了(NOLOCK)的passthru选择查询。然后,我根据passthru查询创建了一个make_table查询。似乎运作得很好。

票数 1
EN

Stack Overflow用户

发布于 2014-08-05 17:01:46

他们是在搜索350 k记录还是复制350 k记录?

如果搜索350 k记录,INVID上的索引可能是有用的。

如果复制350 k记录,DISTINCT可以通过删除重复项来减少这一点,但是如果没有重复的条目,则没有帮助。

如果其他人正在访问相同的数据,NOLOCK会有所帮助,实际上是让其他人修改数据,但是您的描述是他们正在访问不同的数据。如果从同一张桌子上,NOLOCK可以帮上忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25142305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档