OracleDBA应遵循的调优原则

合集下载

oracle数据库性能调优

oracle数据库性能调优

oracle数据库性能调优⼀:注意WHERE⼦句中的连接顺序:ORACLE采⽤⾃下⽽上的顺序解析WHERE⼦句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最⼤数量记录的条件必须写在WHERE⼦句的末尾.尤其是“主键ID=?”这样的条件。

⼆: SELECT⼦句中避免使⽤ ‘ * ‘:ORACLE在解析的过程中, 会将'*' 依次转换成所有的列名, 这个⼯作是通过查询数据字典完成的, 这意味着将耗费更多的时间。

简单地讲,语句执⾏的时间越短越好(尤其对于系统的终端⽤户来说)。

⽽对于查询语句,由于全表扫描读取的数据多,尤其是对于⼤型表不仅查询速度慢,⽽且对磁盘IO造成⼤的压⼒,通常都要避免,⽽避免的⽅式通常是使⽤索引Index。

三:使⽤索引的优势与代价。

优势:1)索引是表的⼀个概念部分,⽤来提⾼检索数据的效率,ORACLE使⽤了⼀个复杂的⾃平衡B-tree结构. 通常,通过索引查询数据⽐全表扫描要快. 当ORACLE找出执⾏查询和Update语句的最佳路径时, ORACLE优化器将使⽤索引. 同样在联结多个表时使⽤索引也可以提⾼效率. 2)另⼀个使⽤索引的好处是,它提供了主键(primary key)的唯⼀性验证.。

那些LONG或LONG RAW数据类型, 你可以索引⼏乎所有的列. 通常, 在⼤型表中使⽤索引特别有效. 当然,你也会发现, 在扫描⼩表时,使⽤索引同样能提⾼效率.代价:虽然使⽤索引能得到查询效率的提⾼,但是我们也必须注意到它的代价. 索引需要空间来存储,也需要定期维护, 每当有记录在表中增减或索引列被修改时, 索引本⾝也会被修改. 这意味着每条记录的INSERT , DELETE , UPDATE将为此多付出4 , 5 次的磁盘I/O . 因为索引需要额外的存储空间和处理,那些不必要的索引反⽽会使查询反应时间变慢.。

⽽且表越⼤,影响越严重。

使⽤索引需要注意的地⽅:1、避免在索引列上使⽤NOT , 我们要避免在索引列上使⽤NOT, NOT会产⽣在和在索引列上使⽤函数相同的影响. 当ORACLE”遇到”NOT,他就会停⽌使⽤索引转⽽执⾏全表扫描.2、避免在索引列上使⽤计算.WHERE⼦句中,如果索引列是函数的⼀部分.优化器将不使⽤索引⽽使⽤全表扫描.举例:代码如下:低效:SELECT … FROM DEPT WHERE SAL * 12 > 25000;⾼效:SELECT … FROM DEPT WHERE SAL > 25000/12;3、避免在索引列上使⽤IS NULL和IS NOT NULL避免在索引中使⽤任何可以为空的列,ORACLE性能上将⽆法使⽤该索引.对于单列索引,如果列包含空值,索引中将不存在此记录. 对于复合索引,如果每个列都为空,索引中同样不存在此记录. 如果⾄少有⼀个列不为空,则记录存在于索引中.举例: 如果唯⼀性索引建⽴在表的A列和B列上, 并且表中存在⼀条记录的A,B值为(123,null) , ORACLE将不接受下⼀条具有相同A,B值(123,null)的记录(插⼊). 然⽽如果所有的索引列都为空,ORACLE将认为整个键值为空⽽空不等于空. 因此你可以插⼊1000 条具有相同键值的记录,当然它们都是空! 因为空值不存在于索引列中,所以WHERE⼦句中对索引列进⾏空值⽐较将使ORACLE停⽤该索引.代码如下:低效:(索引失效) SELECT … FROM DEPARTMENT WHERE DEPT_CODE IS NOT NULL;⾼效:(索引有效) SELECT … FROM DEPARTMENT WHERE DEPT_CODE >=0;4、注意通配符%的影响使⽤通配符的情况下Oracle可能会停⽤该索引。

数据库管理员的职责和技能要求

数据库管理员的职责和技能要求

数据库管理员的职责和技能要求在当今信息化和数字化的时代,数据库管理员(DBA)的职责变得越来越重要。

他们承担着维护和管理数据库系统的任务,确保数据的安全性和可靠性。

本文将介绍数据库管理员的职责和技能要求,以便更好地理解数据库管理的重要性和挑战。

一、职责1. 数据库设计和规划:数据库管理员负责根据业务需求分析和设计数据库结构,并制定相应的数据库规范和标准。

他们需要与业务部门密切合作,了解需求,以确保数据库的灵活性和可扩展性。

2. 数据库安全管理:DBA需要确保数据库的安全性,包括保护数据的机密性、完整性和可用性。

他们负责设置和管理用户权限,实施访问控制策略,并定期进行系统备份和恢复操作。

此外,DBA还需要进行安全漏洞的检测和修补,以及应对潜在的安全威胁。

3. 数据库性能调优:为了保证数据库的高效性,DBA需要进行性能监控和分析,以及对性能问题进行调优和优化。

他们会识别潜在的瓶颈,并采取相应的措施,如索引优化、查询优化和存储优化,以提高数据库的响应速度和吞吐量。

4. 数据备份和恢复:数据的备份和恢复是数据库管理中非常重要的一项任务。

DBA负责制定备份策略,并定期备份数据库以防止数据丢失。

此外,他们还需要测试和验证备份的可用性,并在需要时进行数据的恢复操作,以确保业务的连续性和灾难恢复的能力。

5. 数据库版本升级和迁移:随着技术的发展和业务的变化,数据库系统的升级和迁移是不可避免的。

DBA需要制定详细的升级计划,并进行测试和验证,以确保升级的平稳进行并解决可能出现的兼容性和性能问题。

6. 故障排除和技术支持:DBA需要解决数据库系统中出现的故障和问题,并提供相应的技术支持。

他们需要及时响应用户的请求,并协助解决数据库相关的技术问题,以确保业务的连续性和用户的满意度。

二、技能要求1. 数据库管理系统(DBMS):熟悉常见的DBMS,如Oracle、MySQL、SQL Server等,了解其架构和特性,熟练掌握数据库的安装、配置和管理。

Oracle数据库参数优化

Oracle数据库参数优化

Oracle数据库参数优化
参数优化对于Oracle数据库来说非常重要,因为它可以有效提高数据库的性能,并提供良好的可用性。

