• 主页
  • 基础类
  • 应用实例
  • 新技术前沿
zjlgigi 2009年12月06日
为何 with (nolock) 会失效 ?
Hi 高手们 ,

小弟有一个用来专门跑报表用的数据库,因为该数据库不会写入或更新任何数据,所以小弟在大部份的 SELECT 语句里都加入了 with (nolock) 的关键字以提高数据库的性能。

但奇怪的是居然有部份 select 语句不起效 , 如下 :

select acode, '1st', product, sum(qty) as qty, 00 as flag from t_info with (nolock)
where acode in ('aaa', 'bbb') and 'X'=right(barcode, 1)
and date <= '2009-11-1'
group by areacode,product
having sum(qty) <> 0

表结构 : t_info
acode product barcode qty date
aaa BB KJSDFX 1 2009-11-1
bbb CC KSLJDF 2 2009-10-1
aaa DD OSIDFJ 1 2009-9-3
aaa BB DSSX 1 2009-3-1


这条语句在系统里一运行,就会引起其它 SQL 语句的 "阻塞" ....

是否使用了聚合函数的 SELECT 语句就不可以用 with (nolock) 的选项,不知道是 SQL 语句写得不好还是应该用另一种写法,请高手们指点一下。

非常感谢 !


外星的菜鸟
...全文
440 点赞 收藏 8
写回复
8 条回复

还没有回复,快来抢沙发~

发动态
发帖子
MS-SQL Server
创建于2007-09-28

1.4w+

社区成员

25.3w+

社区内容

MS-SQL Server相关内容讨论专区
社区公告
暂无公告