一:首先对几个有关模式对象进行下说明
二:AUTOEXTNED_CLAUSE相关参数的说明及建议
三:STORAGE主要相关参数的说明及建议
四:建表时一些可能影响系统性能的参数的说明
一:首先对几个有关模式对象进行下说明
数据块(block):也叫逻辑块或ORACLE块,它是数据库进行I/O的最小单位。一个数据库块对应硬盘上的一个或多个物理块,它决定于建库时所使用的初始化参数DB_BLOCK_SIZE。数据库块的大小也决定了SGA中每一个数据库缓冲区的大小。
范围(extent):范围是数据库存储空间分配的逻辑单位,它由一组连续的数据块所组成。当数据库的对象(如表、列等)增长时,空间就被分配给范围。
段(segment): 是由一个或多个范围组成的范围集,它包含一个表空间内特定逻辑存储结构的所有数据。一个段是一个能被建立的逻辑结构,它占有存储,并且能增长,当一个段中的所有空间被用完时,ORACLE就分配它一个新的范围,但是一个段不能跨越表空间。
表空间(tablespace):一个数据库从逻辑上来说是由一个或多个表空间所组成,表空间是数据库中物理编组的数据仓库。每一个表空间是由段所组成,一个表空间存放一个或多个数据库的物理文件。一个数据库中的数据被逻辑地存储在表空间上。
行链锁:当把一个包含LONG类型的列数据行存储到一个数据库中时,则该行就可能被存储在两个或多个相链接的数据块中,这种现象叫行链锁。
迁移:当数据库块中的行被更新时,其行长可能增长,此时可能会出现块的自由空间被用完,而使行被移至下一数据库块,这种现象叫迁移。不论是行链锁还是迁移都将会影响系统访问数据的效率,因为ORACLE是以数据块为单位进行读取的,所以ORACLE在访问一个行链锁或迁移行时就必须扫描多个数据块,降低I/O性能也就是影响系统性能。
二:AUTOEXTNED_CLAUSE相关参数的说明及建议
AUTOEXTEND
OFF: 当AUTOEXTEND开关设置为OFF时数据文件将不能进行自动扩展。
ON: 当AUTOEXTEND开关设置为ON时数据文件在空间用完时将自动进行扩展。
NEXT:在AUTOEXTEND开关设为ON时,对指定该参数,表示数据文件每次向外扩展的字节数。MAXSIZE:指定允许数据文件向外扩展的最大空间大小。(有了此参数后面的UNLIMITED就不用)。UNLIMITED:表示不限止分配给数据文件的磁盘空间。(有了此参数那MAXSIZE就不用)。
一般建议在建立数据文件时都指定允许其扩展,对于回滚段可设置为UNLIMITED,以防止事务大多时回滚段可以有更大的扩展空间;对于将来在其空间上要建立数据量较大增长较快的表时,应该给它指定个较大的MAXSIZE值。
三:STORAGE主要相关参数的说明及建议
INITIAL:
此参数指定分配给段的第一个范围的字节量,其缺省值相当于5个数据库块,最小值为相当于2个数据库块的大小。最大值要依赖于操作系统。该参数一般设定为该对象可能增长到的最大值稍大30%或更大些到预计可能大小的2倍。
NEXT:
分配给一个段的下一个增量范围的字节量,该参数的值一般设置等于INITIAL的值。MAXEXTENTS是能分配给段的范围总数。对于我们自己建立的表在磁盘空间允许时一般把它设为UNLIMITED(无限制)。
MINEXTENTS
是段建立时分配给它的范围总数,一般为1个范围。回滚段最少应为2个范围,应尽可能再大一些
PCTINCREASE
是一个百分数,每一个增量范围都在最新分配的增量范围上增长这个百分数。缺省值是50%,但在回滚段中此参数应设置为0。对于一般的表应把它设置为0,但对于一些修改频繁且增长很快的表应给它设置个较大的PCTINCREASE参数值,
OPTIMAL(此参数只对回滚段而言)
它指定在回滚段空闲时系统对回滚段回收的位置,当回滚段比OPTIMAL大时,ORACLE就能重新分配范围,从而维护其大小。以下几点建议可供参考:
1、于长时间运行的更新事务的回滚段,应该分配一个高的OPTIMAL参数值,以避免过多的分配和重新分配。
2、对于长时间运行查询的回滚段,为了保证在查询的同时能用于更新信息的事务,它应该有一个大的OPTIMAL参数值,以免错误快照太老。于短时间运行更新事务和短时间运行查询事务的回滚段,应该有一个较小的OPTIMAL参数值,以便增加回滚段的高速缓冲存储器。ORACLE具有范围动态重新分配的性能,其特点是:一个回滚段可以有一个最佳的尺寸,最佳尺寸是在段建立或修改时指定的。一旦一些活动事务被删除,回滚段将收缩到最佳尺寸(OPTIMAL)。(在指定存储参数时,应当遵循的的方针:即最大的使用连续的自由空间和防止数据文件碎片化。如果不控制范围的分配,则会由于过量的I/O操作和操作系统文件的碎片化而使系统性能下降。减少碎片的办法是使一个段符合INITIAL范围,并且设置PCTINCREASE适合于扩大的增量范围)以上参数在对clusters、 indexes、 rollback segments、 snapshots、 snapshot logs、 tables、 tablespaces、 partitions等对象进行创建或修改时进行设置。其中INITIAL、MINEXTENTS为在创建时设置,已后就不能对它进行修改;MAXEXTENTS、NEXT、PCTINCREASE、OPTIMAL都可以在对象创建后根据情况对其进行重新设置。
3、表空间(TABLESPACE)与建立在其上的对象在STORAGE参数的关系
在建立表空间(TABLESPACE)时可以设置有关存储参数(STORAGE),那么以后建立在其上的对象都将可以继承这些参数。这些参数只是一个较合理的设置,一般情况下建立在此表空间上的对象可以继承它。但有时可能有些对象较特殊,比如:对于一些修改频繁且数据量较大的对象,就应该给它个较大的NEXT参数值和较大的PCTINCREASE参数值,以避免范围的频繁删除—分配所导致的物理文件的碎片化。在这种情况下就应该在建对象时为此对象设置特有的STORAGE参数值。
四:建表时一些可能影响系统性能的参数的说明
1、自由空间的控制及相关参数的说明
对于插入、更新和删除数据库块中的行来说,可通过指定PCTFREE和PCTUSED空间参数的值来控制自由空间的使用,减少上面所讲到的“行链锁”和“迁移”:
PCTFREE:该参数用于指定在向块中插入新行时应该保留的自由空间的百分数,该保留空间用于修改已包含在该块中的行时使用。比如在建表CREATE TABLE 语句中指定该参数为:PCTFREE=20,则在向该表插入新的数据行时,其每个数据块空间最多只能使用80%,一旦达到80%,就不能再向该块插入数据行。留下的20%空间留作此后修改该块中的行时使用。
PCTUSED:该参数是一个限定值,其目的是控制向一个低于PCTUSED所指定的值时,。当通过删除行或更新行(减少了列的存储使用量)而使数据库块的使用百分数ORACLE又许可向该块插入新的数据行。
所以在建表时可以根据表的特性和将来系统对表所要进行的操作对其设置一个合理的值。但两参数之和要小于或等于100((PCTFREE+PCTUSED)<= 100)。利用PCTFREE和PCTUSED对块的自由空间进行控制:
1. 当选择较低的PCTFREE值时能允许向数据块中插入更多的数据行,使其填的更满,这样可节约数据块,使行移动少;但如果有频繁删除操作时,就需要频繁的空间再组织操作从而增加处理代价。
2. 当选择较高的PCTFREE参数时,可为未来的更新操作提供更多的空间;减少空间再组织,从而降低处理代价,减少链锁行,但它需要更多的数据库块来存储数据,而且如果PCTFREE参数值太高,那么装入一个块的数据行就越少,因为ORACLE总是以块为单位读,块的数据少那每次读的数据就少,这样将影响访问数据的效率。
3. 当选择较低的PCTUSED时,可降低处理代价(因为数据库块空闲的机会少),增加未用空间,但容易造成碎片增多。
4. 当选择较高的PCTUSED时,可改善空间使用,但会增加处理代价(因为数据库块经常呈现空闲状态)
2、建表时考虑对INITRANS和MAXTRANS参数的设置
这两个参数是对数据块访问进行控制,合理调整两个参数也将尽量减少用户访问时的冲突,对所有数据的访问最终都是对数据块的访问。
INITRANS:
此参数指定在对象的每一个数据块中为指定数目的事务项预分配的空间,这样当事务进入数据块时系统就不必动态地来为事务项分配空间,其默认值为1。
MAXTRANS:
此参数指定能够并发进入一个数据块的最大事务数目,这也就限制了在任何特定的时间事务项在一个数据块所能占用的空间大小。
说明:对于用户数量较大的情况,就应将这两个参数都设得大些,对于用户较少的情况,相应事务数目也不会太多,可以设得小些,以节省空间,另外要考虑对象的大小,对于大对象,数据分散在许多数据块中,这样对同一数据块访问的可能性较小,则可考虑将这两个参数设小些,而对于较小的表,也许用不了几个数据块当用户多时,对同一块的访问可能性很大,就需要将它们设得大些。
在建表时应分析在将来开发的系统中将对表进行什么样的操作,对于在系统中要对表进行的经常性的查询的字段应为其建立索引,这样在系统中就可以利用此索引进行查询以提高查询的速度。同时在建索引时,应最好将索引存放在不同的表空间中,并且最好是存放在不同的磁盘上,这样在处理数据时就可以充分利用磁盘I/O,使数据和索引在不同的I/O上进行,以提高访问速度。
分享到:
相关推荐
7. **PL/SQL**:PL/SQL是Oracle数据库的内置编程语言,常用于编写存储过程、函数和触发器,以扩展和自定义EBS功能。 8. **报表和分析(Reporting and Analytics)**:Oracle EBS提供了多种工具,如Oracle Business ...
### Oracle名词解释详解 #### 一、数据库名(Database Name) **定义:** 数据库名是数据库的一个唯一标识,类似于人的身份证号码。它用于区分在同一台机器上的多个数据库。数据库名通常由参数`DB_NAME`表示。 **...
数据库名、数据库实例名、数据库域名与全局数据库名以及数据库服务名是Oracle数据库系统中四个核心的名词,它们各自扮演着不同的角色,对于理解和管理Oracle数据库至关重要。 首先,数据库名(Database Name)是...
### Oracle RAC 名词解释及日常管理 #### 一、Oracle RAC 概念解析 **1.1 什么是RAC** RAC(Real Application Clusters)是Oracle数据库的一项核心特性,旨在支持多个数据库实例同时访问同一个数据库。这种设计...
本文档是关于ORACLE数据库及SQL语言考试题,涵盖了名词解释、ORACLE数据库知识问答和SQL语句编写三部分,旨在考察新同事ORACLE数据库知识和SQL语言掌握情况。 名词解释 1. 数据库:按照数据结构来组织、存储和管理...
Oracle EBS 名词解释 Oracle EBS 是一款企业资源计划(ERP)软件,主要用于管理企业中的财务、物流、生产、人力资源等方面。下面是 Oracle EBS 中的一些关键名词解释: 1. ABC 分类法(ABC classification):一种...
### 一、名词解释 #### 数据库 - **定义**:数据库是一种系统化的数据存储方式,它按照一定的数据结构组织、存储和管理数据,以便能够有效地查找和管理这些数据。 - **特点**: - 提供了高效的数据访问手段。 - ...
【名词解释】 1. 重做日志组:重做日志组是Oracle数据库中用于记录所有事务更改的地方,用于保证数据的持久性和故障恢复。 2. 全局数据库名:全局数据库名是Oracle数据库的唯一标识,包括数据库名和域名,用于...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其在企业级数据存储和管理中扮演着重要角色。本文将深入探讨Oracle的基本概念、术语、物理数据库结构以及逻辑结构,旨在为初学者提供一个全面的入门指南。 ...
在Oracle数据库的管理和使用过程中,有几个重要的概念常常被提及,但有时也容易被混淆,这些概念包括:数据库名(DB_NAME)、数据库实例名(INSTANCE_NAME)、操作系统环境变量ORACLE_SID、数据库服务名(SERVICE_...
常见的关系型数据库系统有IBM的DB2、Oracle、Microsoft SQL Server、Sybase和Informix等。 总结来说,层次型数据库以其层次结构为特点,适合表示具有明确层级关系的数据;基因型数据库,如GSDB,专门处理生物信息学...
根据提供的文档信息,我们可以归纳并深入解析Oracle数据库的相关知识点,主要围绕选择题、名词解释、简答题及应用题几个部分展开。以下是对这些知识点的详细阐述: ### 一、选择题解析 1. **实例服务**:选项D ...
Oracle数据库开发和设计规范是确保数据库结构清晰、可读性强且易于维护的重要准则。以下是对这些规范的详细解释: 1. **命名原则**: - 命名应该具有意义,避免使用缩写,如果必须使用,应确保缩写是广泛接受的。 ...
Oracle数据库系统在运行时依赖于一系列的初始化参数来配置其行为和性能。这些参数定义了数据库的内存结构、磁盘空间使用、系统资源限制、数据文件管理等多个方面,是优化Oracle数据库性能的关键因素。以下是对Oracle...
2. 名词解释页脚内容 2:在Oracle数据库中,可以使用MONTHS_BETWEEN函数来计算两个日期之间的月数。可以使用SYSTIMESTAMP函数来获取当前数据库服务器的日期和时间。使用UPPER函数可以将字符串转换为大写形式。 3. ...
#### 一、名词解释与概念理解 **数据对象**:在Oracle数据库中,数据对象指的是用户创建的各种数据结构实体,包括但不限于表(Table)、视图(View)、存储过程(Stored Procedure)、触发器(Trigger)等。 - **表...
这样的手册有助于初学者快速建立起对Oracle数据库体系的全面认知,并提供中英文对照,方便对技术名词的理解和翻译。 其次,"Oracle的内存结构和进程结构.doc"文档则深入讲解了Oracle数据库的内部运作机制。Oracle...