Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1209611
  • 博文数量: 398
  • 博客积分: 10110
  • 博客等级: 上将
  • 技术积分: 4055
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-23 20:01
个人简介

新博客http://www.cnblogs.com/zhjh256 欢迎访问

文章分类

全部博文(398)

文章存档

2012年(1)

2011年(41)

2010年(16)

2009年(98)

2008年(142)

2007年(100)

我的朋友

分类: Oracle

2007-12-25 18:13:45

某些时候我们遇到一个长时间运行的批处理超出了边界并影响了在线处理的性能而不得不kill它,但是如果杀掉那个进程,可能导致回滚花费的时间超过其运行完成剩余所需的时间,并且所有以使用的资源都被浪费。
有一个未文档化的工具Oradebug中有个命令可以挂起无限Oracle进程,并且挂起进程后,他将不再消耗资源除非恢复它。
如下:
oradebug setorapid &Pid
oradebug suspend
恢复
oradebug setorapid &Pid
oradebug resume
使用这些命令需要sysdba身份。
但是在以下情况下,这种方法是不合适的:
1.其他进程需要以不兼容模式锁住挂起的进程锁住的资源;
2.长时间运行的进程依赖于回滚段信息进行一致性读,这些信息可能会在其挂起期间被覆盖;
阅读(733) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~