您的位置:首页 > 数据库 > Oracle

ORCLE 性能调优概述

2015-06-11 17:45 597 查看
原地址: http://docs.oracle.com/cd/E11882_01/server.112/e41573/perf_overview.htm#g1009625 

 

本章介绍性能调优简介包含以下部分:

性能调优简介

性能调优特征和工具简介

 

1.1性能调优简介

本指南提供调整oracle数据库性能的信息。本指南讨论的重点包含:

* 执行计划

* Instance调优

* SQL 调优

1.1.1   执行计划

   在进行本章其他章节前,需要完成Part2“执行计划”。根据几十年的设计和性能经验,Oracle已经设计了一套性能的方法。这部分的描述可以极大地改善系统性能,包含以下主题:

*  理解投入选择

* 理解可扩展性

* 系统架构

* 应用设计准则

* 负载测试,建模,实现

* 部署新的应用

 

1.1.2   Instance 调试

   第三章“优化实例性能”讨论的主要因素包括,调试和优化数据库实例。

当考虑实例调试,仔细考虑数据库的最初设计,避免瓶颈可能导致性能问题。

另外,你必须考虑:

l  给数据库结构分配内存

l  决定数据库不同路径的I/O需求

l  调试操作系统为了数据库的最佳性能

在数据库实例被安装和配置后,当它运行时,你必须监控数据库,检查性能相关的问题。

1.1.2.1  性能原则

   尽管相关联,性能调试需要不同的方法去初始化配置系统。配置系统包含以有序的方式分配资源,这样初始的系统配置有功能的。

   调试是由最重要的瓶颈驱动的,用最合适的更改减少或者消除瓶颈的影响。通常,无论系统上线前或上线后,都是被动的调优。

1.1.2.2  基线

最有效的方法是建立性能基线,如果有性能问题出现,可以进行对比。大多数DBA可以知道他们系统很好,并且轻易识别使用的高峰时期。例如,高峰时期可以在早10点到12点,也可以在1:30到3:00.这可能包括一个12:00到18:00的批处理窗口。

重要的是在现场识别这些高峰时期,并安装监控工具,收集这些高负载的性能数据。最优情况是,应用程序在QA周期的最初测试阶段配置数据收集,否则,应当在系统上线时配置数据收集。

理想情况下,基线数据收集应该包括以下:

*  应用统计信息(事物量,响应时间)

* 数据库统计信息

* 操作系统统计信息

* 磁盘I/O统计信息

* 网络统计信息

在AWR中,基线被一系列的快照识别,以提供未来的比较。

1.1.2.3  症状和问题

性能调优常见的陷阱是真正的问题展现出错误的症状。非常重要,认识到许多性能统计信息暗示症状,没有足够的数据识别症状,实施补救措施。例如:

* 物理I/O 变慢

通常,这是由于不好的磁盘配置,但是,也肯能是因为差的SQL调用,导致大量的磁盘物理I/O

* 锁争用

锁争用很少调试实例配置,而是通过应用的更改来解决问题。

* 过度CPU使用

过度的CPU使用意味着系统上只有很少的空闲CPU。这可能是由于系统的不足,未调试的SQL语句,或者效率低的应用程序导致。

1.1.2.4  何时去调试

两种不同类型的调优:

* 主动的监控

* 消除瓶颈

1.1.2.4.1 主动的监控
主动监控常常发生在定期的间隔内,一些性能统计数据分析后,标识系统行为和资源使用是否发生改变。主动的监控也可以视为积极的调优。

通常,监控不会导致系统配置的改变,除非,监控过程中发现了一个严重的问题。在一些情况下,经验丰富的工程师可以只通过统计信息发现潜在的问题,尽管伴随性能下降。

当监控性能没有明显的下降时,试验或调整系统是一个危险的动作,导致不必要的性能下降。调试一个系统应该考虑被动调试,而且要遵循被动调试的步骤。监控通常是大量计划测试的一部分,当应用使用这种方式时,观察资源消耗的改变,和应用使用数据库和主机资源的变换。

