2017-06-05 99 views
0

我想使用SELECT WITH NOLOCK,我想使用SELECT WITH NOLOCK查询的表没有更新查询,我想获取的数据少于当前插入的记录。我想使用NOLOCK,因为有时候我我在SELECT查询中遇到了超时异常。我认为这是因为表将由LOCKED由插入查询不断运行和SELECT查询必须等待很长时间,所以它给出了超时错误。选择查询没有锁

因此,请建议我应该在这里使用NOLOCK,我已阅读一些文章是关于未提交的交易,他们建议不要使用NOLOCK

+1

**尝试,**已经回答您的问题[这里](https://stackoverflow.com/questions/210171/effect-of-nolock-hint-in-select-statements) –

回答

0

正如文档(Table Hints on MSDN Docs)中提到的那样,当使用NOLOCK提示时,您可以看到尚未提交的结果(即由事务提交)。

通过使用此提示,您应该了解这些问题,但是如果它不影响您的逻辑,则可以使用它。

0

您不仅可以“看到尚未提交的结果”,但可以读取一些行两次或根本不读取它们。所以,如果不知道你的表结构和查询,我们不会建议你。如果即使在读取“数据少于当前插入记录”的情况下被阻止,您可能在桌面上没有适当的索引?