用TOAD调试过程计算机系统出现死锁是因为,怎么解决

请教如何用toad 9对存储过程调试。
[问题点数:30分,结帖人kkcolcol]
请教如何用toad 9对存储过程调试。
[问题点数:30分,结帖人kkcolcol]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2007年4月 Oracle大版内专家分月排行榜第三2007年2月 Oracle大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。使用游标时如何处理死锁
&来源:读书人网&【读书人网():综合教育门户网站】
使用游标时如何避免死锁在数据库里创建了一个 定时服务,每隔5秒就执行一个存储过程,存储过程会用到游标去
使用游标时如何避免死锁在里创建了一个&定时服务,每隔5秒就执行一个存储过程,存储过程会用到游标去执行另一个存储过程,这个存储过程涉及到几表,会有一些&update,select,insert动作,这样是不是很容易会死锁?怎么避免?能够改变锁的范围吗,只锁定某一行的数据?[最优解释]引用:引用:表现为事务锁请问&我的存储是不是要加上&事务?oracle不需要显式的begin&transaction....,所以一般情况下是不需要的,除非你有很特殊的业务需求。只需要在做完后commit/rollback就可以了[其他解释]很容易发生死锁,死锁发生的原因是你执行间隔时间有点短,如果上一个存储过程还没有执行完毕的话,下个过程又开始执行,就会发生死锁,看你的情况,存储过程执行的操作似乎比较多,请确认5秒钟之内能够执行完毕?[其他解释]死锁发生的可能性很小的。oracle自动在DML操作行上加锁[其他解释]引用:在里创建了一个&定时服务,每隔5秒就执行一个存储过程,存储过程会用到游标去执行另一个存储过程,这个存储过程涉及到几表,会有一些&update,select,insert动作,这样是不是很容易会死锁?怎么避免?能够改变锁的范围吗,只锁定某一行的数据?对于程序员而言,如果你作到了事务正常/异常结束后,进行了commit/rollback,剩下的死锁问题就由Oracle解决。在上述前提下,对于Oracle而言,死锁的概率还是非常小的。通常死锁的情形是两种:(1)没有commit/rollback。(2)在一个长事务中,不能commit/rollback。对于后一种情形,程序员应该尽量设法避免。锁的粒度是RDBMS决定的。Oracle提供行级锁。如果你的update只更新一条记录,基本就是使用的行级锁。死锁通常发生在两个独立的进程/线程之间,准确的说是两个事务之间,和是否使用存储过程嵌套、是否使用游标没有关系,有关系的只是事务完成的时间(忘记commit/rollback的本质就是事务变成了一个长事务而已)。因此,避免Oracle死锁两个主要手段:(1)尽量设计短事务(2)记得commit/rollback[其他解释]引用:引用:在数据库里创建了一个&定时服务,每隔5秒就执行一个存储过程,存储过程会用到游标去执行另一个存储过程,这个存储过程涉及到几表,会有一些&update,select,insert动作,这样是不是很容易会死锁?怎么避免?能够改变锁的范围吗,只锁定某一行的数据?对于程序员而言,如果你作到了事务正常/异常结束后,进行了commit/rollback,剩下的死锁问题就由O……我的存储过程没有使用&事务[其他解释]你的这些过程、游标都属于同一个事务,怎么可能发生死锁?除非他们中有自治事务[其他解释]引用:你的这些过程、游标都属于同一个事务,怎么可能发生死锁?除非他们中有自治事务如果&存储在执行时,刚刚有他人也在同时对那些表进行操作,这样会发生死锁吗?[其他解释]引用:引用:你的这些过程、游标都属于同一个事务,怎么可能发生死锁?除非他们中有自治事务如果&存储在执行时,刚刚有他人也在同时对那些表进行操作,这样会发生死锁吗?我感觉同时提交的话&会[其他解释]引用:引用:你的这些过程、游标都属于同一个事务,怎么可能发生死锁?除非他们中有自治事务如果&存储在执行时,刚刚有他人也在同时对那些表进行操作,这样会发生死锁吗?LZ应该去看看X.S锁协议,或者X、S加共享锁协议。只有在某人使用的了X锁(update、insert、delete等),才会锁住记录或者表,表现为事务记录。如果另外一个人要操作,与之冲突,数据库会让事务等待该锁释放后再执行,这并不会构成死锁。如果第一个获得X锁的人一直不释放,则另外一个试图获得X锁人就必须一直等待。因此,假如前面的所说的两个人分别以两个程序表示,如果程序中在update/insert/delete之后执行了commit/rollback,则只有数据库出错的情况下才会出现死锁。对于Oracle而言,这种概率是非常低的。如果不是程序对数据库进行操作,比如有人用toad进行了update、insert、delete操作,同时又没有commit/rollback,这时另一个人/程序对该表进行操作时,则很可能会碰到“死锁”状态。这里所谓的死锁其实是等待X锁资源释放。如果只是读操作select,则不论多少人/程序同时操作,都不会产生死锁。[其他解释]表现为事务锁[其他解释]引用:表现为事务锁请问&我的存储是不是要加上&事务?[其他解释]wqkjj多谢你的建议,结贴。我的异常网推荐解决方案:oracle存储过程,/oracle-develop/177537.html用TOAD调试过程出现死锁,怎么解决。
[问题点数:40分,结帖人wolongshan]
用TOAD调试过程出现死锁,怎么解决。
[问题点数:40分,结帖人wolongshan]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2003年1月 Oracle大版内专家分月排行榜第二2002年10月 Oracle大版内专家分月排行榜第二
2002年12月 Oracle大版内专家分月排行榜第三2002年8月 Oracle大版内专家分月排行榜第三
2003年1月 Oracle大版内专家分月排行榜第二2002年10月 Oracle大版内专家分月排行榜第二
2002年12月 Oracle大版内专家分月排行榜第三2002年8月 Oracle大版内专家分月排行榜第三
2003年1月 Oracle大版内专家分月排行榜第二2002年10月 Oracle大版内专家分月排行榜第二
2002年12月 Oracle大版内专家分月排行榜第三2002年8月 Oracle大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。如何用Toad调试存储过程、触发器 - 下载频道
- CSDN.NET
&&&&如何用Toad调试存储过程、触发器
如何用Toad调试存储过程、触发器
Starting with the 10g release, Oracle now offers a new interface, known as JDWP, for debugging PL/SQL and stored Java procedures. Toad fully supports both interfaces, but we recommend you continue to use DBMS_DEBUG unless you need to debug your Java code.
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
您可能还需要
数据库下载排行求问toad for mysql debug 存储过程 程序不响应_百度知道
求问toad for mysql debug 存储过程 程序不响应
我每次debug存储过程的时候,谢谢:操作系统.for.0也试过,想找一个比较强大的客户端软件,新手提问,可以debug调试存储过程.51虽然以前用过Oracle 但是MySQL也算是菜鸟一个.for.6。所以找到toad for mysql和DbForge,所以使用的toad for MySQL.Studio:本地电脑
(6:4.MySQL:WIN7MYSQL,也是这样)net framework版本.3.MySQL不是很好用。环境,个人感觉DbForge:7.Studio.22toad for mysql版本。但是碰到一个问题,toad for mysql程序就不响应了,请教下最近新接触MySQL,希望有大神关照
提问者采纳
var&#47,一般新的系统都使用MYISAM作为缺省的数据表类型:myisamchk -of tablename, isamchk数据检测恢复工具,必须确认在执行这条指令时MySQL服务器必须没有启动. myisamchk:[ -x &#47,修复之后可以在用check table命令来进行检查,可以用。前者使用起来比较简便;mysql,这里以myisamchk为例子进行说明。推荐使用.MYI其中的&#47。需要注意的时.local里面启动MySQL服务器前。1。在新版本的phpMyAdmin里面也可以使用check&#47,DATA_DIR是你的MySQL数据库存放的位置,如果你打算把这条命令放在你的rc,而isamchk适用于ISAM类型的数据表. check table 和 repair table登陆mysql 终端;*&#47,而pathtochk则是myisamchk所在的位置:mysql -uxxxxx -p dbnamecheck table tabTest,可以参见它的使用帮助:如果出现的结果说Status是OK,对于使用RPM安装的用户应该是&#47.sock ] && &#47,则不用修复;lib/tmp/tmp&#47.local里面,如果有Error,如果需要修复的话;pathtochk&#47:repair table tabTest.进行修复;mysql&#47。-----------------------------另外可以把下面的命令放在你的rc。当发现某个数据表出现问题时可以使用;repair的功能;DATA_DIR&#47。2, isamchk其中myisamchk适用于MYISAM类型的数据表;myisamchk -of &#47.sock是MySQL监听的Sock文件位置。这两条命令的主要参数相同.MYI进行检测;tmp/mysql,可以使用.MYI关于myisamchk的详细参数说明;*。需要注意的时在进行修改时必须确保MySQL服务器没有访问这个数据表,保险的情况下是最好在进行检测时把MySQL服务器Shutdown掉,对于使用源码安装则是&#47,一种方法使用mysql的check table和repair table 的sql语句有两种方法,另一种方法是使用MySQL提供的多个myisamchk.sock可以根据自己的实际情况进行变更
提问者评价
来自团队:
其他类似问题
为您推荐:
debug的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 计算机系统出现死锁是因为 的文章

 

随机推荐