数据文件增大之后就不能回缩了可以把表move到另一个表空间,手工删除数据文件实例和例程是Instance的两种翻译方式

解决方案 »

  1.   

    你首先可能根本没有自己建立表空间。后来,你在建立用户或表的时候没有指定自定义的标空间。你用了oracle默认的表空间。它不仅供数据存放等,还供回滚段应用。你的操作,已经记录在回滚段中。即使你后来已经提交命令。回滚段的占用空间已没有办法释放。
    总有一天,你的问题不仅是空间没有返回,更严重的是,你的数据库可能无法运作,。所以,要自定义表空间。尤其是对大数据量的操作。楼上的办法非常好。
      

  2.   

    再请教如何自定义表空间可以控制表空间呢?请大家给一个sql语句
    学习
      

  3.   

    oracle是不会回收已使用的空间的。要么你先导出,删除表空间,再建表空间,再导入
      

  4.   

    参考
    用delete删除几个表的数据(数据量比较大)后,如何释放空间啊?? http://www.itpub.net/260794.html
      

  5.   

    大哥,我按照你们的说法做了,
    可是怎样手工删除数据文件呢?不会是在windows下直接shift+delete吧,这样也太恨了,让oracle知道了,它不会同意的
      

  6.   

    9i 删除表空间可以连带删除数据文件的
    DROP TABLESPACE tbs_xx INCLUDING CONTENTS AND DATAFILES;
      

  7.   

    晕,表空间是可以调整的啊。你删除了500M的对象后,可以把对象所在的表空间减少就可啦,表空间减少后,他对应的数据文件大小也相应减少。前提是该表空间没满。   方法:大开oem ->存储->表空间,选择表空间后可以调整
      

  8.   

    你要明白你对你的数据库做了什么操作!!!!
    切切!!!!
    删除数据文件你参考如下:
    desc v$tempfile/v$datafile;
    select file#,name from v$tempfile;
    alter database datafile * offline/drop;
    SQL> alter database tempfile 2 offline ;Database altered.
    SQL> alter database tempfile 2 drop;Database altered.SQL> drop tablespace temp2;Tablespace dropped.