我想查看一个表有多大,
于是我先分析下该表,analyze table table_name compute statistics;
然后select * from user_table where table_name = '';
然后发现有个字段是 sample_size,请问这个是表大小吗?如果是它的单位是什么,怎么看?如果是不那表大小怎么看呢?
------解决方案--------------------
数据字典 user_tables 数字字典中包含了你所需要的信息,比如表中存储的记录数 NUM_OWS,所占用的数据块数BLOCKS等。 但需要对你要关注的那张表进行统计分析user_tables 数据字典中的这些数据才是准确的, 对表进行分析的方法:
在 sqlpluse 中执行:
analyze table table_name compute statistics;
或者执行 oracle 系统包:
exec DBMS_STATS.GATHER_TABLE_STATS(.....);
然后查询user_tables ,里面有初始空间,空闲空间,已用空间等等参数.
------解决方案--------------------
------解决方案--------------------
刚刚楼上的解释有点儿问题,上面的方法是某个表空间,只包含一张表的做法。
如果包含多张的话,表的大小,就不能那么看了。
------解决方案--------------------
------解决方案--------------------
查对应的segment大小.一般的表一般对应一个同名的segment.分区表,簇例外.
------解决方案--------------------
- SQL code
SELECT table_name, NUM_ROWS, BLOCKS*8/1024/1024 "Size M", EMPTY_BLOCKS, LAST_ANALYZED from user_tables where table_name='EMP';
------解决方案--------------------
不想记sql的话 可以装个toad,直接从toad里查就可以了
------解决方案--------------------
表的大小查询是这样的 :
select sum(bytes)/1024/1024||'M' size from user_segments t where t.segment_name= 'table_name'
这样查询出的是表的大小单位是 M
------解决方案--------------------
- SQL code
SQL> select blocks*8.192/1024 from user_tables where lower(table_name) = 'v3x_org_member';BLOCKS*8.192/1024----------------- 4.016SQL> select sum(bytes)/1024/1024/*,segment_name*/ from user_segments where lower(segment_name) = 'v3x_org_member';SUM(BYTES)/1024/1024/*,SEGMENT_NAME*/------------------------------------- 4