mx表中数据太多,查询变慢,备份去年2011年的,然后将2011年数据删掉。 delete from t_busi_presend_mx where cjsj<to_date("2012","yyyy");这个语句,执行1个多小时了,没有反应,现在决定,把这个session删掉,想别的方法来删除这600W数据,kill session方法如下(按顺序执行sql)。某DBA给我分析:
1.select sum(bytes/1024/1024/1024) GB ,status from dba_undo_extents group by status;kill session之前:
[sql] - SQL> select sum(bytes/1024/1024/1024) GB ,status from dba_undo_extents group by status;
-
- GB STATUS
- ---------- ---------
- 0.00878906 UNEXPIRED
- 0.01403808 EXPIRED
- 0.78137207 ACTIVE
kill session之后:
[sql] - SQL> select sum(bytes/1024/1024/1024) GB ,status from dba_undo_extents group by status;
-
- GB STATUS
- ---------- ---------
- 1.25329589 UNEXPIRED
- 0.01867675 EXPIRED
- 0.00097656 ACTIVE
答:这个delete 操作,会将删除的数据放到 undo 回滚段里面,如果回滚段空间不够,就会等待,你的回滚段只有 14m,可用,所以这个删除操作停在这了。
两个办法1 等2 把这个进程杀掉问:等 应该是没有结果的吧 因为数据有1.25G 回滚段只有14M 怎么等都等不来吧 这种情况 会有结果么 ? 不是只有14M回滚段?
答:不知道啥时候出结果,因为你的数据库一直在用。不是 只有 14m,而是只有 14m 可用。你现在没有删除成功,能回滚。杀进程吧。
2.select sid,serial#,logon_time,username,program,machine,event from v$session
where wait_class <> "Idle"
order by logon_time desc
--查当前登录到数据库的会话kill session之前:我的电脑名:LEJER0FQOX6AT6H.所以上面第二行记录是我刚才执行的delete会话。
Oracle表空间创建删除,omf,分区表创建Oracle正则表达式相关资讯 Oracle基础教程
- Oracle块编程返回结果集详解 (11/10/2013 10:45:58)
- Oracle基础教程之设置系统全局区 (08/22/2013 14:24:00)
- Oracle基础教程知识点总结 (06/18/2013 07:43:32)
| - Oracle基础教程之tkprof程序详解 (10/22/2013 11:49:50)
- Oracle基础教程之sqlplus汉字乱码 (07/18/2013 16:30:00)
- Oracle 管理之 Linux 网络基础 (02/16/2013 18:37:35)
|
本文评论 查看全部评论 (0)