参数优化可令数据库更加稳定和高效地运行。

但是,在参数优化方面,很多初学者犯了不少错误,有些甚至会影响数据库的性能,甚至可能导致数据库出现问题。

因此,在优化参数方面,必须慎重、细心、谨慎。

首先,在参数优化之前,必须对当前参数进行全面的测试,找出需要优化的参数。

一般来说,优化可以采用两种方法,一种是优化全局参数,另一种是优化实例参数。

如果参数设置过高或者过低,可能会影响数据库的性能,因此,在参数优化时,必须按照Oracle数据库提供的最佳实践去设置参数。

最后,应该强调的是,在参数优化时,不要增加参数或者设置参数太高,并且要确保参数优化后,数据库在重要的方面有所改善,比如。

oracle优化方法总结

oracle优化方法总结

千里之行,始于足下。

oracle优化方法总结Oracle优化是提高数据库性能和响应能力的重要步骤。

本文总结了一些常见的Oracle优化方法。

1. 使用索引:索引是提高查询性能的主要方法。

通过在表中创建适当的索引,可以加快查询速度,并减少数据访问的开销。

但是要注意不要过度使用索引,因为过多的索引会增加写操作的开销。

2. 优化查询语句:查询语句的效率直接影响数据库的性能。

可以通过合理地编写查询语句来提高性能。

例如,使用JOIN来替代子查询,尽量避免使用通配符查询,使用LIMIT来限制结果集的大小等。

3. 优化表结构:表的设计和结构对数据库的性能也有很大的影响。

合理的表设计可以减少数据冗余和不必要的数据存储,提高查询速度。

例如,适当地使用主键、外键和约束,避免过多的数据类型和字段等。

4. 优化数据库参数设置:Oracle有很多参数可以用来调整数据库的性能。

根据具体的应用场景和需求,可以根据情况调整参数的值。

例如,调整SGA和PGA的大小,设置合适的缓冲区大小,调整日志写入方式等。

5. 使用分区表:当表的数据量很大时,可以考虑将表分成多个分区。

分区表可以加速查询和维护操作,提高数据库的性能。

可以按照时间、地域、业务等来进行分区。

6. 优化存储管理:Oracle提供了多种存储管理选项,如表空间和数据文件管理。

合理地分配存储空间和管理数据文件可以提高数据库的性能。

例如,定期清理无用的数据文件,使用自动扩展表空间等。

第1页/共2页锲而不舍,金石可镂。

7. 数据压缩:对于大量重复数据或者冷数据,可以考虑使用Oracle的数据压缩功能。

数据压缩可以减少磁盘空间的使用,提高IO性能。

8. 使用并行处理:对于大型计算或者批处理任务,可以考虑使用Oracle的并行处理功能。

并行处理可以将任务分成多个子任务,并行执行,提高处理能力和效率。

9. 数据库分区:对于大型数据库,可以考虑将数据库分成多个独立的分区。

数据库分区可以提高数据的并行处理能力,减少锁竞争和冲突,提高数据库的性能。

Oracle数据库内存优化操作说明

Oracle数据库内存优化操作说明

Oracle数据库内存优化操作说明Oracle数据库内存优化是提高数据库性能的重要手段之一。

通过设置合理的内存参数,可以有效地削减IO操作,提高数据访问速度。

本文将介绍一些常见的Oracle数据库内存优化操作。

一、调整PGA参数PGA(Program Global Area)是每个数据库会话独有的内存区域,用于存储排序、哈希操作等临时数据。

调整PGA参数可以提高排序和连接操作的性能。

1. 设置PGA_AGGREGATE_TARGET参数该参数把握PGA内存的总量,一般建议设置为SGA的1/3到1/2。

可以通过以下命令设置:ALTER SYSTEM SET PGA_AGGREGATE_TARGET=XXXM;2. 调整SORT_AREA_SIZE参数该参数把握每个排序操作使用的PGA内存大小,一般建议设置为100MB到200MB。

可以通过以下命令设置:ALTER SESSION SET SORT_AREA_SIZE = XXXM;3. 调整HASH_AREA_SIZE参数第1页/共4页该参数把握每个哈希操作使用的PGA内存大小,一般建议设置为SORT_AREA_SIZE的1/2到1倍。

可以通过以下命令设置:ALTER SESSION SET HASH_AREA_SIZE = XXXM;二、调整SGA参数SGA(System Global Area)是Oracle数据库的全局共享内存区域,用于存储缓存数据、SQL执行方案等。

调整SGA参数可以提高数据访问的速度。

1. 调整SHARED_POOL_SIZE参数该参数把握缓存SQL语句的内存大小,一般建议设置为SGA的1/4到1/3。

可以通过以下命令设置:ALTER SYSTEM SET SHARED_POOL_SIZE=XXXM;2. 调整DB_CACHE_SIZE参数该参数把握数据库缓冲区的内存大小,一般建议设置为SGA的1/2到2/3。

可以通过以下命令设置:ALTER SYSTEM SET DB_CACHE_SIZE=XXXM;3. 调整LOG_BUFFER参数该参数把握数据库日志缓冲区的内存大小,一般建议设置为10MB到100MB。

Oracle 索引的使用规则与性能调优

Oracle 索引的使用规则与性能调优

Oracle 索引的使用规则与性能调优索引分类逻辑上:Unique 唯一索引物理上:B-tree:Normal 正常型B树Bitmap 位图索引索引结构:B-tree:适合与大量的增、删、改(OLTP);不能用包含OR操作符的查询;适合高基数的列(唯一值多)典型的树状结构;每个结点都是数据块;大多都是物理上一层、两层或三层不定,逻辑上三层;叶子块数据是排序的,从左向右递增;在分支块和根块中放的是索引的范围;Bitmap:适合与决策支持系统;做UPDATE代价非常高;非常适合OR操作符的查询;基数比较少的时候才能建位图索引;树型结构:索引头开始ROWID,结束ROWID(先列出索引的最大范围)BITMAP每一个BIT对应着一个ROWID,它的值是1还是0,如果是1,表示着BIT对应的ROWID 有值;B*tree索引的话通常在访问小数据量的情况下比较适用,比如你访问不超过表中数据的5%,当然这只是个相对的比率,适用于一般的情况。

bitmap的话在数据仓库中使用较多,用于低基数列,比如性别之类重复值很多的字段,基数越小越好。

索引就好象一本字典的目录。

凭借字典的目录,我们可以非常迅速的找到我们所需要的条目。

数据库也是如此。

