`

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表示自动管理表空间
主要起到节省表空间的作用。
分享到:
评论

相关推荐

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

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

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

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

    Oracle基础知识第八讲.pptx

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

    Oracle模式对象基础教案.pptx

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

    数据库逻辑结构培训教程(ppt-76页).ppt

    PCTFREE 和 PCTUSED 两个参数互相消涨,其和不超过 100。 行链接和行迁移 行链接发生于插入时,行太长,数据块放不下,该行数据存放在该段的多个数据块中。行迁移发生于修改时,修改后行变长,空闲空间不够,该行...

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

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

    Oracle表的类型及定义[归类].pdf

    - **PCTFREE** 和 **PCTUSED**:PCTFREE设置块的预留空闲空间,避免行迁移;PCTUSED则定义何时将块放回freelist。 - **INITIAL, NEXT, PCTINCREASE**:定义段的扩展策略,但在局部管理表空间中,通常设置INITIAL=...

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

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

    Oracle数据库管理与维护大作业.doc

    在该大作业中,我们使用了 storage 参数来优化数据表的存储性能,并使用了 pctfree 和 pctused 参数来优化数据表的存储空间。 6. 数据库管理:包括数据库备份、恢复、性能监控等数据库管理任务。 在该大作业中,...

    Oracle数据库结构精选教材.pptx

    数据块中包含了空闲空间的管理,可以是自动的,也可以通过PCTFREE和PCTUSED参数手工管理。区域(Extent)是由连续的数据块组成,是Oracle为段分配空间的最小单位,用于存储数据库对象的初始和后续空间。段(Segment)是...

    oracle数据库优化.ppt

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

    Oracle的性能优化(ppt 72页).pptx

    + 调整PCTFREE和PCTUSED等存储参数优化插入、更新或者删除等操作。 + 考虑数据库的优化器。 + 考虑数据表的全表扫描和在多个CPU的情况下考虑并行查询。 四、SQL语句优化的具体方法 * 索引的使用:尽量使用索引...

    Oracle企业DBA性能优化

    遵循一些基本规则可以显著提升查询效率,例如避免大表和全表扫描,充分利用优化索引,优化子查询,调整PCTFREE和PCTUSED存储参数,以及考虑数据库优化器和并行查询。具体方法包括明智地使用索引,避免可能导致索引...

    Oracle基础知识_第八讲.pptx

    在段空间管理中,可以设置PCTFREE和PCTUSED参数来控制数据块的使用情况,FREELIST用于记录空闲数据块。现代Oracle版本更倾向于使用自动段空间管理(ASSM),它使用位图来跟踪空闲空间,简化了空间管理。 存储子句...

    Oracle数据库结构 - ch4.pptx

    手工管理则依赖PCTFREE和PCTUSED参数来定义块的可用性。区是由连续数据块构成的逻辑存储单元,是Oracle分配给段的最小存储单元。段是由一个或多个区组成的,它们对应于具体的数据库对象,如数据段、索引段、临时段和...

    Oracle的性能优化PPT学习教案.pptx

    遵循一些基本规则,如避免大表全表扫描,有效利用索引,检查并优化子查询,调整PCTFREE和PCTUSED参数,以及选择合适的优化器和并行查询策略。在实际应用中,索引的使用尤为重要,应尽可能使用索引以提高查询速度,但...

    oracle总复习.doc

    6. PCTFREE和PCTUSED: 这两个参数用于管理数据块的空间利用率。PCTFREE设定数据块预留的未来更新空间,当空间低于这个百分比时,块将不再使用。PCTUSED则决定何时将数据块归还给空闲列表,当块使用率低于这个...

    ORACLE数据库优化设计 (2).pdf

    同时,正确设置分区参数,如PCTFREE和PCTUSED,能避免行连接和行迁移,保持数据在同一数据块内,减少磁头定位带来的性能损失。 其次,控制碎片也是优化的关键。碎片会导致额外的资源消耗和磁盘空间浪费。通过合理...

Global site tag (gtag.js) - Google Analytics