DROP TABLE table_name PURGE;

解决方案 »

  1.   

    多谢masterz(www.fruitfruit.com)的指点,但这种方法在我下次倒库的时候可以使用,能不能有什么方法能把我已经使用过的那么硬盘空间更有效地利用起来?
    另外删用户和建用户的最大好处就是简单,并且不用指定表的情况,保证每次我数据都全部更新了。这种方法难道用来倒数据不好吗?
      

  2.   

    奇怪,楼主试过masterz(www.fruitfruit.com)的方法了吗?为什么我执行他那句drop语句说是不能执行的??
      

  3.   

    查了一下有关PURGE的介绍:http://dev.21tx.com/2004/11/30/10091.html
    确实是一个很有用的功能,但是在10g下使用的功能,目前我用的是9.2,还涉及不到那个问题。
    我在数据库方面懂得很浅,主要是在程序开发方面,为了省事,才频繁使用删除用户,建立用户的方法来倒数据库,有没有高人能指点一下,这种方法数据库到底做了什么操作?
    现在我的数据文件已经达到6G,以我的数据量可能远远达不到这个大小,而且察看数据文件的使用情况,使用率也是很大的,怎么做才能把那些没用的东西给真正删除呢?
      

  4.   

    用 alter tablespace sp coalesce 合并空间碎片有效果吗
      

  5.   

    drop user userName cascade;删除用户和此用户下面的所有对象。
      

  6.   

    以下是我查到的有关空间碎片的信息:如果表空间的默认存储参数pctincrease不为0,oracle将定期启动SMON后台进程,合并表空间相邻的存储碎片,
    如果pctincrease是0,SMON进程不会执行合并操作.
    如果表空间中所有的区都具有相同的大小,则不需要手工合并存储碎片.本地管理方式的表空间不需要进行存储碎片的合并操作,因为oracle会自动利用位图自动合并.
    只需要在字典管理方式的表空间中手工合并存储碎片.也许我装oracle使用的默认设置正好不用手工合并存储碎片,合并空间碎片没有碎片。
    另外我发现表空间中有一个叫做UNDOTBS1,居然有1.7G,比我的数据文件还要大,不知道是用来干什么的,高手顺手指点一下呢:)
      

  7.   

    表空间中有一个叫做UNDOTBS1,这个是不是undo的表空间,用于会滚段的?有时,我的回滚段表空间设计的是自动增长,结果在做大数据量操作的时候,从最初设计的4G 自己增长到 8G,造成整个硬盘空间吃紧……
    楼主可以对这个表空间进行相关性分析啊!在oracle的管理器下面右键点击表空间就可以看到了。
      

  8.   

    undotbs1是回滚表空间,是系统管理回滚段用的
    1.7G并不大,只能说明你的硬盘太小了,或者你处理事务时提交的太少
      

  9.   

    就按傻傻猫说的那样drop user userName cascade;删除用户和此用户下面的所有对象。----------
    这样操作就足够释放所有空间了
      

  10.   

    这么说就比较正常了,目前我的数据库占用了6G的空间,回滚表空间占用1.7G,存数据的数据文件占用了3G,其中使用了40%,其他的东西加起来也就差不多了。
    另外请教一下高人,undotbs1作为回滚表空间,我们可不可以使用它来手动回滚我们的一些操作,例如:我测试时,做错了一条数据,他导致很多表的数据发生变化,我手动去改表会比较麻烦,能不能使用这个回滚空间来解决这个问题?
    另外这个回滚表空间我能删除吗?因为毕竟它一直大下去,总会有满的时候?谢谢各位大虾的帮助,通过这个问题大家一起学习有关删除用户和删除数据的问题,希望最后能提交成FAQ:)
      

  11.   

    你可以用事物处理来解决数据更新问题,如果有错,可以回滚(rollback),没问题可以提交(commit),这个回滚空间不可以删除,但可以整理