1.1.2.4.2 消除瓶颈
调试通常意味着修复性能问题。但是,调试应当是应用生命周期的一部分,贯穿分析,设计,编码,生产,维护阶段。通常,调试阶段持续到数据库上了生产之后。在这个阶段,调试变为被动过程,哪里出现最严重的性能问题,哪里去修复。

通常,调试的目标是降低资源消耗或者减少完成一个操作的解析时间。无论哪种方式,目的都是提升使用特定资源的效率。一般来说,性能问题都是因为对特定资源的过度使用。在系统中过度使用资源是一种瓶颈。有几个不同的阶段识别瓶颈和潜在修复。这在以后章节讨论。

记住不同形式的争用产生的症状,可以使用以下不同的更改来修复:

* 改变应用,或者应用使用的方式

* 改变Oracle

* 改变主机的配置

通常,最有效的解决瓶颈的方式时改变应用。

1.1.3 SQL调试

Part IV, "Optimizing SQL Statements"本章讨论调试和优化SQL语句

许多应用程序员认为SQL是一种传递语音,因为发出查询返回数据,但是,客户端工具常常产生低效率的SQL语句。因此,了解SQL产生过程有利于写出高效的SQL语句。这点在高事物系统中尤其明显。

通常,通过OLTP应用发出的SQL语句操作相对较少的行。如果索引可以指向确切的行,那么Oracle数据库可以构建一个精确的计划,通过最短的路径高效的访问那些行。在决策支持系统环境中,查询并不那么重要,因为他们常常访问表中的许多行。在这种情形下,全表扫描更常见,索引几乎不用。这本书主要关注OLTP应用。想获取更多决策支持系统的信息,查询Oracle Database Data Warehousing Guide

1.1.3.1  查询优化和执行计划

当一个SQL语句在Oracle数据库执行,查询优化器在考虑许多相关对象的因素,和查询的特定条件后,决定最优执行计划。这个决定对任何SQL语句都是重要的一步,很大程度上影响执行时间。

在评估过程中,查询优化器评估系统采集的统计信息,决定最佳数据访问路径和其他注意事项。你可以通过在SQL语句中增加hints来覆盖查询优化器的执行计划。

1.2   性能调试特征和工具简介

高效的数据收集和分析是识别和改正性能问题的基本要素。Oracle数据库提供了一些工具,使性能工程师可以收集数据库性能信息。为了收集数据,Oracle数据库提供工具监控性能,诊断问题,调试应用。
Oracle数据库监控和收集特性大部分都是自动地,由Oracle后台程序管理。为了启用自动统计信息收集和自动系能特征,
STATISTICS_LEVEL
初始化参数必须设置为
TYPICAL
或者
ALL
。你可以通过使用调试工具
OEM
API
4000
s
和视图来管理和展示收集的信息。为了方便使用和利用自动监控和诊断工具,建议使用
OEM


1.2.1自动性能调优特征

Oracle
自动性能调优特征包括:


*  AWR为了问题诊断和自我调试目的,收集,处理,维护性能统计信息。

* ADDM通过AWR收集的信息,分析Oracle数据库可能出现的性能问题。

* SQL Tuning Advisor使用快速和高效的技术优化SQL语句,无需修改任何语句。

* SQL Access Advisor提供物化视图,索引,物化视图日志的建议。

* 端到端应用跟踪识别系统上,用户,服务器,或者应用组件产生的过高负载。

* 服务生成日志,当探测到即将发生的问题时,自动提供通知。

* 可以从OEM获得额外的建议,例如对一个实例进行内存优化建议。当数据库不使用自动内存管理时会使用内存建议。其他建议用来优化MTTR,收缩段,设置undo空间。

* OEM中的数据库性能页展示主机,实例服务时间,监控和诊断的时间的全部信息。本页可以设置为自动刷新或者手动刷新。

1.2.2 附加的Oracle数据库工具

V$视图是所有Oracle数据库性能调试工具的信息来源。V$视图根据内存在实例中的初始化设置建立。内存结构和视图代表自动由Oracle数据库维护的实例的生命周期。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle 数据库