Oracle的性能优化-文档资料
- 格式:ppt
- 大小:294.50 KB
- 文档页数:71
Oracle自带性能分析工具-AWR介绍和分析华三通信技术1 Oracle 10g的AWR性能优化工具简介AWR (Automatic Workload Repository)既自动工作负载信息库是Oracle10g新提供的收集数据库统计信息的置工具。
它比之前的statspack有显著的改进,收集的信息也更多、更全面,使用方法也更简单。
它主要采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题,如包括AWR存区,历史数据存储文件和ASH等部件。
AWR报告的容繁多,官方文档也没有对所有参数给出说明。
AWR产生的报表包括以下几部分。
报表具体容参见如下插入的对象。
1、Report SummeryCache sizesLoad profileInstance Efficiency Percentages (Target 100%)Shared Pool StatisticsTop 5 Timed Events2、RAC StatisticsGlobal Cache Load ProfileGlobal Cache Efficiency Percentages (Target local+remote 100%)Global Cache and Enqueue Services - Workload CharacteristicsGlobal Cache and Enqueue Services - Messaging Statistics3、Wait Events StatisticsTime Model StatisticsWait ClassWait EventsBackground Wait EventsOperating System StatisticsService StatisticsService Wait Class Stats4、SQL StatisticsSQL ordered by Elapsed TimeSQL ordered by CPU TimeSQL ordered by GetsSQL ordered by ReadsSQL ordered by ExecutionsSQL ordered by Parse CallsSQL ordered by Sharable Memory SQL ordered by Version CountSQL ordered by Cluster Wait Time Complete List of SQL Text5、Instance Activity StatisticsInstance Activity StatsInstance Activity Stats - Absolute Values Instance Activity Stats - Thread Activity 6、IO StatsTablespace IO StatsFile IO Stats7、Buffer Pool Statistics8、Advisory StatisticsInstance Recovery StatsBuffer Pool AdvisoryPGA Aggr SummaryPGA Aggr Target StatsPGA Aggr Target HistogramPGA Memory AdvisoryShared Pool AdvisorySGA Target AdvisoryStreams Pool AdvisoryJava Pool Advisory9、Wait StatisticsBuffer Wait StatisticsEnqueue Activity10、Undo StatisticsUndo Segment SummaryUndo Segment Stats11、Latch StatisticsLatch ActivityLatch Sleep BreakdownLatch Miss SourcesParent Latch StatisticsChild Latch Statistics12、Segment StatisticsSegments by Logical ReadsSegments by Physical ReadsSegments by Row Lock WaitsSegments by ITL WaitsSegments by Buffer Busy WaitsSegments by Global Cache Buffer Busy Segments by CR Blocks ReceivedSegments by Current Blocks Received 13、Dictionary Cache StatisticsDictionary Cache StatsDictionary Cache Stats (RAC)14、Library Cache StatisticsLibrary Cache ActivityLibrary Cache Activity (RAC) 15、Memory StatisticsProcess Memory SummarySGA Memory SummarySGA breakdown difference 16、Streams StatisticsStreams CPU/IO UsageStreams CaptureStreams ApplyBuffered QueuesBuffered SubscribersRule Set17、Resource Limit Stats18、init.ora Parameters19、Global Enqueue Statistics20、Global CR Served Stats21、Global CURRENT Served Stats22、Global Cache Transfer Stats2 AWR配置2.1 AWR统计数据的缺省配置AWR 实质上是一个 Oracle 的置工具,它采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题。
Oracle12c 性能优化攻略:攻略1-1:创建具有最优性能的数据库⼀:章节前⾔本章着眼于影响表中数据存储性能的数据库特性本章着眼于影响表中数据存储性能的数据库特性。
表的性能部分取决于在创建之前所应⽤的数据库特性。
例如:在最初创建数据库时采⽤的物理存储特性以及相关的表空间都会在后来影响表的性能。
类似地,表性能还受到最开始选择的物理特性的影响。
例如:表类型和数据类型。
因此应⽤实践中使⽤的数据库、表空间、和表的创建标准(并将性能问题放在⼼上),就形成了优化数据可能性和可扩展性的基础。
组成Oacle 数据库的物理结构⽤来存储、管理、保护以及读取数据。
在创建数据库的时候,可以选择应⽤⼀些与性能相关的特性。
例如⽂件的初始布局以及表空间的管理类型,都是在创建数据库时制定。
这时所实现的架构上的决策,通常都会产⽣很长远的影响。
提⽰: oralce 实例的定义是其内存结构及其后台进程。
⽽Oracle 数据库则由物理⽂件(即:数据⽂件、控制⽂件、在线重做⽇志⽂件)组成。
如图1-1所描述的那样,表空间是⽀持管理⼀组数据⽂件的逻辑结构。
数据⽂件就是磁盘的物理⽂件。
配置表空间时,要注意⼀些对性能会产⽣深远影响的特性,也就是本地管理表空间以及⾃动段存储管理的表空间。
如果合理地设计这些特性,将来也就能最⼤限度得可接受到表性能 图1-1 逻辑存储于物理存储之间的关系图表是数据库中存储数据的对象。
数据库性能衡量的是应⽤能够以什么样的速度插⼊、更新、删除、和查询数据。
因此,此书就从优化表性能的攻略讲起。
本章⾸先介绍创建数据库和表空间时,可能会影响表性能的各⽅⾯因素,然后,讨论另外⼀些主题,⽐如根据于性能相关的业务需求,选择表类型和数据类型。
稍后介绍的主题包括管理表空间使⽤情况的物理实现⽅式。
本章还会详细介绍其他问题。
例如探测表碎⽚、处理位于⾼⽔位线下⽅的空闲空间、⾏链接以及数据压缩。
除此之外还会描述Oracle 段顾问(Oracle Segment Advisor ).这个⼯具很好⽤,能够帮助你⾃动探测并解决碎⽚和未使⽤的空间问题。
ORACLE 10G自动化特性在联通BSS系统性能优化工作中的应用摘要:在介绍Oracle 9i版本下性能优化的基本方法基础上,着重论述了Oracle 10g版本中的一些自动化特性,以及应用10g中的自动化特性进行数据库系统性能优化的方法和案例。
关键词:Oracle 自动化;10G 优化;ADDMOracle数据库是中国联通核心业务支撑系统中最主要的关系型数据库管理系统。
在联通BSS业务支撑系统的体系结构中,绝大多数的子系统都是典型的在线事务处理系统(OLTP系统),对业务处理的实时性和性能要求非常高。
基于以上情况,对Oralce数据库及BSS应用系统进行不断地性能调整和优化,就成为联通业务支撑工作中一个必不可少的关键性工作。
Oracle 10G中很多性能优化工作可以借助自动化的工具方便快捷地进行,使性能优化工作的效率和效果得以大幅提升。
1Oracle 9i环境下性能优化的典型方法和问题1.1Oracle 9i环境下典型的性能优化步骤通常情况下Oracle 9i环境下的性能优化工作的步骤如下:①用户或应用维护人员反馈:“某个应用场景下,系统反应很慢”;②数据库管理员(DBA)人工观测该应用是否确实比较慢,或者根据以往记录的性能测试数据来比较,确认该性能问题是否确实存在;③使用统计信息收集工具包-StatsPack包(以下简称SP 包),在可能会发生性能问题的时间段,进行性能统计信息搜集(即进行“snapshot快照”);④使用SP包,生成SP分析报告;⑤DBA阅读SP分析报告,结合自己的经验,手工在浩如烟海的信息中找到可能存在的性能瓶颈;⑥对于性能瓶颈,DBA结合自己的经验,手工设计优化方案;⑦DBA或应用系统开发人员,进行数据库配置、数据库对象或应用程序的调整;⑧调整完成后,再次进行性能表现的观测,如果问题没有得到解决,则再次从步骤三开始进行新一轮的过程,直至问题得以解决。
Oracle 9i时期典型的性能优化步骤的示意图如图1所示:图1Oracle9i时期典型的性能优化的步骤1.2Oracle 9i环境下性能优化方法存在的问题从上述步骤中可以明显看出,9i环境下的性能优化,均是DBA人工处理,所有的判断和决策都依靠人来开展,不仅非常耗时耗力,而且对进行优化工作的人员素质要求较高,对DBA 的“经验”要求极高,旺旺只有对业务较熟悉的DBA才能进行一些有效的优化工作。
3科技资讯科技资讯S I N &T NOLOGY I NFO RM TI ON 2008NO .28SC I EN CE &TECH NO LOG Y I N FOR M A TI O N 信息技术大多数情况下,系统运行缓慢不是由于所有部件都饱和引起的,而是由于系统中的某个部分限制了整体的性能,这部分称为瓶颈。
通常影响ORA CL E 数据库性能指标的三个瓶颈主要是:CP U 、内存、I /O 。
数据库性能的优化主要是or a c l e 数据库参数的调整、磁盘I /O 调整、应用程序S QL语句分析及设计、网络性能调整等。
本文主要通过优化S QL 语句来提高ORACL E 数据库的性能。
1SQ L 语句处理流程如图1所示。
1.1打开游标从上图可以看出处理S QL 语句的第一步就是要打开一个游标,事实上,一个完整的S QL 处理过程就是一个游标的生命周期。
1.2共享SQLOr a cl e 内存中有一个区叫SHA R ED _PO OL ,这个区的主要作用就是将S Q L 语句存放在这个区内,当客户发出一个新的S QL 语句,数据库引擎首先会到这个区查找是否有相同的S QL ,如果有,则避免了解析、分析索引、制定执行计划等一系列的动作。
如果没有则需要进行ha r d pa r s e 。
1.3绑定变量如果在S QL 中指定了绑定变量,需要在这个阶段给S QL 附上绑定变量的值。
1.4并行处理如果S Q L 需要进行并行处理,在这一阶段需要把整个S Q L 分割成多个并行的部分。
1.5执行查询Or a c l e 按照执行计划指定的方式执行SQL,执行UPDATE 和DE LE TE 语句时,必须将行锁定,以免其他用户修改。
Or a cl e 先从数据库缓冲区中寻找是否存在所要的数据块,如果存在,就直接读或修改,否则从物理文件中读到数据库缓冲区中。
1.6返回结果对S EL ECT 语句需要返回结果的语句,首先看是否需要排序,需要,则排序后返回给用户,然后根据内存的大小不同,可以一次取出一行数据,也可以一次取一组数据。
Oracle数据库性能优化考试(答案见尾页)一、选择题1. Oracle数据库性能优化中,哪种方法可以用来分析SQL语句的性能?A. 使用EXPLAIN计划B. 使用SQL Trace工具C. 使用Automatic Workload Repository (AWR)D. 使用Real-Time Monitor (RTM)2. 在Oracle数据库中,如何调整初始化参数以提高查询性能?A. 调整UNDO表空间的大小B. 调整Redo日志文件的大小C. 调整SGA的大小D. 调整PGA的大小3. 在Oracle数据库中,哪种分区策略可以用来提高查询性能?A. 分区索引B. 哈希分区C.范围分区D. 列表分区4. Oracle数据库中的序列是什么?它有什么作用?A. 序列是一组数字,用于生成唯一值B. 序列是Oracle数据库中的一种数据对象,用于生成唯一值C. 序列可以用于生成主键值D. 序列可以用于限制查询结果的数量5. 在Oracle数据库中,如何使用SQLLoader工具将外部文件中的数据导入数据库?A. 使用BULK COLLECT和FORALL语法B. 使用OPEN和FETCH语法C. 使用COPY和PUMP语法D. 使用GET和PUT语法6. 在Oracle数据库中,如何使用保留锁来保护数据一致性和完整性?A. 使用GRANT和REVOKE语句B. 使用ALTER TABLE语句C. 使用LOCK TABLES和UNLOCK TABLES语句D. 使用ROWID和DBMS_ROWID包7. 在Oracle数据库中,如何使用SQL Developer工具进行性能调试?A. 使用SQL*Plus工具B. 使用JDBC连接C. 使用SQL Developer的Performance ToolsD. 使用SQL Developer的调试器8. 在Oracle数据库中,如何优化分页查询的性能?A. 使用LIMIT子句B. 使用ROW_NUMBER()窗口函数C. 使用ORDER BY子句D. 使用GROUP BY子句9. 在Oracle数据库中,如何调整内存相关的参数以提高数据库性能?A. 调整SHARED_POOL_SIZE参数B. 调整SESSIONS_PER_USER参数C. 调整CPU_COUNT参数D. 调整NETWORKS配置10. 在Oracle数据库中,如何使用STATISTICS_LEVEL参数来控制统计信息的收集?A. 设置为ALLB. 设置为TYPICALC. 设置为BasicD. 不设置此参数11. 在Oracle数据库中,如何调整索引以提高查询性能?A. 创建复合索引B. 删除不必要的索引C. 禁用索引D. 使用Index Organized Tables (IOTs)12. Oracle数据库中的AWR报告提供了关于哪些组件的性能信息的?A. SQL语句B. 索引C. 表D. 磁盘I/O13. 在Oracle数据库中,如何使用SQL调优工具来分析SQL性能?A. 使用SQL TraceB. 使用Automatic Workload Repository (AWR)C. 使用SQL Performance AnalyzerD. 使用Explain Plan14. 在Oracle数据库中,如何调整内存参数以提高性能?A. 调整SGA大小B. 调整PGA大小C. 调整Redo日志文件大小D. 调整数据文件大小15. 在Oracle数据库中,如何使用DBMS_OUTPUT.PUT_LINE包来输出性能数据?A. 调用函数时直接使用DBMS_OUTPUT.PUT_LINEB. 创建一个PL/SQL过程来输出性能数据C. 使用SQL*Plus的PUT_LINE函数D. 使用Utl相传入输出16. 在Oracle数据库中,如何使用保留实例(Real Application Clusters, RAC)来提高性能?A. 配置共享服务器模式B. 配置专用服务器模式C. 配置锁内存参数D. 配置网络配置17. 在Oracle数据库中,如何使用外部脚本或程序来分析性能问题?A. 使用SQL*Loader工具B. 使用UTL_FILE包来读取外部文件C. 使用外部脚本或程序来执行性能分析D. 使用ORADEBUG命令行工具18. 在Oracle数据库中,如何调整备份和恢复策略以提高性能?A. 更改备份频率B. 减少备份的数据量C. 启用归档模式D. 优化恢复过程19. Oracle数据库性能优化中,哪项不是使用索引的目的?A. 加速查询速度B. 提高数据检索效率C. 减少I/O操作D. 增加数据库系统的复杂性20. 在Oracle数据库中,哪种类型的索引可以加速查询速度,并且减少I/O操作?A. 单索引B. 复合索引C. 局部索引D. 全局索引21. Oracle数据库中的分区策略可以用于处理哪种类型的数据?A. 大型数据集B. 小型数据集C. 高并发访问D. 数据库备份和恢复22. 在Oracle数据库中,哪项不是使用归档日志的目的?A. 提供备份和恢复功能B. 减少磁盘空间占用C. 支持读写分离架构D. 保证数据的一致性23. Oracle数据库中的表空间是用来存储哪种类型的对象?A. 索引B. 表C. 视图D. 序列24. 在Oracle数据库中,哪项不是使用联机重做日志的目的?A. 提高数据保护B. 支持故障恢复C. 记录数据更改D. 减轻数据库负载25. Oracle数据库中的锁定机制主要防止哪种类型的并发问题?A. 并发插入B. 并发更新C. 并发删除D. 并发读取26. 在Oracle数据库中,哪项不是使用分区表的优点?A. 提高查询性能B. 改善数据分布C. 增强数据管理灵活性D. 减少数据冗余27. Oracle数据库中的数据压缩技术可以用于减少哪种类型的存储成本?A. 空间B. 时间C. 资源D. 硬件28. 在Oracle数据库中,哪项不是使用数据库实例调整来提高性能的方法?A. 调整内存分配B. 调整CPU分配C. 调整网络配置D. 调整表空间大小29. Oracle数据库性能优化中,如何调整初始化参数以提高数据库性能?A. 调整UNDO表空间大小B. 调整Redo日志文件大小C. 调整数据文件的大小D. 调整表空间的读写比例30. 在Oracle数据库中,为了提高查询性能,应该:A. 创建索引B. 维护统计信息C. 优化SQL查询D. A和C31. Oracle数据库中的锁有几种类型?A. 1种B. 2种C. 3种D. 4种32. Oracle数据库中的归档模式对性能有何影响?A. 影响数据恢复B. 影响数据备份和恢复C. 影响数据库性能D. 没有任何影响33. 在Oracle数据库中,如何减少临时表的使用?A. 使用物化视图B. 使用临时表C. 优化SQL查询D. A和C34. 在Oracle数据库中,如何调整SQL执行计划?A. 使用 Explain PlanB. 使用SQL Trace工具C. 调整初始化参数D. A和B35. 在Oracle数据库中,如何优化大型查询的性能?A. 使用索引B. 分区C. 规范化数据D. A和B36. 在Oracle数据库中,如何处理慢查询?A. 定期检查慢查询日志B. 使用自动共享内存管理C. 优化SQL语句D. A和B和C37. 在Oracle数据库中,如何提高数据导入导出性能?A. 使用SQL*Loader工具B. 使用外部表C. 使用并行处理D. A和B38. Oracle数据库性能优化中,哪种方法可以用来收集和分析查询性能相关的信息?A. 使用TKPROF工具B. 执行SQL脚本C. 使用Automatic Workload Repository (AWR)D. 监控系统日志39. 在Oracle数据库中,为了提高查询性能,以下哪个策略不是常用的方法?A. 为经常访问的列创建索引B. 使用物化视图C. 优化SQL查询语句D. 增加数据库缓冲区大小40. Oracle数据库中的SGA(System Global Area)主要包括哪些组成部分?A. 数据库缓冲区(Database Buffer Cache)B. 重做日志缓冲区(Redo Log Buffer)C. 共享池(Shared Pool)D. 大小沟槽(Large Objects)41. 在Oracle数据库中,如何调整初始化参数以提高数据库性能?A. 使用ALTER SYSTEM命令B. 使用ALTER SESSION命令C. 使用TXN_TIMEOUT初始化参数D. 使用SESSIONS_PER_USER初始化参数42. 在Oracle数据库中,哪种分区策略通常用于大型数据仓库?A. 范围分区B. 列表分区C. 组合分区D. 复杂分区43. Oracle数据库中的锁有两种类型,分别是锁定和锁定。
论Oracle数据库的性能优化问题Oracle数据库是一款流行的企业级数据库软件,但其性能优化问题也是不可避免的。
在实际应用中,如果Oracle数据库出现性能问题,将有严重的影响和损失。
因此,本文将讨论如何优化Oracle数据库的性能问题。
首先,针对Oracle数据库的性能瓶颈,可以通过调整数据库参数来提高性能。
Oracle数据库有很多参数可以配置,例如,缓存区大小、连接数、内存分配等。
通过针对不同的应用场景调整不同的参数配置,可以最大化地利用数据库的性能。
其次,针对SQL的性能问题,可以通过改进SQL语句来提高性能。
SQL优化是一项复杂的工作,但可以通过分析SQL执行计划来发现性能瓶颈,例如,缺乏索引、大表连接、高开销的子查询等。
并可以通过添加索引、优化查询语句等方式来提高数据库的性能。
除此之外,还可以通过加强硬件设备等方面来提升数据库性能。
例如,扩展数据库服务器的内存和硬盘容量,可以提高数据库的读写速度。
而使用高速网络设备如IB网络和10/100G以太网设备等,也可提高数据库的数据传输速度。
此外,Oracle数据库的性能优化也需要管理进程的支持与配合。
例如,数据库管理员需要监控数据库服务器硬件和软件性能,例如Oracle数据库的内部锁、等待事件、I/O活动等等。
在监控到性能问题后,需要在业务空档期进行优化,如调整SQL语句、更改数据库参数等。
总之,提高Oracle数据库的性能需要全面考虑软硬件配置、SQL语句等多个方面的因素。
通过合理的参数配置、SQL优化和硬件支持等方式,可以优化数据库的性能,提高应用的稳定性和响应速度。
千里之行,始于足下。
Oracle的性能优化
Oracle的性能优化是提高数据库系统性能和响应速度的关键步骤,可以通
过如下几个方面进行优化:
1. 数据库设计和规范化:合理的数据库设计和良好的规范化可以减少数据冗余,提高查询效率,避免数据冲突和不一致。
2. 索引优化:在频繁查询的字段上创建适当的索引,可以加快查询速度。
但是,索引不宜过多,因为它们会增加数据修改和插入的时间。
3. 查询优化:优化查询语句的执行计划,使用正确的连接方法(如内连接、外连接),避免全表扫描。
4. 硬件升级:增加内存、硬盘和处理器等硬件资源,可以显著提高
Oracle数据库的性能。
5. 优化配置参数:根据数据库的特点和应用的需求,调整数据库的配置参数,例如SGA大小、PGA大小、日志文件大小等,以提高性能。
6. 数据库优化:使用合适的数据库特性,如分区表、分区索引、物化视图等,优化数据库的存储和查询效率。
7. 监控和调优:持续监控数据库的性能指标,如CPU利用率、内存使用率、磁盘IO等,并及时进行适当的调优操作。
第1页/共2页
锲而不舍,金石可镂。
总体来说,Oracle的性能优化需要综合考虑数据库设计、硬件配置、查询优化和系统监控等多个方面,通过不断的调整和优化,提高数据库的性能和响应速度。