现有一表test_a是个空表,初始大小为1024,我往里面插入了一些测试数据,通过dba_segments查看表大小为204800,然后delete掉这些数据.再通过dba_segments查看表大小还是204800,但实际表中一条数据也没有.尤其是当一个表刚开始有上千万的数据,然后再把表delete掉很多数据,保留很少的数据,虽然数据减少了,但全表扫描时还是扫描了很多无数据的块.有谁知道有没有好的方法来减少全表扫描的范围?另外有没有一些视图来查看表中实际数据的大小?
调试欢乐多
另外有没有一些视图来查看表中实际数据的大小?
这个么,我记得《Oracle傻瓜1000问》中有的,其中的第12条
12. 怎样计算一个表占用的空间的大小? select owner,table_name,
NUM_ROWS,
BLOCKS*AAA/1024/1024 "Size M",
EMPTY_BLOCKS,
LAST_ANALYZED
from dba_tables
where table_name='XXX'; Here: AAA is the value of db_block_size ;
XXX is the table name you want to check