凭借Oracle数据库的索引,相关语句可以迅速的定位记录的位置,而不必去定位整个表。

虽然说,在表中是否创建索引,不会影响到Oracle数据库的使用,也不会影响数据库语句的使用。

这就好像即使字典没有目录的话,用户仍然可以使用它一样。

可是,若字典没有目录,那么可想而知,用户要查某个条目的话,其不得不翻遍整本字典。

数据库也是如此。

若没有建立相关索引的话,则数据库在查询记录的时候,不得不去查询整个表。

当表中的记录比较多的时候,其查询效率就会很低。

所以,合适的索引,是提高数据库运行效率的一个很好的工具。

不过,并不是说表上的索引越多越好。

过之而不及。

故在数据库设计过程中,还是需要为表选择一些合适的索引。

Oracle数据库参数优化

Oracle数据库参数优化

千里之行,始于足下。

Oracle数据库参数优化Oracle数据库参数优化是指通过调整数据库的配置参数,提高数据库的性能和稳定性。

下面是一些常见的Oracle数据库参数优化技巧:1. SGA参数优化:- 调整sga_target参数以控制SGA的大小。

SGA包括数据库缓冲区、共享池、重做日志缓冲区等,适当调整SGA的大小可以减少IO操作,提高数据库性能。

- 调整db_cache_size参数以增大数据库缓冲区的大小,提高数据块的访问速度。

- 调整shared_pool_size参数以增大共享池的大小,提高SQL语句的解析和执行效率。

2. PGA参数优化:- 调整pga_aggregate_target参数以控制PGA的大小。

PGA是用于处理SQL查询和排序的内存区域,适当调整PGA的大小可以减少磁盘IO操作,提高查询和排序的性能。

3. Redo日志参数优化:- 调整log_buffer参数以增大重做日志缓冲区的大小,减少频繁的重做日志刷新操作,提高数据库的写入性能。

- 调整log_checkpoint_timeout参数以控制重做日志刷新的频率,避免过于频繁的刷新。

4. 并行处理参数优化:- 调整parallel_max_servers参数以增大并行处理的资源限制,提高并行查询和并行DML操作的性能。

第1页/共2页锲而不舍,金石可镂。

- 调整parallel_min_servers参数以设置最小的并行处理资源数,避免并行操作的启动延迟。

5. SQL优化:- 使用合适的索引和优化的SQL语句,优化查询的执行计划。

- 使用绑定变量而不是直接将参数传递到SQL语句中,避免SQL重解析,提高性能。

6. 服务器参数优化:- 调整processes参数以增加数据库的并发连接数。

- 调整sessions参数以控制数据库的最大会话数。

- 调整open_cursors参数以增大打开游标的数量,避免游标溢出。

以上是一些常见的Oracle数据库参数优化技巧,但具体的优化策略需要根据实际情况进行调整,可以参考Oracle官方文档和专业的DBA建议。

oracle数据库管理员手册

oracle数据库管理员手册

Oracle数据库管理员(DBA)手册涵盖了广泛的主题,包括数据库安装、配置、性能调优、备份和恢复、安全性等方面。

以下是一个简要的Oracle数据库管理员手册的大纲,其中包含了一些主要的主题:1. 数据库基础知识和架构:- Oracle数据库的体系结构-数据库实例和数据库-表空间和数据文件2. 数据库安装和配置:- Oracle数据库软件的安装-创建数据库-配置监听器-网络配置3. 数据库对象管理:-表和索引的创建、修改和删除-视图、存储过程和触发器的管理-序列的创建和管理-同义词的使用4. 用户和权限管理:-用户账号的创建和管理-角色和权限管理-访问控制和安全性5. 性能调优:- SQL调优技术-索引优化-表分区和分表-优化查询计划6. 备份和恢复:-数据库备份策略-使用RMAN进行备份和恢复-数据库点恢复和时间点恢复7. 监控和诊断:-使用AWR和ADDM进行性能分析-查询V$视图和动态性能视图-警告和错误日志的管理8. 高可用性和容灾:-数据库复制和数据保护- RAC(Real Application Clusters)配置-数据库故障转移和恢复9. 安全性:-用户身份验证和访问控制-安全审计和监视-数据加密和解密10. 数据库升级和迁移:- Oracle版本升级-数据库迁移和导入/导出11. 常规维护任务:-统计信息收集和重建索引-表空间管理-定期任务和计划任务12. 实用工具:- SQL*Plus和SQLcl- Oracle Enterprise Manager(OEM)-数据库配置助手(DBCA)和其他实用工具13. 文档和资源:- Oracle文档和在线资源-社区和论坛这个大纲只是一个简单的概述,实际的Oracle数据库管理员手册可能更为详细,根据组织的需求和数据库的规模可能会有所不同。

要深入了解每个主题,建议参考Oracle官方文档和相应版本的手册。

Oracle的文档通常提供了详细的指导和最佳实践。

DBA技能之:优化Oracle网络设置的方案

DBA技能之:优化Oracle网络设置的方案

优化Oracle网络设置的方案Oracle数据库在不同的地域被人们广泛使用,所以就必须要有专业的Oracle人员懂得网络连接是怎么样影响数据库性能的。

Oracle提供的TNS允许在每个数据库中进行分配通信。

TNS服务器被看作Oracle的逻辑数据请求中的绝缘体和远程服务器间的服务器。

同样的,网络管理员有能力控制网络性能调谐性,但是Oracle管理员没有控制影响数据库性能的网络设置的权利。

可以利用下面我所说的重要的设置来改变分布式事物元的性能。

其中包括了sqlnet.ora, tnsnames.ora, 和protocol.ora文件中的参数,这些参数可以被用做改变设置和TCP包的大小,并且调整这些参数可以影响根本的网络传输层以便改变Oracle事物元的吞吐量。

正如刚才所说,Oracle网不允许Oracle专业人员调整根本的网络传输层,并且大多数的网络流量不能在Oracle环境中被改变。

记住,Oracle网络是一个在OSI模型中的网络层,这个网络层存在于网络协议栈上。

但是,网络信息包的频率和大小可以被Oracle DBA来控制。

Oracle有大量的工具来改变信息包的频率和大小。

在服务器间的Oracle网络连接可以用几个参数来调谐。

但是,你一定要记住,网络的调谐一定要在Oracle的外面并且一个有资格的网络管理员必须有在被商议后才可以调谐网络。

信息包的频率和大小可以受到下面参数文件的设置的影响。

