!
""
解决:查看
"#!
服务是否正常。端口是否正常。防火墙是否关闭。检查
"#!
配置文
件。
"!$%&!!
!'()
"!$"#!
更新表时出现:
*+,*-,.&"$/0
原因:一个事务等待另一个事务获得的锁时,会发生,禁用了自动提交,第一个会话启动
了一个事务,接下来,一旦
$1
语句在事务中运行,就会获得该行的独占锁,但是没
有提交,事务处于打开状态,导致其他事务一直等待。
$""2
在同一事务内先后对同一条数据进行插入和更新操作;
并发访问冲突:当多个事务同时访问相同的数据行,并且其中一个事务正在修改数据行
时,其他事务可能会被阻塞,等待修改完成。如果等待时间超过了
的锁等待超时
时间设置,就会出现该异常。
处理:
34!.4&4"$
设置超时时
间,
567834!.4&4"$2)0 !3!
对当前线程不生效
或者分批处理数据,可以减少锁等待时间,降低异常发生概率。
95:;1'"4<"4!.0
!:'"'"4<"34/0
查看是否有未结束的事务
.!!=/4"#!4<4>
这个
和
<&1!
的
对应 结束会话
"#!
服务器内存使用量很大,
'
内存不足。
原因:
!$/
管理内存的方式与
&&
不同,写入缓存的重复利用的不会释放换出。正
常现象。
-""#!??3/15!!3./1@!.
'$&< !.0
原因:死锁通常是两个
"#!
客户端都请求更新数据,
$1
和
!
的时候,客户
端
锁定了某一行,未提交事务,此时客户端
3
也需要
$1
或
!
,此时
3
就会进
入等待直至
!.
。
处理:
)
事务操作锁定的行数减少(更精确的索引条件);
)
保证事务较短执行时
间,完成马上提交。
处理分析:
在采用
ABB@7
的
中,更新操作默认会加行级锁,行级锁是基于索引的,在分析
死锁之前需要查询一下
"#!
的执行计划,看看是否用到了索引,用到了哪个索引,对于
没有用索引的操作会采用表级锁。如果操作用到了主键索引会先在主键索引上加锁,然后
在其他索引上加锁,否则加锁顺序相反。在并发度高的应用中,批量更新一定要带上记录
的主键,优先获取主键上的锁,这样可以减少死锁的发生。
((
查询
<& 3$0
<&C9A50
评论