笔记41-徐 阻塞与死锁

笔记41-徐 阻塞与死锁

 1 --阻塞与死锁
 2 
 3 --对于一个多用户数据库系统,尤其是大量用户通过不同应用程序同时访问同一个数据库的系统
 4 --如果发生一个或多个以下现象,管理员就应该检查是否遇到了阻塞或者死锁了
 5 --(1)并发用户少的时候,一切正常。但是随着并发用户的增加,性能越来越慢
 6 
 7 --(2)客户端经常收到以下错误
 8 --错误1222
 9 --已经超过了锁请求超时时段
10 
11 --错误1205
12 --事务(进程ID XXX)与另一个进程被死锁在XX资源上,并且已被选作死锁牺牲品。请重新运行
13 --该事务
14 
15 
16 --超时错误
17 --timeout expired.the timeout period elapsed prior to completion of the operation or
18 --the server is not responding
19 
20 --(3)应用程序运行很慢,但是SQL这里CPU和硬盘利用率很低。DBA运行sp_who或sp_who2这样
21 --的短小命令很快返回
22 
23 --(4)有些查询能够进行,但是有些特定的查询或修改总是不能返回
24 
25 --(5)重启SQL就能解决。但是有可能跑一段时间以后又会出问题
26 
27 
28 --锁在一个连接里的生命周期是和事务的生命周期紧密相连的,数据结构不同,SQLSERVER需要申请的锁
29 --的数量也会不同
30 
31 
32 --造成阻塞和死锁的3大原因:
33 --1连接持有锁时间过长
34 --2锁数目过多
35 --3锁粒度过大

 

posted @ 2013-07-27 16:14 桦仔 阅读(...) 评论(...)  编辑 收藏