1. unix cron or oracle job
2. 定时rebuild index

解决方案 »

  1.   

    1. unix cron or oracle job
    2. 定时rebuild index
      

  2.   

    举个例子:
        1、开始应把表分区。
        2、一天的数据放在一个分区里,
             每一个月:
                  划分一次分区 并建好分区的本地索引。
        3、要删除数据,只需定时执行删除指定分区的脚本就可以了,不管
    分区内数据有多少,都不费时,并且本地索引也没了,不会用TEMP表空间,
    无须再建索引。
      

  3.   

    sun9989(一品黄山):
    请详细说一下第3条好吗
      

  4.   

    sun9989(一品黄山):的办法很好,但我不知道怎么做。
      

  5.   

    一品黄山的方法,有一定道理。但我用的是7.3版,没有分区的功能。定期卸出数据,应是数据库应用必备的功能。我所知道的,EXPORT可以把数据卸出,但数据仍保留在数据库,空间不释放,EXPORT实际是起到备份数据的作用。DELETE可以把数据删除,据我所知,用DELETE删数据,相应的INDEX表空间的空间并不释放,必须重建INDX。在我的应用中每月要删除10万条记录,还剩100万条记录,以腾出空间。我想问:除DELETE数据,再建INDEX外,这个办法是否可行。重建INDEX需要大量的TEMP表空间。还有别的办法吗?
      

  6.   

    建分区时,当然取分区名字是有规可寻的。在删时,生成动态SQL,执行。让我想想再举个列子,放在别的贴子上,现在让我们帮GuYangRen (古阳) 想办法吧。
      

  7.   

    1。定期truncate partition(先分区)
    经常这样做容易导致表的退化,有空的时候从新组织一下表
    2。我不知道你的表多大,
    不过你经常的大规模的truncate也会导致index的退化,
    可以试着删掉重建,同时指定很大的排序区(这样会减少temp的使用,并提高速度,当然,你必须在sessioin级设定);
    至于碎片问题,等待一定时候集中解决。
      

  8.   

    我也经常 truncate partition 来删除数据,但是想请教鸟儿 
    表和索引的退化是什么意思?
        
       另外:友情提醒即使 oracle9i中,建有全局索引的表truncate partition会出错,局部索引没影响
      

  9.   

    我没有比较过对分区表的的全局index和局部index哪个效率跟高退化是指由于人为的原因造成性能的下降,一般由于经常的对表dml造成的碎片,index不可用等因素