sqlnet.ora服务器文件——automatic_ipc参数sqlnet.ora 客户文件—break_poll_skip 参数tnsnames.ora 和 listener.ora 文件—SDU 和 TDU 参数protocol.ora 文件—tcp.nodelay 参数这些调谐参数仅仅影响Oracle网络层的性能。

让我们来详细的解释一下它们并看看它们怎么被调整用来改变Oracle网络吞吐量。

在传输数据之前Oracle网络默认等待直到缓冲器被填满。

oracle索引优化原则

oracle索引优化原则

oracle索引优化原则Oracle索引是数据库优化中非常重要的一部分,它们能够在查询数据时提高查询效率和性能。

然而,在使用Oracle索引时,需要遵守一些原则,以便最大程度地提高查询效率和性能。

以下是一些Oracle索引优化的原则。

1.只在需要时使用索引Oracle索引能够帮助我们提高查询效率和性能,但它们也会降低更新和插入数据的速度。

因此,我们应当仅在需要时使用索引。

如果使用过多的索引,会导致查询语句变得复杂并且更新和插入速度变慢,从而影响整个数据库系统的性能。

2.使用唯一性索引唯一性索引可以帮助我们避免重复数据的插入和更新。

当数据库表中的某个列需要具有唯一性时,我们可以使用唯一性索引来实现。

这将确保同一列中的值不重复,从而提高整个数据库系统的性能。

3.使用复合索引如果查询语句需要同时查询多个列,我们可以使用复合索引来提高查询效率和性能。

使用复合索引时,需要注意索引的顺序,应该从前往后按照查询条件的顺序构建索引。

这样可以避免Oracle优化器无法使用索引而导致的全表扫描。

4.选择正确的索引类型Oracle提供不同的索引类型,包括B树索引、位图索引、函数索引等。

在选择索引类型时,我们应当根据查询语句的类型和数据的特点来选择最适合的索引类型。

例如,如果查询语句需要对大量的布尔类型或枚举类型数据进行查询,那么位图索引可能比B树索引更适合。

5.避免过度索引化过多的索引将会降低数据库系统的性能,每个索引都需要消耗一定的内存和磁盘空间,使得查询和更新操作变得更慢。

因此,我们应避免对相同的列建立多个重复的索引,并仅为确实需要的列创建合适的索引。

6.定期维护索引当数据表中的数据发生变化时,索引也需要随之更新。

因此,我们需要定期进行索引维护和优化,以确保索引数据与实际数据的一致性。

这样可以避免索引中出现“死数据”,也可以提高查询效率和性能。

在某些情况下,Oracle优化器会选择错误的索引,从而影响查询效率和性能。

34种Oracle性能优化的方法

34种Oracle性能优化的方法

34种Oracle性能优化的方法1、选择最有效率的表名顺序(只在基于规则的优化器中有效):ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。

如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表.2、WHERE子句中的连接顺序:ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾.3、SELECT子句中避免使用‘ * ‘:ORACLE在解析的过程中, 会将'*' 依次转换成所有的列名, 这个工作是通过查询数据字典完成的, 这意味着将耗费更多的时间4、减少访问数据库的次数:ORACLE在内部执行了许多工作: 解析SQL语句, 估算索引的利用率, 绑定变量 , 读数据块等;5、在SQL*Plus , SQL*Forms和Pro*C中重新设置ARRAYSIZE 参数, 可以增加每次数据库访问的检索数据量 ,建议值为2006、使用DECODE函数来减少处理时间:使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表.7、整合简单,无关联的数据库访问:如果你有几个简单的数据库查询语句,你可以把它们整合到一个查询中(即使它们之间没有关系)8、删除重复记录:最高效的删除重复记录方法 ( 因为使用了ROWID)例子:DELETE FROM EMP E WHERE E.ROWID > (SELECT MIN(X.ROWID)FROM EMP X WHERE X.EMP_NO = E.EMP_NO);9、用TRUNCATE替代DELETE:当删除表中的记录时,在通常情况下, 回滚段(rollback segments ) 用来存放可以被恢复的信息. 如果你没有COMMIT事务,ORACLE会将数据恢复到删除之前的状态(准确地说是恢复到执行删除命令之前的状况) 而当运用TRUNCATE时, 回滚段不再存放任何可被恢复的信息.当命令运行后,数据不能被恢复.因此很少的资源被调用,执行时间也会很短. (译者按: TRUNCATE只在删除全表适用,TRUNCATE是DDL不是DML)10、尽量多使用COMMIT:只要有可能,在程序中尽量多使用COMMIT, 这样程序的性能得到提高,需求也会因为COMMIT所释放的资源而减少:COMMIT所释放的资源:a. 回滚段上用于恢复数据的信息.b. 被程序语句获得的锁c. redo log buffer 中的空间d. ORACLE为管理上述3种资源中的内部花费11、用Where子句替换HAVING子句:避免使用HAVING子句, HAVING 只会在检索出所有记录之后才对结果集进行过滤. 这个处理需要排序,总计等操作. 如果能通过WHERE子句限制记录的数目,那就能减少这方面的开销. (非oracle中)on、where、having这三个都可以加条件的子句中,on是最先执行,where次之,having最后,因为on是先把不符合条件的记录过滤后才进行统计,它就可以减少中间运算要处理的数据,按理说应该速度是最快的,where也应该比having快点的,因为它过滤数据后才进行sum,在两个表联接时才用on的,所以在一个表的时候,就剩下where跟having比较了。

常见Oracle数据库优化策略与方法

常见Oracle数据库优化策略与方法

常见Oracle数据库优化策略与方法
Oracle数据库优化是提高数据库性能的关键步骤,可以采取多种策略。

以下是一些常见的Oracle数据库优化策略:
1.硬件优化:这是最基本的优化方式。

通过升级硬件,比如增加RAM、使用
更快的磁盘、使用更强大的CPU等,可以极大地提升Oracle数据库的性能。

2.网络优化:通过优化网络连接,减少网络延迟,可以提高远程查询的效率。

3.查询优化:对SQL查询进行优化,使其更快地执行。

这包括使用更有效的
查询计划,减少全表扫描,以及使用索引等。

4.表分区:对大表进行分区可以提高查询效率。

分区可以将一个大表分成多
个小表,每个小表可以单独存储和查询。

5.数据库参数优化:调整Oracle数据库的参数设置,使其适应工作负载,可
以提高性能。

例如,调整内存分配,可以提升缓存性能。

6.数据库设计优化:例如,规范化可以减少数据冗余,而反规范化则可以提
升查询性能。

