• 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.

     

    喜欢请赞赏一下啦^_^

    微信赞赏

    支付宝赞赏

  • 相关阅读:
    Java基础6
    多行文本框回车换行设置
    CentOS7系统配置国内yum源和epel源
    System Integrity Protection (SIP) iOS10.15安装软件提示文件损坏问题解决方法
    转载:Spring Boot 不使用默认的 parent,改用自己的项目的 paren
    微软Speech语音合成技术
    反编译工具
    线性链表的代码实现
    不一样的鸡汤,你有房吗?你有车吗?你有房车吗?
    递归,迭代和回调
  • 原文地址:https://www.cnblogs.com/lkj371/p/15170947.html
Copyright © 2020-2023  润新知