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/
  • 相关阅读:
    Spring Boot (20) 拦截器
    Spring Boot (19) servlet、filter、listener
    Spring Boot (18) @Async异步
    Spring Boot (17) 发送邮件
    Spring Boot (16) logback和access日志
    Spring Boot (15) pom.xml设置
    Spring Boot (14) 数据源配置原理
    Spring Boot (13) druid监控
    Spring boot (12) tomcat jdbc连接池
    Spring Boot (11) mybatis 关联映射
  • 原文地址:https://www.cnblogs.com/tianlesoftware/p/3610100.html
Copyright © 2011-2022 走看看