oracle怎样清理临时表空间?

5个月前 (10-16 08:31)阅读3回复0
zaibaike
zaibaike
  • 管理员
  • 注册排名1
  • 经验值211885
  • 级别管理员
  • 主题42377
  • 回复0
楼主

  一般来说,在完成Select语句、create index等一些利用TEMP表空间的排序操做后,Oracle是会主动释放掉临时段a的。但有些有侯我们则会碰到临时段没有被释放,TEMP表空间几乎满的情况,以至是我们重启了数据库仍没有处理问题。那个问题在论坛中也常被网友问到,下面我总结一下,给出几种处置办法。

一、重启库

库重启时,Smon历程会完成临时段释放,TEMP表空间的清理操做,不外良多的时侯我们的库是不允许down的,所以那种办法贫乏了一点的应用时机,不外那种办法仍是很好用的。

二、Metalink给出的一个办法

修改一下TEMP表空间的storage参数,让Smon历程不雅注一下临时段,从而到达清理和TEMP表空间的目标。

SQL>alter tablespace temp increase 1;

SQL>alter tablespace temp increase 0;

三、我常用的一个办法,详细内容如下:

1、 利用如下语句a查看一下认谁在用临时段

SELECT username,

sid,

serial#,

sql_address,

machine,

program,

tablespace,

segtype,

contents

FROM v$session se,

v$sort_usage su

WHERE se。

  saddr=su。

  session_addr

2、

那些正在利用临时段的历程

SQL>Alter system kill session 'sid,serial#';

3、把TEMP表空间回缩一下

SQL>Alter tablespace TEMP coalesce;。

0
回帖

oracle怎样清理临时表空间? 期待您的回复!

取消