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

    创建测试表:

    SQL> create table t5(id int);
    表已创建。
    SQL> insert into t5 values(1);
    已创建 行。
    SQL> insert into t5 values(2);
    已创建 行。
    SQL> insert into t5 values(3);
    已创建 行。
    SQL> insert into t5 values(4);
    已创建 行。
    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 +1segment 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

    道森Oracle,国内最早、最大的网络语音培训机构,我们提供专业、优质的Oracle技术培训和服务! 我们的官方网站:http://www.daosenoracle.com 官方淘宝店:http://daosenpx.taobao.com/
  • 相关阅读:
    2021-06-22 总结
    【每日一题】13. 罗马数字转整数
    【每日一题】12. 整数转罗马数字
    【每日一题】1269. 停在原地的方案数
    【每日一题】1310. 子数组异或查询
    【每日一题】1734. 解码异或后的排列
    【每日一题】872. 叶子相似的树
    【每日一题】1482. 制作 m 束花所需的最少天数
    【每日一题】1723. 完成所有工作的最短时间
    【每日一题】1486. 数组异或操作
  • 原文地址:https://www.cnblogs.com/tianlesoftware/p/3610101.html
Copyright © 2011-2022 走看看