09 2012 档案

摘要:有些报表或者只抓取数据的时候,允许脏读,但是不希望锁住数据,发生死锁的情况。在语句上可以使用下面的两种方法:1)with(nolock)这种方法比较麻烦,需要在所有表后面都加上此修饰词如:select a.a,b.b from a with(nolock) left jion bwith(nolock) on a.id=b.leftID 2)设定整个存储过程为READ UNCOMMITTED在这样做之前,需要设定数据库ALTER DATABASE db1 SET SINGLE_USER WITH ROLLBACK IMMEDIATE ; ALTER DATABASE db1SET ... 阅读全文
posted @ 2012-09-26 16:50 老飞飞 阅读(154) 评论(0) 推荐(0) 编辑
摘要:http://soft.zdnet.com.cn/software_zone/2009/1202/1533810.shtml多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 并发控制的主要方法是封锁,锁就是在一段时间内禁止用户做某些操作以避免产生数据不一致 SQL Server支持的锁粒度可以分为为行、页、键、键范围、索引、表或数据库获取锁 一. 为什么要引入锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: -丢失更新 A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 -脏读 A用户修改了数据,随后B用户又读... 阅读全文
posted @ 2012-09-26 11:07 老飞飞 阅读(1754) 评论(0) 推荐(0) 编辑
摘要:http://13347613.blog.hexun.com/46012586_d.html行锁的基本说明:SELECTau_lnameFROMauthorsWITH(NOLOCK)锁定提示 描述HOLDLOCK 将共享锁保留到事务完成,而不是在相应的表、行或数据页不再需要时就立即释放锁。HOLDLOCK 等同于SERIALIZABLE。NOLOCK 不要发出共享锁,并且不要提供排它锁。当此选项生效时,可能会读取未提交的事务或一组在读取中间回滚的页面。有可能发生脏读。仅应用于SELECT 语句。PAGLOCK 在通常使用单个表锁的地方采用页锁。READCOMMITTED 用与运行在提交读隔离级 阅读全文
posted @ 2012-09-26 11:06 老飞飞 阅读(208) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示