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放在一起就简直是拉郎配了
只有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放在一起就简直是拉郎配了
解决方案 »
- 请教高人,如何遍历一个表的所有列?
- rman恢复 意外表数据丢失 数据恢复问题
- 请问这个sql怎么写?
- 两表关联加上Distinct关键字查出来还有重复字段
- oracle行级锁在java Web开发中如何实现?
- 数据库导出错误
- 一个小问题谢谢。查找凶手?
- 把sqlserver中的两个表的内容导入一个oracle数据库表中,请问应该使用什么方法比较好
- 怎么才能把string 类型插入到blob中?
- 急!在企业管理器创建一个导出表的作业,出现“VNI2015:验证错误”,怎摸解决?
- ORA-00604: error occurred at recursive SQL level 3 救急了!!!
- 805的sql plus下select * from emp怎没结果?就出来个2,试了半天只passw成了改了
你们可以去测试一下,就我的理解:比如表开始就分配了10个extent,但后来才实际使用了2个,这个时候可以这样回收剩下的8个。但如果已经使用了10个再delete的缘故而只使用了2个,是不能回收的
你说的对
支持!!!
使用alter table <tname> deallocate unused,来降低hwm是不可能的。