我一直试图解决这个问题。我想知道我的表使用了多少数据块。这些表有大量的行,大约200,000行。但是当我运行以下查询时:
select table_name, blocks from all_tables where owner='me';
我得到以下输出:
TABLE1 0
TABLE2 0
TABLE3 0
以及所有我的桌子等等。为什么会这样?是否正确读取了总使用的数据块,还是需要做些什么来纠正它?
答案 0 :(得分:2)
只有在收集统计信息时才会更新该信息(使用dbms_stats
包)。这不是一个动态的观点。
获取此信息的另一种方法是通过dba_segments
视图而不是dba_tables
。这虽然相当昂贵/缓慢。