7.索引优化:创建和维护索引是提高查询性能的重要手段。

但过多的索引可
能会降低写操作的性能,因此需要权衡。

8.并行处理:对于大型查询和批量操作,可以使用并行处理来提高性能。

9.日志文件优化:适当调整日志文件的配置,可以提高恢复速度和性能。

10.监控和调优:使用Oracle提供的工具和技术监控数据库性能,定期进行性
能检查和调优。

请注意,这些策略并非一成不变,需要根据实际情况进行调整。

在进行优化时,务必先备份数据和配置,以防万一。

Oracle DBA成功的必备手册

Oracle DBA成功的必备手册

DBA不是纯技术活Oracle DBA成功的几个要素Oracle DBA成功的必备手册本系列文章由三部分组成,为Oracle数据库管理员(DBA)面试成功的必备手册。

本专题内容囊括从DBA最初的面试开始,从写“杀手简历”到求职信、到面试过程到Oracle认证再到上升到公司高层最后到你成为公司里的明星DBA。

专家为你一一指点迷津,最终让你登上成功的宝座。

DBA面试技巧现在DBA这类人才的确很缺乏,但是这并不意味你只需要简单地提交简历,等待着安排工作。

你还需要遵循一些基本的商务规则。

Michael Hillenbrand总结了他20多年的工作经验,他聘用过50名DBA,面试、评审过上万份求职者。

让我们一起阅读他给出的在面试过程中基础知识、了解大多数到底主管需要找到什么样的DBA。

工作中DBA应具备的两大技能在第一个章节中,我们谈到了DBA如何才能找到一份好工作。

本节主要讲述DBA在获得了工作之后你需要做什么。

因为持续要求减少IT成本,DBA们不能再被看作是主要的成本负担。

相反,他们必须努力于被公司认可和证明他们的价值。

本节将集中讲述两方面内容:你作为一个DBA需要具备的技术(硬性)实力和非技术(软性)实力。

专家还提出了关于怎样同管理层打交道和通过不断的增加基础价值来保证工作的安全性的建议。

所以准备好步出传统的DBA角色,超越基本的数据库管理工作,证明你自己是公司的无价资产。

Oracle认证本系列的最后一个章节侧重介绍Oracle DBA认证的益处。

为什么是否经过认证是数据库管理员和主管们一直广泛争论的话题、怎样衡量获得Oracle认证的成本和获得益处。

Hillenbrand还详细解释OCA、OCP以及OCM认证之间的不同、获得认证的好、坏理由等等。

DBA面试:回归根本(一)你可能觉得很奇怪,许多DBA和大部分与IT职位相关的职位都会有很高的要求。

这就好像他们生活在网络时代里。

现在是人才缺乏的时代。

我们说的“人才缺乏”是由很多因素造成的,包括后来的生育节制和后来IT领域里拥有大学学历人才的减少。

oracle优化原则和方法

oracle优化原则和方法

在oracle数据库管理中,优化是最重要的一项,也是最基础的一项。

oracle优化是为了改善数据库访问性能,使其更加高效。

要进行优化,就需要正确的方法和原则,下面介绍oracle优化的一些原则和方法。

一、优化原则1.应限制数据库大小,减少数据库扩充带来的影响,进而节省存储空间;2.应注重数据库索引结构优化,引起合理分类,改善搜索效率;3.应使用合理的逻辑结构,使得访问表时,扫描表行越少越高;4.应尽量避免使用全表扫描,从而提高数据处理速度;5.应尽量避免在数据库中使用触发器或存储过程,以免增加不必要的开销;6.应注重事务处理,尽量避免使用长事务;7.应尽量减少事务完成时间,避免不必要的资源锁定;8.应使用合理的架构逻辑结构,避免将多个大表同时加载到内存中;9.应限制数据库连接数,减少用户的等待时间和系统的负荷;10.应尽可能用正确的方式和有效的技术来优化系统。

二、优化方法1.创建索引:创建正确的索引对于提高oracle数据库的性能非常重要。

创建索引时,要考虑建立索引应包括的列和索引的类型;2.优化SQL语句:通过修改或优化SQL语句,可以使oracle数据库更加高效;3.改善数据库可用性:通过合理的备份与恢复措施,以及采用定期维护慢查询SQL和检查数据的一致性等技术,可以改善数据库的可用性;4.监控调优:可以通过oracle数据库定期监控功能,监控各种资源消耗情况,并深入分析SQL表达式,进行针对性的优化;5.定期重建表和索引:定期重建表和索引,能够使oracle数据库性能得到改善;6.合理分区:oracle数据库中用到分区表来改进query语句执行速度,减少用户的时间等待;以上是oracle优化的原则和方法,以改善oracle数据库的性能,。

oracle日常运维总结

oracle日常运维总结

oracle日常运维总结Oracle是一种功能强大的关系型数据库管理系统,广泛应用于各种企业级应用程序中。

作为一名Oracle数据库管理员(DBA),日常运维是我们工作的重要组成部分。

在这篇文章中,我将总结一些Oracle日常运维的经验和注意事项,希望对其他DBA或使用Oracle 的人员有所帮助。

一、备份与恢复备份和恢复是数据库管理中至关重要的一环。

我们需要定期进行数据库备份,以防止数据丢失和系统故障。

在备份过程中,我们可以使用Oracle提供的工具和功能,如RMAN(Recovery Manager)和Data Pump。

RMAN提供了完整的备份和恢复解决方案,可以进行全库备份和增量备份,并且支持备份集和归档日志的管理。

Data Pump 可以用于导出和导入数据库对象和数据,可以选择全库导出或指定对象导出。

恢复也是DBA必须掌握的技能之一。

当数据库遇到故障或数据损坏时,我们需要根据备份文件进行恢复。

在恢复过程中,我们需要了解不同的恢复场景和方法,如完全恢复、不完全恢复和点恢复。

同时,我们还要考虑日志文件的应用和恢复集的管理,确保数据的一致性和完整性。

二、性能优化Oracle数据库的性能优化是DBA不可或缺的工作之一。

通过监控和调整数据库的各个方面,我们可以提高数据库的响应速度和吞吐量,提升用户体验。

以下是一些常见的性能优化技巧:1. SQL调优:通过分析和改进SQL语句,优化查询计划和执行效率。

我们可以使用Oracle提供的SQL调优工具,如SQL Tuning Advisor和SQL Access Advisor。

2. 系统监控:通过监控数据库的系统资源利用率和性能指标,及时发现和解决性能瓶颈。

我们可以使用Oracle Enterprise Manager 或自定义脚本进行系统监控。

