日期:2014-05-17  浏览次数:20796 次

我想查看一个表有多大
我想查看一个表有多大,
于是我先分析下该表,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 ,里面有初始空间,空闲空间,已用空间等等参数.
------解决方案--------------------
探讨
我想查看一个表有多大,
于是我先分析下该表,analyze table table_name compute statistics;
然后select * from user_table where table_name = '';
然后发现有个字段是 sample_size,请问这个是表大小吗?如果是它的单位是什么,怎么看?如果是不那表大小怎么看呢?

------解决方案--------------------
刚刚楼上的解释有点儿问题,上面的方法是某个表空间,只包含一张表的做法。
如果包含多张的话,表的大小,就不能那么看了。
------解决方案--------------------
探讨
我想查看一个表有多大,
于是我先分析下该表,analyze table table_name compute statistics;
然后select * from user_table where table_name = '';
然后发现有个字段是 sample_size,请问这个是表大小吗?如果是它的单位是什么,怎么看?如果是不那表大小怎么看呢?

------解决方案--------------------
查对应的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