zoukankan      html  css  js  c++  java
  • dba_tables 和 dba_segments 表中 blocks 的区别

    创建测试表:

    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.

     

    喜欢请赞赏一下啦^_^

    微信赞赏

    支付宝赞赏

  • 相关阅读:
    关于SNS网络
    面向对象中的IS A和HAS A 问题
    项目进度检查
    【php】php Apache 怎么创建虚拟目录
    【IE6】iframe在IE6下出现横向滚动条的解决方案
    【javascript基础】Javascript的getYear、getFullYear、getUTCFullYear异同
    【java】JAVA环境配置
    UTF8 GBK UTF8 GB2312 之间的区别和关系
    【转发】10 个技巧助你写出卓越的jQuery插件
    【前端优化】你想不到的压缩方法:将javascript文件压缩成PNG图像存储
  • 原文地址:https://www.cnblogs.com/lkj371/p/15170947.html
Copyright © 2011-2022 走看看