3. 索引优化:通过创建和维护合适的索引,加快数据检索和查询速度。

我们需要了解不同类型的索引和索引的使用场景,避免创建过多或不必要的索引。

论Oracle数据库的性能优化问题

论Oracle数据库的性能优化问题

论Oracle数据库的性能优化问题Oracle数据库是一款流行的企业级数据库软件,但其性能优化问题也是不可避免的。

在实际应用中,如果Oracle数据库出现性能问题,将有严重的影响和损失。

因此,本文将讨论如何优化Oracle数据库的性能问题。

首先,针对Oracle数据库的性能瓶颈,可以通过调整数据库参数来提高性能。

Oracle数据库有很多参数可以配置,例如,缓存区大小、连接数、内存分配等。

通过针对不同的应用场景调整不同的参数配置,可以最大化地利用数据库的性能。

其次,针对SQL的性能问题,可以通过改进SQL语句来提高性能。

SQL优化是一项复杂的工作,但可以通过分析SQL执行计划来发现性能瓶颈,例如,缺乏索引、大表连接、高开销的子查询等。

并可以通过添加索引、优化查询语句等方式来提高数据库的性能。

除此之外,还可以通过加强硬件设备等方面来提升数据库性能。

例如,扩展数据库服务器的内存和硬盘容量,可以提高数据库的读写速度。

而使用高速网络设备如IB网络和10/100G以太网设备等,也可提高数据库的数据传输速度。

此外,Oracle数据库的性能优化也需要管理进程的支持与配合。

例如,数据库管理员需要监控数据库服务器硬件和软件性能,例如Oracle数据库的内部锁、等待事件、I/O活动等等。

在监控到性能问题后,需要在业务空档期进行优化,如调整SQL语句、更改数据库参数等。

总之,提高Oracle数据库的性能需要全面考虑软硬件配置、SQL语句等多个方面的因素。

通过合理的参数配置、SQL优化和硬件支持等方式,可以优化数据库的性能,提高应用的稳定性和响应速度。

oracle?DBA需要掌握哪些技巧?

oracle?DBA需要掌握哪些技巧?

作为一名Oracle DBA,需要掌握许多技巧,以确保数据库的安全性、可靠性和高效性。

以下是一些必备的技巧:1.数据库备份和恢复技巧备份和恢复是Oracle DBA的核心工作之一。

DBA需要掌握不同备份策略的优缺点,以及如何使用Oracle Recovery Manager(RMAN)进行备份和恢复。

DBA还需要熟悉数据恢复的各种技术,如点恢复、时间点恢复和完全恢复。

2.数据库性能调优技巧数据库性能是Oracle DBA的另一个重要职责。

DBA需要了解如何使用各种工具和技术来监视和调整数据库性能。

这些技术包括SQL调优、索引优化、内存和磁盘I/O优化、统计信息管理和SQL执行计划分析。

3.安全管理技巧数据库安全是Oracle DBA的重要职责之一。

DBA需要熟悉各种安全技术和策略,如访问控制、身份验证和授权、加密和审计。

DBA还需要了解如何应对各种安全威胁,如SQL注入、拒绝服务攻击和恶意软件。

4.数据库设计和架构技巧Oracle DBA需要了解数据库设计和架构的基本原则,以确保数据库的可扩展性、可维护性和可靠性。

DBA需要了解如何设计高可用性和灾备性解决方案,并熟悉各种数据库架构,如单机、主从复制和集群。

5.自动化管理技巧随着数据库规模的增长,手动管理数据库已经不再可行。

Oracle DBA需要掌握各种自动化管理技巧,如自动备份和恢复、自动调优和自动化部署。

这些技术可以减少DBA 的工作负担,提高数据库的可靠性和高效性。

作为一名Oracle DBA,需要掌握备份和恢复技巧、数据库性能调优技巧、安全管理技巧、数据库设计和架构技巧以及自动化管理技巧。

这些技巧可以帮助DBA确保数据库的安全性、可靠性和高效性,提高工作效率,减少工作负担。

oracle 11g sga pga的设置原则 和方法

oracle 11g sga pga的设置原则 和方法

oracle 11g sga pga的设置原则和方法Oracle 11g中SGA(System Global Area)和PGA(Program Global Area)的设置原则和方法如下:1. SGA的设置原则:- 根据系统的内存大小和应用的需求,确定SGA的大小。

SGA主要包括Buffer Cache、Shared Pool、Large Pool、Java Pool等组件,需要根据数据库的访问模式和数据量大小来进行调整。

- 尽量使用自动内存管理(Automatic Memory Management,AMM)来管理SGA的大小和组件分配,这样可以更加灵活地管理内存资源。

2. SGA的设置方法:- 手动设置SGA大小:可以通过修改初始化参数文件(initSID.ora)的SGA相关参数来手动设置SGA的大小,如SGA_TARGET、SGA_MAX_SIZE等。

需要重启数据库以使设置生效。

- 使用AMM:在使用AMM的情况下,只需要设置SGA_TARGET参数为所需的SGA大小,Oracle会自动根据系统的内存大小和负载情况进行动态调整。

3. PGA的设置原则:- 根据应用的并发性和查询的复杂度,以及数据库服务器的硬件资源(CPU、内存)等因素来确定PGA的大小。

- PGA主要包括Sort Area、Hash Area、Bitmap Merge Area等组件,需要根据查询的需求和并发性来决定这些组件的大小。

4. PGA的设置方法:- 使用PGA_AGGREGATE_TARGET参数:PGA_AGGREGATE_TARGET参数用于指定PGA的目标大小,Oracle会根据这个目标值和实际的应用需求来动态分配PGA的大小。

- 手动设置PGA大小:可以通过设置PGA相关的初始化参数(如SORT_AREA_SIZE、HASH_AREA_SIZE等)来手动控制PGA的大小,需要重启数据库以使设置生效。

Oracle语句优化规则汇总

Oracle语句优化规则汇总

Oracle语句优化规则汇总(1)1.选用适合的ORACLE优化器ORACLE的优化器共有3种:a.RULE(基于规则)b.COST(基于成本)c.CHOOSE(选择性)设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS.你当然也在SQL句级或是会话(session)级对其进行覆盖。

为了使用基于成本的优化器(CBO,Cost-Based Optimizer),你必须经常运行analyze命令,以增加数据库中的对象统计信息(object statistics)的准确性。

如果数据库的优化器模式设置为选择性(CHOOSE),那么实际的优化器模式将和是否运行过analyze命令有关。

