Oracle11g 如何查看存储过程的运行状况和异常日志

小灯光环
博客专家认证
2016-07-27 11:53:47
如题~
一个大约600行的存储过程,功能是高考录取~ 数据量不大~ 主要操作是遍历了一个1万多行的游标和大量的if判断~

问题是:在生产服务器每次执行一半左右就死掉了好像~ 这种情况怎么定位问题?还有奇怪的一点是我本地执行没问题,生产服务器执行就会出现这种情况,唯一的区别就是生产服务器是Window Server 2008,我本地是Win 7 ~ 都是64位的Oracle11g。。

最奇怪的一点就是:生产服务器居然偶尔也可以执行成功!执行过5次~ 1次执行完了~ 其它4次都是中途好像卡死~

求解决方案
...全文
1943 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ghx287524027 2016-07-27
  • 打赏
  • 举报
回复
第一:这两个可以查看当前正在执行的sql (1) select a.program, b.spid, c.sql_text,c.SQL_ID from v$session a, v$process b, v$sqlarea c where a.paddr = b.addr and a.sql_hash_value = c.hash_value and a.username is not null; (2) select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXT from v$session a, v$sqlarea b where a.sql_address = b.address 第二:检查死锁情况 1)用dba用户执行以下语句,可以查看产生死锁的机器是哪一台 select username,lockwait,status,machine,program from v$session where sid in (select session_id from v$locked_object) 如果有输出的结果,则说明有死锁,且能看到死锁的机器是哪一台。字段说明: Username:死锁语句所用的数据库用户; Lockwait:死锁的状态,如果有内容表示被死锁。 Status: 状态,active表示被死锁 Machine: 死锁语句所在的机器。 Program: 产生死锁的语句主要来自哪个应用程序。 2)用dba用户执行以下语句,可以查看到被死锁的语句。 select sql_text from v$sql where hash_value in (select sql_hash_value from v$session where sid in (select session_id from v$locked_object))
ghx287524027 2016-07-27
  • 打赏
  • 举报
回复
至于系统日志文件 alert_sid.log ,其位置可以在 dba 权限下执行
show parameter background_dump_dest
命令查看

17,089

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