本文通过实例来分析数据库死锁造成网站无法访问的解决方法。
问题:网站访问不了,主机重启之后,网站运行正常。
解决对策:由于数据库死锁造成。
死锁原因: 提取查询数据相应数据,修改Stat表,都是修改同一条数据,进行大数据量的操作,多用户同时操作时,造成数据库死锁和阻塞;
知识拓展: 1、SQL死锁和阻塞。 2、死锁测试方法:程序中将数据库操作,循环操作1万次,打开多个窗口同时执行。 3、查找数据库死锁原因的方法。 下面的SQL语句运行之后,便可以查找出SQLServer的死锁和阻塞的源头。
| use mastergodeclare @spid int,@bl intDECLARE s_cur CURSOR FORselect 0 ,blockedfrom (select * from sysprocesses where blocked>0 ) awhere not exists(select * from (select * from sysprocesses where blocked>0 ) bwhere a.blocked=spid)union select spid,blocked from sysprocesses where blocked>0OPEN s_curFETCH NEXT FROM s_cur INTO @spid,@blWHILE @@FETCH_STATUS = 0beginif @spid =0select "引起数据库死锁的是:"+ CAST(@bl AS VARCHAR(10)) + "进程号,其执行的SQL语法如下"elseselect "进程号SPID:"+ CAST(@spid AS VARCHAR(10))+ "被" + "进程号SPID:"+ CAST(@bl AS VARCHAR(10)) +"阻塞,其当前进程执行的SQL语法如下"DBCC INPUTBUFFER (@bl )FETCH NEXT FROM s_cur INTO @spid,@blendCLOSE s_curDEALLOCATE s_curexec sp_who2 |
4、查看当前进程,或死锁进程,并能自动杀掉死进程:
| 【内容导航】 |
| 第1页:实例分析由于数据库死锁造成网站无法访问的解决方法 | 第2页:实例分析由于数据库死锁造成网站无法访问的解决方法 |
Oracle技巧分享oracle10g 知识篇相关资讯 于数据库死锁 本文评论 查看全部评论 (0)