Chinaunix首页 | 论坛 | 博客
  • 博客访问: 650397
  • 博文数量: 789
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 4985
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-28 09:29
文章分类

全部博文(789)

文章存档

2011年(1)

2008年(788)

我的朋友

分类:

2008-10-28 09:44:55


  在编译过程的时候,经常容易发生死锁的情况,一旦发生,少则要等待几个小时,长则几天,KILL进程也不行,很是麻烦!
  
  我分析发生死锁的原因有几条:
  
  1,CURSOR的死循环
  2,重复执行过程
  3,调用了系统的繁忙资源
  4,表空间不够执行此次操作
  
  解决办法:
  1,调试的时候用单一的值代替CURSOR
  2,屏蔽掉反复套用的过程,分开调试
  3,要产生大量数据时,先检查表空间大小
  
  若死锁一旦发生,又想程序继续运行,我所用的方法就是将次存储过程复制创建另外一个,名字不同而已!当然,若有争用资源,这样是不行的
  
  1,在cursor里是必须设置跳出循环的条件的,但是若cursor关联的表比较的多或者条件设置的不对,就可能导致死循环啊
  
  2,重复调用就是在不同的程序中调用了同一个存储过程,这样就可能导致相互锁定了,锁定后,只有等着系统释放资源了,我操作的是,数据库是不能够重启的,只有等!
【责编:admin】

--------------------next---------------------

阅读(307) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~