请问在表后面加上nolock和不加有啥区别?

[复制链接]
查看11 | 回复3 | 2011-4-26 14:21:55 | 显示全部楼层 |阅读模式
一般用于查询语句不加nolock的读取,如果数据量很大,会把表锁住,导致在短时间内不能往表里插数据加了nolock自然不会锁表了,但是有脏读的风险。PS:如果你想监控batch job,那么最好用nolock的查询,以免影响batch job的运行。UI的操作一般时间很短,不易受影响
回复

使用道具 举报

千问 | 2011-4-26 14:21:55 | 显示全部楼层
加上了nolock可能会读取未提交的事务或一组在读取中间回滚的页面,有可能发生脏读。
回复

使用道具 举报

千问 | 2011-4-26 14:21:55 | 显示全部楼层
SELECT … WITH (nolock)SELECT … (nolock) 使当前会话的查询,不受其它会话的事务所阻塞。但是这样做,就读取了其它事务的“修改后未提交的”数据。也就是允许“READ UNCOMMITTED”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行