我想查看一个表有多大
我想查看一个表有多大,
于是我先分析下该表,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_or
g_member';
BLOCKS*8.192/1024
-----------------
4.016
SQL> select sum(bytes)/1024/1024/*,segment_name*/ from user_segments where lowe
r(segment_name) = 'v3x_org_member';
SUM(BYTES)/1024/1024/*,SEGMENT_NAME*/
-------------------------------------
4