create table tset as select * from dba_objects;

select count(*) from tset;

select table_name,blocks,empty_blocks from dba_tables

where table_name=’TSET’;

select segment_name,bytes,blocks,extents from dba_segments

where segment_name=’TSET’;

问题来了,从dba_tables查询的blocks是空的,不按常理出牌啊~~什么鬼,什么鬼

select table_name,blocks,empty_blocks,last_analyzed from dba_tables

where table_name=’TSET’;

last_analyzed是分析的时间,为空值表示没有分析,所以执行语句分析下看看

analyze table tset compute statistics;

1071+80=1151

好像还少一个blocks,不是好像,就是少一个block。(先放这吧,不确定能找到为什么)。

以上是我发现dba_tables和dba_segments的blocks数量不一致后查询网络得出的;

大概个人总结以下:

1.dba_segments中的blocks对应的是dba_tables中的blocks+empty_blocks

2.

The dba_tables view describes a "logical" structure whiledba_segments describes the "physical" data segment, like a data file.

Also, columns like "blocks" are different between dba_tables and dba_segments.  In dba_tables, the "blocks" are calculated when you run dbms_stats, while indba_segments, "blocks" is the actual number of blocks used by the object on disk.

(不解释,解释不了,我感觉只是感觉理解了),附上链接:http://www.dba-oracle.com/t_difference_dba_tables_dba_segments.htm

oracle社区里有个不是使用CTAS创建表来说明dba_segments和dba_tables不一致的问题,我重复一遍吧:

1. create table tset1 as select * from dba_objects where 1=0;

select segment_name,bytes,blocks,extents from dba_segments

where segment_name=’TSET1’;

插播:

TSET1表的行数为0;默认分配一个extent,一个extent=8 blocks,一个block=8k(65536/1024/8)

oracle 11g不是延迟段分配的吗(默认)?

好吧,先不管了,下次再说吧,插播到此结束。

2.select table_name,blocks,empty_blocks from dba_tables where table_name=’TSET1’;

analyze table tset1 compute statistics;

select table_name,blocks,empty_blocks from dba_tables where table_name=’TSET1’;

3.insert into tset1 select * from dba_objects;

commit;

4. select segment_name,bytes,blocks,extents from dba_segments

where segment_name=’TSET1’;

select table_name,blocks,empty_blocks from dba_tables

where table_name=’TSET1’;

analyze table tset1 comput statistics;

select table_name,blocks,empty_blocks from dba_tables

where table_name=’TSET1’;

1068+83=1151,还是不等于1152

附上oracle社区的链接,上面的测试结果是相等的哦!

https://community.oracle.com/thread/582356?start=0&tstart=0

转载于:https://www.cnblogs.com/cnmarkao/p/5147761.html

dba_segments和dba_tables的不同相关推荐

  1. DBA_SEGMENTS - 查看数据库对象所分配的物理存储空间

    如何查看某个数据库对象(TABLE, INDEX ....)所占得物理存储空间 SELECT SEGMENT_NAME,SEGMENT_TYPE,TABLESPACE_NAME,EXTENTS,BLO ...

  2. oracle+system空间满了,oracle审计导致system表空间爆满的处理方法

    现象描述: 开发人员通过plsql登录或者操作数据库,提示如下错误: ORA-00604: error occurred at recursive SQL level 1 ORA-01653: una ...

  3. Oracle找出需要建立索引的表

    文章讨论的是本来应该建立索引而因为疏忽,或者考虑不周全而没有建立的情况 select distinct sp.OBJECT_NAME,round(ds.bytes/1024/1024,2) MB,nu ...

  4. Oracle 统计信息备份/表分析

    众所周知,统计信息直接影响到Oracle优化器最后的执行计划,所以定期收集统计信息成为DBA一项常规的工作,但是,对于一些大表,比如数据量超过几千万条,表分析后却有可能会导致应用系统一些SQL执行计划 ...

  5. 混合列压缩(HCC)在OLAP及OLTP场景中的测试

    作者:李敏,云和恩墨交付工程师. 2019年度 ACOUG活动启动啦!为了感恩和回馈一直支持社区工作的技术爱好者.会员.嘉宾和合作伙伴,2019年度,我们汇集了行业大咖最新的精彩主题跟大家分享,更有惊 ...

  6. ORACLE计算表引占用空间大小

    在ORACLE数据库中,如何计算一个表所占用的存储空间呢?我们可以通过系统视图DBA_SEGMENTS.USER_SEGMETNS.DBA_TABLES来查看一个表所占空间的大小,如下所示: SELE ...

  7. 杂乱无章之Oracle(一)

    1. 设置共享池大小 SQL>ALTER  SYSTEM  SET  SHARED_POOL_SIZE=32M; 2. 数据库高速缓冲区(database  buffer  cache):SQL ...

  8. oracle water,对于Oracle High Water Mark(HWM)的理解

    在网上看到不少关于Oracle High Water Mark(HWM)的理解,但是都弄的不太清楚,而且有些说法是不对的,所以还是逼迫自己写篇文章来学习一下,如有不恰当之处请指教,呵呵~ 先看看官方对 ...

  9. --查看某个表及其组件所占的各个表空间的大小

    --查看某个表及其组件所占的各个表空间的大小 select sum(bytes) as mb, tablespace_name   from (select sum(bytes / 1024 / 10 ...

最新文章

  1. 利用Facebook开源项目来赚钱不再只是梦
  2. 第一阶段冲刺最后一天
  3. mysql5.7主从
  4. SAP WebIDE里本地运行Fiori应用后,会自动生成一个新的Destination
  5. 博客系统知多少:揭秘那些不为人知的学问(二)
  6. python查询sql_Python处理SQL语句(提供SQL查询平台使用)
  7. 前端为什么说github很重要_私域流量|为什么说私域流量很重要?
  8. php 常用编译参数,php编译参数,不用怕!!
  9. zookeeper学习笔记001-Address already in use: bind启动报错
  10. 从技术上解读大数据的应用现状和开源未来! | 技术头条
  11. 是真的!华为2019年应届博士年薪最高达201万
  12. 相似文档查找算法之 simHash
  13. 证券交易2-券商柜台系统
  14. 键盘按键与键码的对照表的对照表
  15. PostgreSQL 报ERROR: column c.relhasoids does not exist
  16. android 8 音质,体验中国好音质 8款HiFi音质手机推荐
  17. 统计计算机软件应用作业,SPSS统计软件期末作业
  18. 系统集成项目管理工程师立项管理案例分析题
  19. 最新UI作品集源文件文件模板Sketch和Adobe XD源文件格式
  20. subprocess句柄无效

热门文章

  1. linux perl telnet安装,51CTO博客-专业IT技术博客创作平台-技术成就梦想
  2. PHP之旅4 php 超全局变量
  3. redis 超时失效key 的监听触发
  4. ios内购二次认证服务器代码
  5. 实战 IE8 开发人员工具
  6. 全面搞定jive3.1.1
  7. Oracle数据库php短连接,PHP 连接 Oracle
  8. oracle仲裁磁盘是一块磁盘吗,基于ASM冗余设计的架构,仲裁磁盘组应该如何去规划?...
  9. windows10 C盘清理
  10. Android修改项目包名