`
Appleses
  • 浏览: 346668 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

oracle pctfree和pctused详解

阅读更多



 

一、建立表时候,注意PCTFREE参数的作用

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

      PCTUSED:是指当块里的数据低于多少百分比时,又可以重新被insert,一般默认是40,即40%,即:当数据低于40%时,又可以写入新的数据,这个时候处在下降期。

 

二、举例说明

      假设你一个块可以存放100个数据,而且PCTFREE 是10,PCTUSED是40,则:不断的向块中插入数据,如果当存放到90个时,就不能存放新的数据,这是受pctfree来控制,预留的空间是给UPDATE用的。

      当你删除一个数据后,再想插入个新数据行不行?不行,必须是删除41个,即低于40个以后才能插入新的数据的,这是受pctused来控制的。

      注意:如果表空间上启用了ASSM,在建立表的时候,只能指定PCTFREE,否则可用指定PCTFREE和PCTUSED。

             

 

三、调整pctfree与pctused
1、通过user_tables的pct_free,pct_used来查看
select a.table_name, a.pct_free, a.pct_used, a.* from user_tables a; 
说明:
pctfree表示用于保留更新操作的百分比,如果超过该值不能插入数据。
pctused表示数据所占最低百分比,如果达到pctfree时不能插入,delete后如果达到pctused才可以用来insert

 

2、如果你使用的是自动管理表空间pctused不需要设置
altertable tablename pctfree values;
说明:
pctfree默认是10,主要看更新的数据有多大,可以查看表的max_row_len如果很大又频繁更新可以考虑增加该值。
pctused主要看删除数据的大小,如果很大可以调大该值,如果不是很频繁可以设置小一些30-40
pctused+pctfree<90

 

3、查看自动管理表空间
select tablespace_name,segment_space_management from user_tablespaces; --segment_space_management为auto表示自动管理表空间
主要起到节省表空间的作用。

  • 大小: 195.8 KB
分享到:
评论

相关推荐

    Oracle物化视图应用详解

    - `PCTFREE` 和 `PCTUSED` 是存储参数,用来控制行级别的空间预留。 - `TABLESPACE` 指定物化视图存储的表空间。 - `BUILD IMMEDIATE` 表示立即构建物化视图,`DEFERRED` 则是延迟构建。 - `ENABLE QUERY REWRITE` ...

    深入学习分区表及分区索引(详解oracle分区).docx

    - 物理属性如PCTFREE、PCTUSED和表空间可以不同。 5. 分区独立性: - 即使某些分区不可用,其他分区仍可正常工作,确保高可用性。 6. 分区数量限制: - 最多可创建64000个分区,但含有LONG或LONG RAW列的表不...

    oracle_行链接和行迁移

    ### Oracle行链接和行迁移详解 #### 一、概述 Oracle数据库中,行链接和行迁移是两种可能影响数据库性能的现象。了解这两种现象的发生原因及其处理方法对于优化Oracle数据库至关重要。 #### 二、Oracle块 Oracle...

    Oracle 簇的使用详解

    - `PCTUSED` 和 `PCTFREE` 分别设置数据块使用阈值,用于控制空间的重用。 - `SIZE` 指定簇键及其相关行平均需要的字节数。 - `INITRANS` 和 `MAXTRANS` 设置初始和最大事务段事务段的事务级别。 - `TABLESPACE` ...

    关于arcsde+Oracle 配置的问题

    #### 三、ArcSDE+Oracle配置步骤详解 根据提供的部分文本内容,我们可以了解到具体的配置步骤如下: ##### 1. 创建表空间 首先需要创建用于存储ArcSDE数据的表空间。例如,在示例文本中提到了一个名为“TangShan_...

    深入学习分区表及分区索引(详解oracle分区.docx

    在应用分区时,重要的是保持分区的逻辑一致性,即所有分区都必须有相同的数据结构,如列名、数据类型和约束,但物理属性如PCTFREE、PCTUSED和表空间可以不同。分区的透明性意味着SQL和DML操作无需了解数据是否已分区...

    阿里巴巴校园招聘Oracle_DBA笔试题及参考答案.doc

    pctused 和 pctfree 是Oracle数据库中用于控制数据块空间管理的两个重要参数。pctused 设定了一个阈值,当数据块中的自由空间小于这个百分比时,该数据块将从自由链表(freelist)中移除。而pctfree则规定了数据块...

    Oracle数据库操作面试题及详解.docx

    1. pctused和pctfree分别表示数据块的使用和空闲空间百分比,用于控制空间扩展。 2. 表由segment组成,segment由extent组成,extent由多个block组成。 3. tablespace是逻辑存储结构,包含一个或多个datafile,存放表...

    Oracle 45 道面试题及答案.docx

    Oracle Forms 基础知识点详解 Oracle Forms 是用于创建与 Oracle 数据库交互的软件产品。它有一个集成开发环境(IDE),包括一个属性表、对象导航器和使用 PL/SQL 的代码编辑器。 1. Oracle Forms 组件 Oracle ...

    oracle dba 笔试题

    ### Oracle DBA 笔试题详解 #### SQL Tuning 类 1. **表连接方式** 表连接在SQL查询中至关重要,常见的连接方式包括: - **Merge Join**: 这种连接方式适用于两个表中都有排序的情况,Oracle将两个已排序的表...

    Oracle高级队列(AQ)

    storage_clause =&gt; 'TABLESPACE QUEUE_TS PCTUSED 0 PCTFREE 30 INITRANS 30 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT )' ); END; ``` ...

    oracle分区操作文档

    ### Oracle 分区操作详解 #### 一、Oracle分区概述 Oracle数据库中的分区技术是一种重要的物理组织数据的方法,它能够显著提高大规模数据集的查询性能,同时简化数据管理任务。通过将一个大表或索引分割成更小、更...

    Oracle复习资料答案(最新)

    ### Oracle复习资料知识点详解 #### 一、Oracle数据库的物理存储结构 - **数据文件**:数据文件是数据库中用来存储所有数据的物理文件。在Oracle数据库中,一个表空间可以由一个或多个数据文件组成,这些数据文件...

    ORACLE学习

    - 数据块空间管理参数如`PCTFREE`和`PCTUSED`用于控制数据块内的空间使用策略。 **4. 手动分配存储空间:** - 使用`ALTER TABLE &lt;表名&gt; ALLOCATE EXTENT`命令手动分配存储空间。 - 示例:为`Student`表手动分配...

    ORACLE ORA

    - **ORA-02211**:表示在修改表空间时,指定的PCTFREE和PCTUSED值不合法。 - **ORA-02212**:表示在修改表空间时,PCTFREE的选项不正确。 - **ORA-02213**:表示在修改表空间时,PCTUSED的选项不正确。 - **ORA-...

Global site tag (gtag.js) - Google Analytics