续上篇,
五. PCTFREE和PCTUSED
一般而言,PCTFREE参数用来告诉Oracle应该在块上保留多少空间来完成今后的更新,默认情况,这个值是10%。如果块中自由空间的值高于这个值,这个块就是自由的。PCTUSED告诉Oracle当前不自由块(比如这个块的自由空间只剩下不到10%)的自由空间要达到多大才能再次自由,默认值是40%。
根据你使用的是ASSM(自动段空间管理)还是MSSM(手动段空间管理),这两参数实际作用会不同。MSSM的时候,这些参数控制着块何时放入freelist,何时从freelist取出。使用默认值,PCTFREE为10,PCTUSED为40。 在块达到90%满之前,这个块会一直在freelist上。一旦到达90%,就会从freelist中取下来,直到这个块的自由空间超过块的60%的时候,才会重新放到freelist中。但使用ASSM的时候,PCTFREE仍然控制是否将一新行插入块中,但不决定一个块是否在freelist上,因为ASSM根本不使用freelist。
PCTFREE有三种设置:太高,太低和刚好。设置得太高,浪费空间。比如设置成50%,如果你不更新数据,每一个块就浪费50%的空间。但是太小,会导致行迁移。
行迁移
行迁移是指由于某一行变化太大,无法再与其余行一同放在创建这一行的块中,要求这一行离开原来的块。当这一行迁移到一个新地址后,原来快存放它的地方会存放一个指向新地址的指针。表面上看起来没什么问题,但是如果这样的行迁移太多了的话,会严重影响数据的访问速度,毕竟多了一个隔离层。
如何设置PCTFREE和PCTUSED
总体来说,对于MSSM,两参数都重要,但对于ASSM只有PCTFREE是重要的。我们要达到的目的是,尽量避免发生行迁移,又要避免浪费太多的空间。
1. 高PCTFREE,低PCTUSED:当你插入的数据今后会进行大量的更新,而且会频繁的增加行的大小,适合这种设置。预留大部分空间用于更新,同时保证块再次回到freelist几乎为空。
2. 低PCTFREE,高PCTUSED:如果你只是想对表完成insert和delete操作,或者确实会update,但update不会增加行大小,这种设置就合适。
六. INITRANS和MAXTRANS
段中每一个块都有一个块首部。块首部有一个事务表。事务表会建立一些条目来描叙哪些事务将块上的哪些行锁定。这个事务表的初始大小由对象的INITRANS设置指定。对于表这个值是2,事务表会根据情况动态扩展,最大达到MAXTRANS。在10g中,MAXTRANS会被忽略,默认是255.
分享到:
相关推荐
在学习Oracle数据库时,通常分为几个部分: 1. SQL基础:SQL(Structured Query Language)是用于管理关系数据库的标准语言,包括数据查询、数据插入、更新和删除等操作。 2. PL/SQL编程:PL/SQL是Oracle数据库特有...
规范中定义了几个关键术语: - **规则**:表示编程时必须严格遵守的准则,通常与数据库的正确运行和优化密切相关。 - **建议**:虽然不像规则那样强制执行,但建议在大多数情况下被采纳,可以显著提升代码质量和可...
根据提供的文档内容,下面将详细解释ORACLE数据库在Windows2000环境下性能优化的几个重要方面。 首先,数据库性能优化是一个复杂的过程,需要数据库管理员(DBA)分析和掌握影响性能的多个因素,并采取适当措施进行...
首先,我们来看看几个关键术语的定义: 1. 数据库(Database, DB):这是长期存储在计算机中,有组织、统一管理的一系列相关数据的集合。数据库设计的目标是减少冗余,确保数据之间的紧密联系,并提供高数据独立性,...
它是访问Oracle数据库的一种方式,主要包括以下几个组成部分: - **系统全局区域(System Global Area, SGA)**:SGA是所有用户共享的一组内存结构,用于缓存数据、控制信息和执行查询等操作。它包括共享池、数据库...
文档中的Oracle Concept中英文对比文档是一份重要的参考资料,它将英文术语和解释与中文术语和解释并列展示,帮助读者更加有效地学习和理解Oracle数据库的核心概念和技术细节。 文档涵盖了Oracle数据库的多个方面,...
在【Oracle数据库安装与配置】实验中,学生需要掌握以下几个关键知识点: 1. **安装准备**:确保计算机硬件和操作系统满足Oracle 11g的最低需求,如奔腾IV或更高版本的处理器和Windows 7操作系统。 2. **下载与...
这两个组成部分紧密相关,通常情况下,“Oracle 数据库”这个术语指的是实例和数据库整体。 ##### 2.2 物理存储结构 物理存储结构涉及用于存储数据的文件: - **数据文件**:包含实际数据(如销售订单、客户信息...
系统地介绍了数据库和Oracle的相关概念和原理、Oracle的数据库管理(如安装与启动,用户权限、备份与恢复等),以及Oracle的应用开发基础,并通过两个完整案例来介绍基于Java开发包和Oracle数据库进行案例开发的详细...
Oracle数据库升级指南中提到的不同版本号的定义有助于理解文档中的术语和版本适用范围。当文档中提到一个主要版本号时,如Oracle 11g,这通常意味着涵盖该主要版本内的所有子版本,包括11gR1和11gR2。 类似的,当...
这些文档分为几个主要部分:发行说明、主索引和词汇表、数据库管理和SQL\*Plus、目录和网络安全以及安全性。 #### 发行说明 这部分包含了《Oracle 9i数据库文档发行说明》(Part No. b10280),它提供了关于最新...
系统地介绍了数据库和Oracle的相关概念和原理、Oracle的数据库管理(如安装与启动,用户权限、备份与恢复等),以及Oracle的应用开发基础,并通过两个完整案例来介绍基于Java开发包和Oracle数据库进行案例开发的详细...
- **数据字典和动态视图**:这些是Oracle数据库中用来存储关于数据库对象(表、视图、索引等)元数据的特殊表和视图。它们为数据库管理员提供了管理和维护数据库的工具。 - **安全性**:Oracle提供了一套完整的安全...
1. **Oracle数据库基础**:介绍Oracle数据库的基本概念、架构和术语,如表空间、数据块、索引、触发器等,以及如何创建和管理数据库实例。 2. **SQL查询和DML操作**:深入讲解SQL语言,包括SELECT、INSERT、UPDATE...
Oracle提供的几个示例方案,如scott、hr、oe、pm、qs和sh,用于演示不同功能和应用场景,帮助初学者理解数据库的工作原理和常见业务需求。 数据库和实例是Oracle的核心概念。数据库是实际存储数据的文件集合,而...
这份文档可能包含了以下几个关键知识点: 1. **数据库基础**:讲解了数据库的基本概念,如表、视图、索引、存储过程、触发器等,以及它们在数据管理中的作用。 2. **SQL语言**:涵盖了SQL(Structured Query ...