Happy3w

删除大量数据操作后,查询性能效率没提高。

2017.02.08
问题:为什么将一个数据表的数据进行大量后(即执行delete),对于该表的查询效率并没有提高呢? 答:对一个表执行大量delete操作后,数据库不会自动回收空间高水位线没有下降,因此对于查询,甚至后续的delete、insert操作无法提高性能。 解决方案: 方案一:shrink space 方案二:Move+rebuild index,即删除和重建索引。 相关sql参考: 查看剩余表空间 select * from dba_free_space where tablespace_name='happy3w'; 查看某表所占空间: select table_name,num_rows,blocks,empty_blocks,avg_row_len,last_analyzed from dba_tables where table_name like 'TEST%'; 查看高水位状况 select header_file,header_block,bytes,blocks,extents from dba_segments where segment_name like 'TEST%'; extents:起始位置 header_file:高水位线位置