`
stoneuu
  • 浏览: 46506 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle pctfree和pctused详

 
阅读更多

http://www.cnblogs.com/linjiqin/archive/2012/01/16/2323320.html

 

一、建立表时候,注意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表示自动管理表空间
主要起到节省表空间的作用。

分享到:
评论

相关推荐

    Oracle中表数据的存储原理浅析.pdf

    本文主要探讨了Oracle中表数据的存储原理,包括数据块、数据段、行和片段的概念,以及PCTFREE和PCTUSED两个关键参数的使用。 在Oracle数据库中,当创建一个表时,系统会自动在相应的表空间内为这个表分配数据段以...

    北京邮电大学软件工程研究生的课程---数据库设计开发-4.3

    PCTFREE和PCTUSED是两个关键的存储参数,分别控制了块中预留的未使用空间和使用空间的阈值,以适应行的增长,避免行跨块存储,提高性能。默认值分别为10%和40%,但可以根据实际需求调整。 2. 理解数据库碎片: ...

    oracle_行链接和行迁移

    ### Oracle行链接和行迁移详解 #### 一、概述 Oracle数据库中,行链接和行迁移是两种可能影响数据库...例如,可以通过合理设置`PCTFREE`和`PCTUSED`参数,或者重新设计表结构等方式来减少行迁移和行链接的发生概率。

    常用的Oracle SQL 语句

    Oracle数据库是业界广泛使用的关系数据库管理系统,其提供的SQL语言广泛用于数据查询、更新、管理和控制。在数据库管理与维护中,掌握一些常用的Oracle SQL语句是非常必要的,它们能够帮助我们高效地解决问题和提高...

    Oracle基础知识第八讲.pptx

    MSSM使用PCTFREE、PCTUSED和FREELIST等参数手动管理空间,而ASSM则通过位图跟踪空闲空间,简化管理,但不适用于包含大对象(LOB)的表空间。 在存储子句的优先级方面,段级别的存储参数优先于表空间级别的设置,...

    oracle与Sql区别

    - Oracle使用PCTFREE和PCTUSED参数控制块的存储情况,减少行连接和行迁移,块大小可自定义,并通过区动态分配空间,表可以分区以优化磁盘利用率。 - SQL Server以8K的页为最小分配单位,8个页组成一个扩展,数据以...

    oracle emp, dept, salgrade 建表语句

    `PCTFREE`和`PCTUSED`分别设置了数据块未使用空间的最小预留比例(10%)和开始写入新数据时已使用空间的最大比例(40%)。`INITRANS`和`MAXTRANS`设定了初始和最大事务数。`STORAGE`子句定义了段的存储参数,如初始...

    Oracle 45 道面试题及答案.docx

    本文将对Oracle Forms的基本概念、组件、配置文件、报表记录组、LOV、绑定变量、动态SQL、pctused和pctfree参数、表空间和数据文件之间的关系等进行详细的解释和分析。 一、Oracle Forms的基本概念 Oracle Forms是...

    bbs论坛项目运用SSH框架Oracle数据库编写的一个简单示列项目

    pctfree 10 pctused 40 initrans 1 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited ); -- Create/Recreate primary, unique and foreign key constraints alter table USERS ...

    9-Oracle数据库逻辑结构.pptx

    数据块的使用涉及到两种存储参数:PCTFREE 和 PCTUSED。PCTFREE 参数给出保留空间的最小百分比,用于行的 UPDATE 操作。在遭遇到 PCTFREE 后,这块被填满且不能进行 INSERT 操作。PCTUSED 参数当块中数据加上头和...

    Oracle8i行链接和行迁移探析.pdf

    PCTFREE和PCTUSED是两个与空间管理相关的参数,它们用于控制数据块的空闲空间使用。PCTFREE指定了为现有行的未来更新保留的最小空闲空间百分比,而PCTUSED则决定了数据块何时返回到空闲链表以便重新分配。通过设置这...

    Oracle模式对象基础教案.pptx

    表的参数设置涉及到表空间、百分比自由空间(PCTFREE和PCTUSED)、初始存储大小(INITIAL)、下一个块大小(NEXT)、最大扩展次数(MAXEXTENTS)和增长百分比(PCTINCREASE)。 9.3 索引管理是提高查询效率的重要...

    ORACLE优化设计方案

    同时,根据表和索引的用途定义存储参数,如pctfree和pctused。 数据库逻辑设计的基本原则包括:将相同使用方式的段存储在一起,避免表空间冲突,设置异常处理的隔离区域,最小化回滚段的冲突,以及将数据字典与其他...

    3.1 Oracle模式对象(1).ppt

    这些选项如PCTFREE、PCTUSED、INITRANS、MAXTRANS等用于控制表的存储和性能,而TABLESPACE指定了表所在的表空间,AS query则允许使用SQL SELECT语句从现有表中创建新表。 通过这个课程,学习者将掌握如何管理和查询...

    Effective Oracle By Design

    书中深入解析了这些概念,以及如何通过调整表的存储参数(如PCTFREE、PCTUSED等)来优化空间使用和性能。 4. **查询优化**:查询优化是Oracle数据库性能的关键。书中详细讲解了如何阅读和理解执行计划,以及如何...

    Oracle数据库查询优化的方法

    除此之外,表的存储选项如块大小、PCTFREE和PCTUSED等设置也会影响查询性能。适当的设置可以避免额外的行迁移和空间浪费,减少I/O操作。 最后,Oracle的资源管理工具如SQL Profile、SQL Plan Baseline和Automatic ...

    oracle数据库优化.ppt

    通过正确设置pctfree和pctused参数,预留足够的空间防止数据块过度填充,可以减少这类问题的发生。 pctfree参数定义了数据块中应保留的最小空闲空间比例,以应对UPDATE操作可能需要的额外空间。而pctused参数则指示...

Global site tag (gtag.js) - Google Analytics