zoukankan      html  css  js  c++  java
  • pctfree和pctused

    pctfree
      是指一个数据块保留的空间百分比,表示数据块在什么情况下可以被insert
      默认是10,表示当数据块的可用空间低于10%后,就不可以被insert了,只能被用于update了
      即:当使用一个数据块时,在达到pctfree之前,该block是一直可以被插入的,这个时候处在上升期

    pctused
      是指当数据块里的数据低于多少百分比时,又可以重新被insert
      一般默认是40,表示当数据块的数据占用空间低于40%后,就可以被insert了
      即:当数据块里的数据低于40%时,又可以写入新的数据,这个时候处在下降期

    举例说明

      假设一个块可以存放100个数据,而且PCTFREE 是10,PCTUSED是40
      则:不断的向块中插入数据,如果当存放到90个时,就不能存放新的数据,这是受pctfree来控制,预留的空间是给UPDATE用的
      插入了90个数据,然后又删除一个数据后,数据块里变成了89个数据
      此时再插入个新数据是不被允许的,必须再删除数据,是总数据数低于40个以后才能再次插入新数据,这是受pctused来控制的
      注意:如果表空间上启用了ASSM,在建立表的时候,只能指定PCTFREE,否则就可指定PCTFREE和PCTUSED

    总结
      pctfree表示用于保留更新操作的百分比,如果超过该值不能插入数据
      pctused表示数据所占最低百分比,如果达到pctfree时不能插入,delete后如果达到pctused才可以用来insert
      如果使用的是自动管理表空间pctused不需要设置


      pctfree默认是10,主要看更新的数据有多大,可以查看表的max_row_len,如果很大又频繁更新可以考虑增加该值
      pctused主要看删除数据的大小,如果很大可以调大该值,如果不是很频繁可以设置小一些30-40
      pctused + pctfree < 90


    查看自动管理表空间

    select tablespace_name,
    segment_space_management 
    from user_tablespaces; 
    --segment_space_management为auto表示自动管理表空间,主要起到节省表空间的作用
  • 相关阅读:
    详解java并发原子类AtomicInteger(基于jdk1.8源码分析)
    可见性、原子性和有序性
    Django基础之简单的前后端交互
    JDK1.8新特性之(三)--函数式接口
    JDK1.8新特性之(一)--Lambda表达式
    JDK1.8新特性之(二)--方法引用
    在IDEA创建类时自动创建作者日期等信息设定
    用batch调用DB2 CLPPlus执行多个SQL文
    windows7 设定开关机事件
    Mybatis显示修改数据库成功,数据库却没有修改
  • 原文地址:https://www.cnblogs.com/shiliye/p/11970442.html
Copyright © 2011-2022 走看看