SQL 2008 - 我是否在简单的select语句中使用NOLOCK?

时间:2009-09-30 15:16:18

标签: sql-server

我正在链接到第三方SQL数据库,我只选择信息,从不更新/删除。

当我从数据库中选择时,第三方告诉我总是使用NOLOCK。我工作的其他一些人说不要担心使用它。

如果我的select语句将在1秒内执行,那么WITH(NOLOCK)是否影响很大?

我应该只是为了良好的做法吗?

2 个答案:

答案 0 :(得分:3)

NOLOCK将有助于防止您的查询减慢供应商的应用程序速度。但是,你可能会得到糟糕的结果,请参阅:http://sqlblogcasts.com/blogs/tonyrogerson/archive/2006/11/10/1280.aspx或只是google“nolock的危险”

答案 1 :(得分:0)

快速回答:

如果您从一张非常繁忙的桌子中进行选择(并且您可能不知道这个第三方数据库有多忙),那么我会谨慎地使用锁定提示。

我可以从经验告诉您,在繁忙的事务数据库中,锁定提示可以正常工作,并且可以成为在一秒钟内获取查询的主要贡献者(以及其他优化)。