如果table已经被analyze过,优化器模式将自动成为CBO,反之,数据库将采用RULE形式的优化器。

在缺省情况下,ORACLE采用CHOOSE优化器,为了避免那些不必要的全表扫描(full table scan),你必须尽量避免使用CHOOSE优化器,而直接采用基于规则或者基于成本的优化器。

2.访问Table的方式ORACLE采用两种访问表中记录的方式a.全表扫描全表扫描就是顺序地访问表中每条记录。

ORACLE采用一次读入多个数据块(database block)的方式优化全表扫描。

b.通过ROWID访问表你可以采用基于ROWID的访问方式情况,提高访问表的效率,ROWID包含了表中记录的物理位置信息……ORACLE采用索引(INDEX)实现了数据和存放数据的物理位置(ROWID)之间的联系。

通常索引提供了快速访问ROWID的方法,因此那些基于索引列的查询就可以得到性能上的提高。

3.共享SQL语句为了不重复解析相同的SQL语句,在第一次解析之后,ORACLE将SQL语句存放在内存中。

这块位于系统全局区域SGA(system global area)的共享池(shared buffer pool)中的内存可以被所有的数据库用户共享。

数据库管理职业要求

数据库管理职业要求

数据库管理职业要求数据库管理是一项关键的职业,它要求专业知识和技能来管理和维护组织的数据资源。

数据库管理员(DBA)负责确保数据库的安全性、可靠性和高效性。

在这篇文章中,我们将探讨数据库管理职业的要求和技能。

1. 熟悉数据库管理系统(DBMS):数据库管理员需要熟悉各种DBMS,如Oracle、MySQL、SQL Server等。

他们应该了解这些系统的特点、功能和性能,并能根据组织的需求选择合适的DBMS。

2. 数据库设计和规划:DBA应该具备数据库设计和规划的能力。

他们需要了解组织的需求,并设计出适合的数据库结构和模式。

此外,他们还需要考虑数据的安全性、完整性和可扩展性。

3. 数据库安全管理:保护数据的安全是数据库管理员的重要职责之一。

他们需要制定和实施安全策略,确保只有授权人员能够访问敏感数据。

此外,他们还需要监控数据库的安全性,并及时采取措施应对潜在的安全威胁。

4. 数据备份和恢复:数据库管理员需要定期备份数据库,并确保备份数据的完整性和可靠性。

在数据丢失或系统故障的情况下,他们应该能够快速恢复数据,并确保业务的连续性。

5. 性能优化和调优:DBA应该具备性能优化和调优的技能。

他们需要监控数据库的性能,并采取措施提高数据库的响应速度和吞吐量。

此外,他们还需要识别和解决数据库中的性能瓶颈问题。

6. 故障排除和故障恢复:数据库管理员需要具备故障排除和故障恢复的能力。

当数据库出现故障或错误时,他们应该能够快速定位问题,并采取适当的措施进行修复。

7. 持续学习和更新知识:数据库技术不断发展和演变,作为数据库管理员,持续学习和更新知识是必不可少的。

他们应该关注最新的数据库技术和趋势,并不断提升自己的技能和知识水平。

8. 沟通和团队合作能力:数据库管理员通常需要与其他团队成员合作,如开发人员、系统管理员等。

他们应该具备良好的沟通和团队合作能力,能够有效地与他人合作解决问题。

9. 问题解决能力:数据库管理员需要具备良好的问题解决能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在检查 Oracle 的外部环境时,有两个方面是需要注意的:
1 、当运行队列的数目超过服务器的 CPU 数量时,服务器的性能就会受到 CPU 的限制。补救的方法是为服务器增加额外的 CPU 或者关闭需要很多处理资源的组 件,例如 Oracle Parallel Query 。
2 、内存分页。当内存分页时,内存容量已经不足,而内存页是与磁盘上的交换区 进行交互的。补救的方法是增加更多的内存,减少 Oracle SGA 的大小,或者关闭 Oracle 的多线程服务器。
就象磁盘的负载平衡一样,行的重新排序也是很简单的,而且也很快。通过与其 它的 DBA 管理技巧一起使用,就可以在高 I/O 的系统中大大地减少响应的时间。
在高容量的在线事务处理环境中( online transaction processing , OLTP ), 数据是由一个 primary 索引得到的, 重新排序表格的行就可以令连续块的顺序和它 们的 primary 索引一样,这样就可以在索引驱动的表格查询中,减少物理 I/O 并 且改善响应时间。这个技巧仅在应用选择多行的时候有用,或者在使用索引范围搜 索和应用发出多个查询来得到连续的 key 时有效。对于随机的唯一 primary-key (主键)的访问将不会由行重新排序中得到好处。
不过,如果表中的行已经重新排序为和 last_name_index 的一样,同样的查询
又会怎样处理呢?我们可以看到这个查询只需要三次的磁盘 I/O 就读完全部 100 个员工的资料(一次用作索引的读取,两次用作数据块的读取),减少了 97 次的 块读取。
重新排序带来的性能改善的程度在于在你开始的时候行的乱序性如何, 以及你需 要由序列中访问多少行。至于一个表中的行与索引的排序键的匹配程度,可以查看 数据字典中的 dba_indexes 和 dba_tables 视图得到。
Row-resequencing (行的重新排序)
就象我们上面提到的,有经验的 Oracle DBA 都知道 I/O 是响应时间的最大组 成部分。其中磁盘 I/O 特别厉害,因为当 Oracle 由磁盘上的一个数据文件得到一 个数据块时,读的进程就必须等待物理 I/O 操作完成。磁盘操作要比数据缓冲慢 10,000 倍。因此,如果可以令 I/O 最小化,或者减少由于磁盘上的文件竞争而带 来的瓶颈,就可以大大地改善 Oracle 数据库的性能。
接着,让我们看一下 Oracle 的竞争,并且看一下表的存储参数的设置是如何影 响 SQL UPDATE 和 INSERT 语句的性能的。

