`
sunny.yang
  • 浏览: 31878 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

索引的数据块空间字段含义 pctfree

阅读更多
pctfree:用于指定BLOCK中必需保留的最小空间的比例。
pctused:为一个百分比数值,当BLOCK中已经使用的空间降低到该数值以下时,该BLOCK才是可用的,达到或是超过这个数值的BLOCK是不可用的。
一般在控制具有独立segment结构的对象时,使用这两个参数来控制BLOCK的存储管理。
initrans:指定可以并发操作该表的事务的数目。
 
用CREATE 命令的PCTUSED、PCTFREE、INITTRANS、MAXTRANS、FREELIST GROUPS 和FREELISTS参数来控制表、索引或簇的数据块中的空使用。

可使用PCTFREE和PCTUSED参数控制数据块何时进入或离开表、索引或簇的可用清单。使用PCTFREE参数设置最大的阈值,以控制对将来的行的更新操作保留多少数据块空间。当某个数据块使PCTFREE装满时,ORACLE从相应段的可用清单中删除该块。如果你预计只有很少的更新操作会增加行的大小,则可将PCTFREE设置为较低的值(如5或者10),使得ORACLE填满每个块的更多的空间。但是,如果你预计更新操作将会经常增加行的大小,则将PCTFREE设置为较高的值(如20或30),使得ORACLE为已有行的更新操作保留更多的块空间;否则,将出现行链。

可使用PCTUSED参数设置最小块的阈值来控制一个数据块应在何时放回到相应段的可用清单中。例如,所有段的缺省PCTUSED设置为40%,因此,当事务处理删除数据块中的行时,如果它只有39%是装满的,ORACLE将该数据块放回到相应段的可用清单中。如果你预计很少有删除操作,则可设置PCTUSED为较高的值(如60),当偶然的删除操作发生时,使数据块弹出可用清单。但是,如果你预计将PCTUSED 设置为较低的值(如40),使ORACLE不常产生块在表的可用空间中移进或移出的开销。

可使用INITRANS和MAXTRANS参数优化ORACLE如何在表、数据簇或索引的数据块中分配事务处理项。INITRANS参数确定为事务处理项预分配多少数据块头部的空间。当您预计有许多并发事务处理要涉及某个块时,可为相关的事务处理项预分配更多的空间,以避免动态分配该空间的开销。MAXTRANS参数限制并行使用某个数据块的事务处理的数量。当您预计有许多事务处理将并行访问某个小表时,则当创建表时,应设置该表的事务处理项预分配更多的块空间,较高的MAXTRANS 参数值允许许多事务处理并行访问该表INITRANS和MAXTRANS 参数的设置可能相应低一些(如分别为2和5)。使用这样的设置,很少为事务处理项保留窨,使该表数据块的更多空间用于数据。

可使用STORAGE子句的FREELIST GROUPS 参数控制段的可用清单组的数据量。使用FREELISTS 参数设置每组中可用清单的数量。
 
来自互联网,感谢作者!
分享到:
评论

相关推荐

    oracle的索引初步学习.doc

    - **PCTFREE**:默认值为10%,这意味着每个数据块中只有90%的空间可以用于存储数据。实际上,这个值会进一步减少至大约87%。 - **每个条目大小**:在叶子节点中,每个索引条目需要占用一定的空间。对于本例,每个...

    Oracle的索引是怎样炼成的

    例如,如果一个8KB的数据块有10%的PCTFREE保留空间,实际可用空间大约为6488字节。如果每个索引条目占用18个字节,那么该块可以容纳360个条目。 假设有一个名为warecountd的非分区表,包含130万行数据,其中goodid...

    ORACLE索引介绍与高性能SQL优化

    合理设置这些参数可以避免索引数据块的浪费,同时还能减少对重做日志文件空间的需求。 索引的创建有多种方法,可以根据实际需要创建非唯一索引、唯一索引、基于函数的索引或位图索引等。通过使用create index语句...

    深入研究B树索引

    根据默认的`PCTFREE`设置,每个8KB的数据块实际上可用于存储索引数据的空间约为6488字节。通过这个示例可以看出,B树索引如何有效地利用有限的存储空间来存储大量数据,并支持高效的检索。 #### 性能考虑 - **删除...

    Oracle在线建立超大表的索引

    #### 索引字段与类型 - **字段**:PARENT_CUSTOMER_NO(集团相关客户才有值,超过90%的字段值为空) - **索引类型**:GLOBAL B-Tree #### Oracle创建索引涉及的主要I/O操作 为了理解如何优化创建索引的过程,首先...

    深入研究B树索引.doc

    数据块大小、PCTFREE参数、索引键值长度以及ROWID的大小都是影响索引大小和容量的关键因素。通过计算出一个数据块可以容纳的索引条目数量,结合表的记录数,可以估算出索引的总体大小。这种方法不仅有助于预估索引的...

    索引总结 ,多年使用,工作培训

    2. **使用索引的情况**:若在`name`字段上建立了索引,Oracle会在全表扫描的基础上,将每条记录的`name`值按升序排列,并构建索引条目(包含`name`和`rowid`),存储到索引段中。这样,当查询`name='wish'`时,可以...

    ORACLE笔记

    然后,减去PCTFREE百分比定义的自由空间和一个UB4(4字节),得出数据块可使用大小。数据块的实际大小由DB_BLOCK_SIZE参数决定。 对于表中每条数据的大小,我们需要考虑每个字段的类型和长度。例如,CHAR类型的长度...

    数据库管理员面试题

    1. pctused 和 pctfree 的含义和作用:pctused 表示数据块什么时候移入 freelist,pctfree 表示什么时候移出 freelist 2. 表、段、extent、块之间的关系:一个表至少是一个段,段由多个 extent 组成,extent 由多个...

    表索引和定义的操作.pdf

    * PCTFREE 用于更新(update)的空间百分比(1-99),0 表示在插入时完全填满数据块,缺省为 10 * PCTUSED 为表的每个数据块保留的可用空间的最小百分比,取值 1-99,缺省为 40 * INITRANS 指定一个在每一个数据块中...

    oracel 分区表索引失效的问题

    **全局索引**(Global Index)是指索引覆盖整个表的所有数据,而不受限于分区边界。这种类型的索引通常用于非分区列或者跨分区查询。 **实验验证:** 1. **创建分区表:** 创建了一个基于日期范围的分区表`T_...

    表索引和定义的操作.docx

    * PCTFREE 用于更新(update)的空间百分比(1-99),0 表示在插入时完全填满数据块,缺省为 10 * PCTUSED 为表的每个数据块保留的可用空间的最小百分比,取值 1-99,缺省为 40 * INITRANS 指定一个在每一个数据块中...

    oracle_行链接和行迁移

    当数据块的可用空间低于此值时,该块会被重新加入FREELIST列表。 #### 三、行迁移 行迁移是指当对一个行进行更新操作时,如果更新后的新数据无法完全装入当前数据块中,Oracle会将整行数据移到一个新的块中,并...

    性能调优——Oracle索引技术的应用与剖析

    `PCTFREE`、`INITRANS`、`MAXTRANS`和`STORAGE`参数用于控制索引空间的分配和增长策略,以适应不同负载的性能需求。 在比对过程中,使用游标(Cursor info)和嵌套循环来逐条处理比对结果。然而,这种方式可能会...

    Oracle 大数据量操作优化.pdf

    9. **PCTFREE参数**:对于更新频繁的表,增加PCTFREE值可以保证数据块有足够的空间用于UPDATE操作,减少CHAINED ROWS的产生,从而优化存储效率和查询性能。 10. **批量拷贝与常规插入**:Oracle提供的COPY命令和...

    oracle查询表碎片

    计算公式为`(blocks * 10 / 100) * 8 / 1024`,即预留10%的数据块空间。 4. **浪费空间(M)**:计算公式较为复杂,它考虑了实际使用空间、预留空间等因素之后剩余的空间,表示未被有效利用的空间。 #### 五、SQL查询...

    oracle省市区单表数据SQL

    例如,`pctfree`设定数据块中未使用的空间比例,`initrans`和`maxtrans`分别定义了初始和最大事务并发度。 接着,对每个列添加了注释,以便于代码的可读性和后期维护。这些注释清楚地解释了每个字段的含义。 然后...

    Oracle数据库规范

    - **使用原则**:每个initrans在数据块上占用24字节的空间;initrans值不能超过10;maxtrans值不可修改;修改后的initrans仅对新创建的数据块生效;若需对整个表生效,则需重新组织表。 #### 三、列设计 1. **...

    oracle索引

    5. **为性能安排索引列**:当多个字段经常一起用于检索时,组合索引会比单个索引更有效。 6. **限制每个表的索引数量**:虽然理论上一个表可以有几百个索引,但对于频繁插入和更新的表,过多的索引会导致较高的CPU和...

    oracle开发

    - 组合索引用于一起检索的多个字段,将最常使用的列放在前面。 - 控制每个表的索引数量,一般建议不超过5个,过多的索引会影响性能。 - 及时删除不再需要的索引,重建或删除索引时要注意操作顺序。 5. **创建...

Global site tag (gtag.js) - Google Analytics