1:sql优化和HWM(high  water  )几乎是没有关系的
只有insert ...  /*+ append*/ ...  这类 hints提示的情况下会在hwm以上空间内插入数据而不用使用freelist中的可能使用率已经降低到 pctused以下的数据块2: 当 full table scan 的时候要扫描到 hwm 位置
所以如果delete的数据量很大则有问题
大家可以测试以下没有索引的情况下
100万记录删除后只留一条然后 select count(*) from xxx 看一看效果3: hwm 不过是一个位置标记,表示曾经达到的最高段位置,把表数据所处段比做一个量筒,水比做数据,则水曾经达到过的量筒的最高位置就叫 hwm而hwm 是不会降下来的,除非truncate table or  drop table 不能说sql性能跟hwm没有联系
但如果把sql优化跟hwm放在一起就简直是拉郎配了

解决方案 »

  1.   

    我想补充一点,如果delete很多,会导致实际数据空间到hwm之间有许多空extent。如果经常使用table full access,确实会不同程度的影响性能。可以使用alter table <tname> deallocate unused,来降低hwm,试试吧,对于不同的系统可能需要不同的方法!
      

  2.   

    可以使用alter table <tname> deallocate unused,来降低hwm,试试吧 :这样可以????
    你们可以去测试一下,就我的理解:比如表开始就分配了10个extent,但后来才实际使用了2个,这个时候可以这样回收剩下的8个。但如果已经使用了10个再delete的缘故而只使用了2个,是不能回收的
      

  3.   

    biti_rainy:
    你说的对
    支持!!!
    使用alter table <tname> deallocate unused,来降低hwm是不可能的。