请教各位朋友,现在作程序用oracle数据库,数据量很大,存储执行很多,查询也很多,如何删除数据使高水位降下来?前提是程序需要一直在线,多谢各位朋友!

解决方案 »

  1.   

    删除全表数据用truncate,别的用ALTER TABLE xxx move 
      

  2.   

    vc555,这位朋友,我只能删除部分数据,所以不能用truncate,试一下你说的后一种方法,多谢!
      

  3.   

    ruihuahan,这位朋友,我的高水位是指删除数据后,表空间不变小,物理空间也不变小
      

  4.   

    ALTER   TABLE   xxx   move   
      

  5.   

    要回收表的不再使用的extent可以使用:
    alter table table_name deallocate;
    但这并不会干改变数据文件的物理大小,他只是把表的未用空间返回给了表空间,数据库系统可以把表空间的未用空间分配给其他数据库对象,比如其他表。要回收数据文件的空间可以手工调整数据文件的大小:
    alter databse datafile 'x:\filepath\filename' resize xxxxM
      

  6.   

    ALTER       TABLE       xxx       move
    这种方法我也试过了,只删除部分数据,好像物理空间和表空间不变小。
    再跟朋友们说明一下,程序会一直在线,所以数据库只能在程序运行的同时进行管理(删除某些表的部分数据),有没有好点的办法降低表空间和物理空间,希望大家帮忙考虑一下,多谢!