创建测试表:

SQL> create table t5(id int);
表已创建。
SQL> insert into t5 values(1);
已创建 1 行。
SQL> insert into t5 values(2);
已创建 1 行。
SQL> insert into t5 values(3);
已创建 1 行。
SQL> insert into t5 values(4);
已创建 1 行。
SQL> commit;
提交完成。

多插入一点数据:
SQL> begin
  2 for i in 1 .. 1000 loop
  3 insert into T5 values(10000);
  4 commit;
  5 end loop;
  6 end;
  7 /

分析表

SQL> analyze table T5 compute statistics;

表已分析。

说明:

为什么要收集统计信息,因为dba_tables 中的blocks 是只有收集统计信息以后才有值,而且对于empty_blocks 参数,还必须使用analyze 分析之后才有值。 如果使用dbms_stats.gather_table_stats收集,只能收集到blocks的值,empty_blocks 收集不到。

有关统计信息,参考我的Blog:

Oracle Statistic 统计信息 小结

http://blog.csdn.net/tianlesoftware/article/details/4668723

查看dba_segments 和 DBA_TABLES表中 blocks 值:

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              SYSTEM

SQL> select blocks,empty_blocks from dba_tables where table_name = 'T5';

BLOCKS EMPTY_BLOCKS

----------   ------------

6449           78

从上面的结果看以看出:

6528 = 6449+78 +1

即:

Dba_Segments .blocks = Dba_Tables.Blocks+Dba_Tables.Empty_Blocks +1(segment header block)

这个多加的1是,是segment header block.

如果查询的结果不是这样,可能是你没有分析表。 不妨分析表之后在查一下看看。

这两张表对blocks 的定义也不一样:

DBA_SEGMENTS.BLOCKS holds the total number of blocks allocated to the table.

USER_TABLES.BLOCKS holds the total number of blocks allocated for data.

------------------------------------------------------------------------------

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

转载于:https://www.cnblogs.com/spring3mvc/archive/2010/06/27/2414830.html

dba_tables 和 dba_segments 表中 blocks 的区别相关推荐

  1. MySQL删除或清空表中数据的方法

    原标题:MySQL删除或清空表中数据的方法 要想把MySQL中的数据删除或清空,可以通过两种方法来实现:DELETE语句和TRUNCATE TABLE语句. DELETE语句可以将表中所有记录都删除, ...

  2. mysql删除表中所有数据_MySQL删除或清空表中数据的方法

    原标题:MySQL删除或清空表中数据的方法 要想把MySQL中的数据删除或清空,可以通过两种方法来实现:DELETE语句和TRUNCATE TABLE语句. DELETE语句可以将表中所有记录都删除, ...

  3. 关于数据库优化1——关于count(1),count(*),和count(列名)的区别,和关于表中字段顺序的问题...

    1.关于count(1),count(*),和count(列名)的区别 相信大家总是在工作中,或者是学习中对于count()的到底怎么用更快.一直有很大的疑问,有的人说count(*)更快,也有的人说 ...

  4. Mysql清空表(truncate)与删除表中数据(delete)的区别

    2019独角兽企业重金招聘Python工程师标准>>> 为某基于wordpress搭建的博客长久未除草,某天升级的时候发现已经被插入了几万条垃圾留言,如果一条条删除那可真是累人的活. ...

  5. sql 在某表中加入一列count所有数据_执行COUNT(1)、COUNT(*) 与 COUNT(列名) 到底有什么区别?...

    击关注上方"SQL数据库开发", 设为"置顶或星标",第一时间送达干货. 1.  count(1) and count(*) 从执行计划来看,count(1)和 ...

  6. mysql中视图与真实表的区别,数据库表/视图/同义词的区别

    在做需求的时候发现,正常来讲的话查询的是数据库的表,但是有时查询的可能又是视图,还有可能查询的是一个表的同义词;表/视图/同义词 他们有什么关联,为什么会有这么三种定义呢? 数据库基表 数据库中的表, ...

  7. join on 后跟or有什么用_JOIN关联表中ON,WHERE后面跟条件的区别

    select * from td left join ( select case_id as sup_case_id , count(*) supervise_number from td_kcdc_ ...

  8. SAP 中内表和工作区的区别

    内表与工作区的区别: 内表和工作区也都是存放数据的,区别是内表像DB里面的数据表一样,有字段有行数,可以有很多行数据. 但是工作区就只有一条数据,我们叫它表头数据,很多情况下是出现在循环当中,用来对比 ...

  9. mysql数据库表中的类型_MySQL数据库中表类型MyISAM与InnoDB的区别

    MyISAM 和 InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处 ...

  10. MySQL 学习笔记(4)— 组合查询、子查询、插入数据、更新/删除表数据、增加/删除表中的列以及重命名表

    1. 组合查询 1.表的加减法 表的加法,即求 product 和 product2 的并集,UNION 运算会除去重复的记录 SELECT product_id, product_name FROM ...

最新文章

  1. mysql 避免使用临时表_从日期范围中选择时防止MySQL使用临时表
  2. 【机器学习】机器学习基础知识常见问题详解!
  3. FFmpeg 4.2“艾达”发布
  4. Vaadin提示:以声明方式构建UI
  5. C++:extern关键字
  6. suricata架构——数据结构和代码流程图解
  7. 开关电源测试系统用哪个软件,开关电源测试系统
  8. IE下,拖动grid的分隔栏,报getBoundingClientRect错误解决办法
  9. 华为视频会议系统常见问题及解决方法
  10. java.lang.IllegalArgumentException: An invalid character [10] was present in the Cookie value
  11. 4. php运行过程时序图
  12. html网站页面上字体改变,如何设置网页字体样式
  13. 商业计划书PPT模板
  14. 机器学习-随机森林算法
  15. 双足机器人的稳定性判据_仿人双足机器人步态规划——零力矩点(ZMP)
  16. 微信公众号提供的服务器地址,微信测试号与公众号能填同一个服务器地址吗?...
  17. 牛腩--SQLHelper
  18. 因果推断-Uplift Model:Meta Learning
  19. 取消WIN10上shift键切换中英文输入法的设置
  20. 自己动手编写仿QQ的app -1注册界面by sdust iot zhl

热门文章

  1. 阶段5 3.微服务项目【学成在线】_day01 搭建环境 CMS服务端开发_14-MongoDb入门-文档...
  2. 一篇真正教会你开发移动端页面的文章(二)
  3. http实时推送技术
  4. how-to-set-java_home-environment-variable-on-mac-os-x
  5. web消息推送-goesay
  6. 前端软件sublime的一些常用快捷键
  7. 用Keil-MDK开发TQ2440裸机程序入门教程
  8. 关于asp.net导出Excel [zz]
  9. 随着浏览器窗口缩小表格出现横向滚动条
  10. jquery 获取节点各种方法