create table TestHighWMark(
id INTEGER,
hash_value VARCHAR2(100)
);SELECT table_name,
ROUND ( ((blocks) * 8/1024), 2) "高水位空间 M",
ROUND ( (num_rows * avg_row_len / 1024/1024), 2) "真实使用空间 m",
ROUND ( (blocks * 10 / 100) * 8/1024, 2) "预留空间(pctfree) m",
ROUND
( (blocks) * 8/1024
- (num_rows * avg_row_len / 1024/1024)
,2)
"浪费空间 m"
FROM user_tables
WHERE table_name='TESTHIGHWMARK'没有占用空间

现在插入20W条数据
declare
i int;
begin
i := 0;
for i in 1..200000 loop
insert into TESTHIGHWMARK
select i,ora_hash(i) as hash_value from dual;
end loop;
end;
COMMIT;
select count(1) from TESTHIGHWMARK;
查询目前表hwm(高水位线)

现在delete全表
delete TESTHIGHWMARK;现在高水位还是没有变

现在tuncate全表
truncate table TESTHIGHWMARK;
上面的所有查询user_tables表的时候都要手动收集一下信息
begin
dbms_stats.gather_table_stats(ownname => 'XIR_TRD',tabname => 'TESTHIGHWMARK');
end;本站文章除注明转载/出处外,均为本站原创,转载前请务必署名,转载请标明出处