调整 Oracle 的竞争
Oracle 的其中一个优点时它可以管理每个表空间中的自由空间。 Oracle 负责 处理表和索引的空间管理,这样就可以让我们无需懂得 Oracle 的表和索引的内部 运作。不过,对于有经验的 Oracle 调优专家来说,他需要懂得 Oracle 是如何管 理表的 extent 和空闲的数据块。对于调整拥有高的 insert 或者 update 的系统来 说,这是非常重要的。
可以使用各种标准的服务器工具来得到服务器的统计数据,例如 vmstat,glance,top 和 sar 。 DBA 的目标是确保数据库服务器拥有足够的 CPU 和内存资源来处理 Oracle 的请求。
以下让我们来看一下 Oracle 的 row-resequencing 是如何能够极大地减少磁 盘 I/O 的。
要精通对象的调整,你需要懂得 freelists 和 freelist 组的行为,它们和 pctfree 及 pctused 参数的值有关。这些知识对于企业资源计划( ERP )的应用是特别重 要的,因为在这些应用中,不正确的表设置通常是 DML 语句执行慢的原因。
数据库将会自动执行排序的操作。通常,在以下的情况下 Oracle 会进行排序的操 作:
使用 Order by / Group by 的 SQL 语句
在创建索引的时候:
进行 table join 时,由于现有索引的不足而导致 SQL 优化器调用 MERGE SORT 。
当与 Oracle 建立起一个 session 时,在内存中就会为该 session 分配一个私 有的排序区域。如果该连接是一个专用的连接 (dedicated connection) ,那么就会 根据 init.ora 中 sort_area_size 参数的大小在内存中分配一个 Program Global Area (PGA) 。如果连接是通过多线程服务器建立的,那么排序的空间就在 large_pool 中分配。不幸的是,对于所有的 session ,用做排序的内存量都必须是 一样的,我们不能为需要更大排序的操作分配额外的排序区域。因此,设计者必须 作出一个平衡,在分配足够的排序区域以避免发生大的排序任务时出现磁盘排序 ( disk sorts )的同时,对于那些并不需要进行很大排序的任务,就会出现一些浪 费。 当然, 当排序的空间需求超出了 sort_area_size 的大小时, 这时将会在 TEMP 表空间中分页进行磁盘排序。磁盘排序要比内存排序大概慢 14,000 倍。 小虫网络

让我们看一下它是如何工作的。考虑以下的一个 SQL 的查询,它使用一个索引来 得到 100 行:
selectsalaryfromemployeewherelast_name like 'B%';
这个查询将会使用 last_name_index ,搜索其中的每一行来得到目标行。这个 查询将会至少使用 100 次物理磁盘的读取,因为 employee 的行存放在不同的数 据块中。
--Row re-sequencing 以减少磁盘 I/O :我们应该懂得 Oracle 调优最重要的目标 是减少 I/O 。
只要 --Oracle SQL 调整。 Oracle SQL 调整是 Oracle 调整中最重要的领域之一, 通过一些简单的 SQL 调优规则就可以大幅度地提升 SQL 语句的性能,这是一点 都不奇怪的。
SQL 调优
甚至是需要整本书来介绍 Oracle SQL Oracle 的 SQL 调优是一个复杂的主题, 调优的细微差别。不过有一些基本的规则是每个 Oracle DBA 都需要跟从的,这些 规则可以改善他们系统的性能。 SQL 调优的目标是简单的:
. 消除不必要的大表全表搜索:不必要的全表搜索导致大量不必要的 I/O ,从而拖
. 确保最优的 JOIN 操作:有些查询使用 NESTED LOOP join 快一些,有些则是 HASH join 快一些,另外一些则是 sort-merge join 更快。 这些规则看来简单,不过它们占 SQL 调优任务的 90% ,并且它们也无需完全 懂得 Oracle SQL 的内部运作。以下我们来简单概览以下 Oracle SQL 的优化。
磁盘排序的开销是很大的,有几个方面的原因。首先,和内存排序相比较,它们 特别慢;而且磁盘排序会消耗临时表空间中的资源。 Oracle 还必须分配缓冲池块 来保持临时表空间中的块。无论什么时候,内存排序都比磁盘排序好,磁盘排序将 会令任务变慢,并且会影响 Oracle 实例的当前任务的执行。还有,过多的磁盘排 序将会令 free buffer waits 的值变高,从而令其它任务的数据块由缓冲中移走。
技术
上面我们已经提到,私有排序区域的大小是有 init.ora 中的 sort_area_size 参 数决定的。每个排序所占用的大小由 init.ora 中的 sort_area_retained_size 参数 决定。当排序不能在分配的空间中完成时,就会使用磁盘排序的方式,即在 Oracle 实例中的临时表空间中进行。
行重新排序的作用是不可以小看的。在需要进行大范围的索引搜索的大表中,行 重新排序可以令查询的性能提高三倍。
一旦你已经决定重新排序表中的行,你可以使用以下的工具之一来重新组织表 格。
. 使用 Oracle 的 Create Table As Select (CTAS) 语法来拷贝表格
. Oracle9i 自带的表格重新组织工具
. 内存 -- 可用于 Oralce 的内存数量也会影响 SQL 的性能, 特别是在数据缓冲和 内存排序方面。
.网络 -- 大量的 Net8 通信令 SQL 的性能变慢。
许多新手都错误的认为应该首先调整 Oracle 数据库,而不是先确认外部资源是 否足够。实际上,如果外部环境出现瓶颈,再多的 Oracle 调整都是没有帮助的。
慢整个数据库的性能。调优专家首先会根据查询返回的行数目来评价 SQL 。在一 个有序的表中,如果查询返回少于 40% 的行,或者在一个无序的表中,返回少于 7% 的行,那么这个查询都可以调整为使用一个索引来代替全表搜索。对于不必要 的全表搜索来说,最常见的调优方法是增加索引。可以在表中加入标准的 B 树索 引,也可以加入 bitmap 和基于函数的索引。要决定是否消除一个全表搜索,你可 以仔细检查索引搜索的 I/O 开销和全表搜索的开销, 它们的开销和数据块的读取和 可能的并行执行有关,并将两者作对比。在一些情况下,一些不必要的全表搜索的 消除可以通过强制使用一个 index 来达到, 只需要在 SQL 语句中加入一个索引的 提示就可以了。
-- 调整 Oracle 排序:排序对于 Oracle 性能也是有很大影响的。
-- 调整 Oracle 的竞争:表和索引的参数设置对于 UPDATE 和 INSERT 的性能 有很大的影响。
我们首先从调整 Oracle 外部的环境开始。如果内存和 CPU 的资源不足的话, 任何的 Oracle 调整都是没有帮助的。
ቤተ መጻሕፍቲ ባይዱ外部的性能问题 小虫网络技术
Oracle 并不是单独运行的。 Oracle 数据库的性能和外部的环境有很大的关系。 这些外部的条件包括有:
. CPU--CPU 资源的不足令查询变慢。当查询超过了 Oracle 服务器的 CPU 性 能时,你的数据库性能就受到 CPU 的限制。
相关文档
最新文档