对于一个表T2,想知道其中包含了多少个 blocks,用了两种方法,得到的结果却不一样,SQL> select u.table_name, u.blocks, u.num_rows from user_tables u where u.table_name='T2';
TABLE_NAME BLOCKS NUM_ROWS
------------------------------ ---------- ----------
T2 305 20001
SQL> select sum(blocks) from user_segments u where u.segment_name='T2';
SUM(BLOCKS)
-----------
384哪一个语句得到的是正确的呢? 为什么呢?非常谢谢大家啊。
TABLE_NAME BLOCKS NUM_ROWS
------------------------------ ---------- ----------
T2 305 20001
SQL> select sum(blocks) from user_segments u where u.segment_name='T2';
SUM(BLOCKS)
-----------
384哪一个语句得到的是正确的呢? 为什么呢?非常谢谢大家啊。
解决方案 »
- oracle安装报错怎么办。。。急
- 用oracle ODI进行远程数据抽取到本地自己的机子上,有哪位做过么?求指点......先谢了.
- 请大家协助分析STATSPACK报告
- 关于大数据量的两个表关联更新问题!
- 每月的后五天每天凌晨3点执行一次的计划任务
- 向表空间添加数据文件的小错误
- 求一SQL
- 在PLSQL中执行Oracle存储过程执行完毕后,等近10分钟才能看到更新数据,什么情况?
- 如何通过SQL语句一次Create多个触发器?
- ◆◆◆◆◆◆今是我生日::特意来散分~~~◆◆◆^-^有者有分~◆◆◆
- 怎麼将一个用户下的表改为另一个用户
- 在oracle中定义了包,也定义了主体,但在调用函数的时候有错
楼主没有分析表:
analyze table T2 compute statistics;分析之后在查看
select blocks,empty_blocks from user_tables where table_name = 'T2';select segment_name,blocks,extents,bytes,segment_type,tablespace_name from dba_segments where segment_name='T2';DBA_TABLES的blocks+empty_blocks+1=DBA_SEGMENTS;这个加的1 是segment header block.
SQL> select segment_name,blocks,extents,bytes,segment_type,tablespace_name from
dba_segments where segment_name='T5';SEGME BLOCKS EXTENTS BYTES SEGMENT_TYPE TABLESPACE_NAME
----- ---------- ---------- ---------- ------------------ ----------------------T5 6528 66 53477376 TABLE SYSTEMSQL> select blocks,empty_blocks from user_tables where table_name = 'T5'; BLOCKS EMPTY_BLOCKS
---------- ------------
6449 78
------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
DBA1 群:62697716(满); DBA2 群:62697977
网上查了下 确实user_segments 中的blocks为user_tables中的blocks加上empty_blocks
SQL> select blocks,empty_blocks from user_tables where table_name=upper('xs'); BLOCKS EMPTY_BLOCKS
---------- ------------
5 3SQL> select blocks from user_segments where segment_name=upper('xs'); BLOCKS
----------
8
查询之前还要对表进行分析
analyze table tbname compute statistics
analyze table T2 compute statistics;分析之后在查看
select blocks,empty_blocks from user_tables where table_name = 'T2';select segment_name,blocks,extents,bytes,segment_type,tablespace_name from dba_segments where segment_name='T2';DBA_TABLES的blocks+empty_blocks+1=DBA_SEGMENTS;这个加的1 是segment header block.