Oracle的性能优化-文档资料

合集下载

Oracle自带性能分析报告工具-awr介绍和分析报告

Oracle自带性能分析报告工具-awr介绍和分析报告

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 的置工具,它采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题。

Oracle优化常用概念

Oracle优化常用概念
方式
日期
动态性能视图和数据字典视图
• 动态性能视图:v$开头 • 数据字典视图:dba_*、all_*、user_*
日期
动态性能视图
• v$session,v$session_wait,v$session_event, • v$sql • v$parameter
日期
数据字典视图
• dba_data_files • user_tables • user_indexes • user_objects • user_source • user_segments:对象实际占用空间,非实际使用空间 • user_users,user_errors,user_constraints,user_tablespac
日期
为什么要做柱状图
• Oracle在选择索引时会检查索引的效率从而确定是否使用 索引,而柱状图正是提供了这种信息。如果不做柱状图, oracle就确定不了索引的效率,会倾向于使用索引,可能 反而不如做全表扫描来得快
日期
如何生成柱状图
• analyze table tb_name compute|estimate statistics for all indexed columns; 针对索引列
找到前不返回数据。 • hash join:使用条件:仅用于等价连接;相关资源:内存、临时空间 优点:当缺乏索引或者索引条件模糊时,哈希连接连接比嵌套循环有效。通常比
排序合并连接快。在数据仓库环境下,如果表的纪录数多,效率高。 缺点:为建立哈希表,需要大量内存。第一次的结果返回较慢。
日期
执行计划
• 什么是执行计划 • 如何生成执行计划 • 如何看懂执行计划
日期
创建索引的目的
• 从根本来讲就是为了加快查询速度 • Oracle出于对效率的考虑,某些约束会关联到索引,从而

Oracle12c性能优化攻略:攻略1-1:创建具有最优性能的数据库

Oracle12c性能优化攻略:攻略1-1:创建具有最优性能的数据库

Oracle12c 性能优化攻略:攻略1-1:创建具有最优性能的数据库⼀:章节前⾔本章着眼于影响表中数据存储性能的数据库特性本章着眼于影响表中数据存储性能的数据库特性。

表的性能部分取决于在创建之前所应⽤的数据库特性。

例如:在最初创建数据库时采⽤的物理存储特性以及相关的表空间都会在后来影响表的性能。

类似地,表性能还受到最开始选择的物理特性的影响。

例如:表类型和数据类型。

因此应⽤实践中使⽤的数据库、表空间、和表的创建标准(并将性能问题放在⼼上),就形成了优化数据可能性和可扩展性的基础。

组成Oacle 数据库的物理结构⽤来存储、管理、保护以及读取数据。

在创建数据库的时候,可以选择应⽤⼀些与性能相关的特性。

例如⽂件的初始布局以及表空间的管理类型,都是在创建数据库时制定。

这时所实现的架构上的决策,通常都会产⽣很长远的影响。

提⽰: oralce 实例的定义是其内存结构及其后台进程。

⽽Oracle 数据库则由物理⽂件(即:数据⽂件、控制⽂件、在线重做⽇志⽂件)组成。

如图1-1所描述的那样,表空间是⽀持管理⼀组数据⽂件的逻辑结构。

数据⽂件就是磁盘的物理⽂件。

配置表空间时,要注意⼀些对性能会产⽣深远影响的特性,也就是本地管理表空间以及⾃动段存储管理的表空间。

如果合理地设计这些特性,将来也就能最⼤限度得可接受到表性能 图1-1 逻辑存储于物理存储之间的关系图表是数据库中存储数据的对象。

数据库性能衡量的是应⽤能够以什么样的速度插⼊、更新、删除、和查询数据。

因此,此书就从优化表性能的攻略讲起。

本章⾸先介绍创建数据库和表空间时,可能会影响表性能的各⽅⾯因素,然后,讨论另外⼀些主题,⽐如根据于性能相关的业务需求,选择表类型和数据类型。

稍后介绍的主题包括管理表空间使⽤情况的物理实现⽅式。

本章还会详细介绍其他问题。

例如探测表碎⽚、处理位于⾼⽔位线下⽅的空闲空间、⾏链接以及数据压缩。

除此之外还会描述Oracle 段顾问(Oracle Segment Advisor ).这个⼯具很好⽤,能够帮助你⾃动探测并解决碎⽚和未使⽤的空间问题。

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

论Oracle数据库的性能优化问题
的性能优化问题
马 红 云
( 中国民用航 空大连 空中交通管理站 辽宁大连 1 1 6 0 3 3 )
摘要 : Or a c l e 数 据库作 为 目前适 用性 最好 的关 系数据库 引擎之 一, 能够 支持 各种业 务形式 、 处理各 种复 杂事务 , 得 到极 为广泛 的应 用。
1对数据库服务器 内存分配的调整
由于对服务器 内存参数 的调整对o r a c l e 的性能影响显著 , 它成 为O r a c l e  ̄据库性能调 优的首选对象。 服务器 内存参数 的调整主要 是对数据库系统全局 区的调整 , 系统全局 区包括共享池、 数据缓冲 区、 日志缓冲区 。 其 中最主要的是对数据缓冲区和共享池 的参数调
3 . 2表 的分 区和 并行 技 术
如果必须要在数据库运行特别耗时的操作。 应尽量地把这样的 操作分解 , 严格 限制操作所涉及的记录数 , 并设法使操作并行 , 充分 地提高 执行效率 。 ( 1 ) 使用分区 分区技术有两个潜在的好处: 提高查询性能和提 高数据 库可用性 。 数据库查询 时, 优化器知道那些分区包含查询所 要的数据 。 而其它分 区数据将不会被读取 , 从而查询 任务将更快完 成。 许 多 管 理 工 作 可 在 只 一个 分 区上 进 行 , 而 不 影 响 其它 分 区 的数 据。 例 如 可 以选 择 只 删 除一 个 表 分 区 中 的数 据 。 可对 表 分 区进 行 再 分割 , 把一个表分区迁移到不同的表 空间上 。 可只对 一个表分 区进 行分析 统计 。 表分区的这 些特性 。 ( 2 ) 使用并行 。 Or a c l e 数据库 中几乎 所有的操作都 支持 并行 特 性, 包括查询、 插入 、 和数据加载。 并行选项可 以使多个处理器 同时 处理一条命令 , 在创建库数据库对象 时可以设定 并行参数 , 也可在 查询语句 中重新设 。

Maclean Liu的Oracle性能优化讲座 第一回-真正读懂Oracle SQL执行计划Execution Plan

Maclean Liu的Oracle性能优化讲座 第一回-真正读懂Oracle SQL执行计划Execution Plan

E-Rows 是优化器评估返回的行数 A-Rows 是实际执行时返回的行数
alter session set STATISTICS_LEVEL = TYPICAL;


使用DBMS_XPLAN包

Access Path访问路径分析:访问数据是用TableScan还是index (FFS) 对返回的行结果集做例如Join的进一步处理,以便返回行给客户端

SQL语句的执行最终会落实为Oracle执行步骤的组合 =》【SQL执行计划】
Oracle Database
内存
磁盘存 储
取出 加工結果

2. SQLPLUS AUTOTRACE • 除set autotrace traceonly explain外均实际执行SQL,但仍未必 是真实计划 • 必须要有plan_table 3. SQL TRACE • 需要启用10046或者SQL_TRACE • 一般用tkprof看的更清楚些,当然10046里本身也有执行计划信息

Email:liu.maclean@ Blog: Founder of Shanghai Oracle Users Group - SHOUG Over 7 years experience with Oracle RDBMS technology Over 8 years experience with Linux technology

How to Find Maclean Liu?


读懂执行计划有什么用呢?

执行计划贯穿Oracle调优始终 了解执行计划的真实执行过程,将有助 于优化 对于Oracle的原理理解有一定帮助 解决部分同学心中多年的疑惑 读懂执行计划,SQL调优的第一步

ORACLE 10G自动化特性在联通BSS系统性能优化工作中的应用

ORACLE 10G自动化特性在联通BSS系统性能优化工作中的应用

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才能进行一些有效的优化工作。

优化SQL对ORACLE数据库性能的提高

优化SQL对ORACLE数据库性能的提高

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大型数据库的性能优化

浅析Oracle大型数据库的性能优化
科 学 论 坛


浅析 O r a c l e大 型数据 库的性 能优化
刘 雅 琴
( 大庆 府 民物业 管理 有 限公司 ) [ 摘 要] 性 能优化 是 数据 库系统 维护 的重要 组成 部分 。 根 据对 O r a c l e  ̄ 据库 长期 的髓 测 与维 护经验 , 认真 分析 了O r a c l e  ̄ 运 行过 程 当中 出现 的各种 问题 , 提 出数据 库优 化 的若干 方 面的建 议 。 并 运用相 应 的处理 措施 , 保证 了O r a c l e  ̄ 据库 高 效地运 行 , 收 到 了非常 满意 的效果 。 [ 关键 词] Or a c l e 数 据 库 性 能优 化 系 统 输 出 中 图分 类号 : T P 文献 标识码 : A 文 章编号 : 1 0 0 9 —9 1 4 X( 2 0 1 3 ) 0 2 — 0 3 0 7 —0 1
经验 , 建 议不妨 针 对 以下几 个方 面加 以考虑 。 调 整数 据结 构 的设 计 对于 熟悉 软件工 程 的人来说 , 在 一个 系统 的生命周 期 内 , 对 数据结 构进 行 调整, 最 好在信 息 系统 开发之 前完 成 。 尽量 避 免在 系统 成型之 后再 进行 优化 。 这一 部分 , 需要 考虑使 用O r a c l e 数据 库 的分 区功能 , 将 动态 表 中的记 录分 离 到若 干不 同的表 空 间上 , 使数 据在物 理上被 分割 开来 , 便 于维 护 、 备份、 恢 复 及 进行 查询 。 当使 用 的时候 可建立 一个 连接所 有分 区的视 图, 使其 在逻辑 上仍 以一 个整体 出现 。 对于 经常访 问的数据 库表建 立索 引。 可 以提高查询 的性 能 , 减 少 了磁 盘 I / O, 优 化对 数据 表 的查询 , 加速s QL 语句 的 执行 。 二、 调整 数据 库服 务器 性 能 o r a c l e  ̄据 库服务器 是 整个系统 的核 心 。 它 的性 能高低 直接 影响了整 个系 统 的运 行 。 可 以使 用un i x 操 作系 统 的V ms t a t 、 I o s t a t 、 S a r 、 T o p  ̄命 令查 看 到系 - 统级 C P U、 内存 和硬 盘I / 0 等 的使 用情 况 , 这 些 工具能 够帮 助D B A弄清楚 系 统 瓶 颈 出现在什 么地方 。 为了调 整服务 器 的性能 , 我们主要 可 以从 以下几方 面考

浅谈ORACLE数据库性能的优化

浅谈ORACLE数据库性能的优化
最终 决定了 O AC E 数据库 的性能。递返回时间和数据传输速度 判断系绕 } 生能。对一个效率很低 的系统 ,用户可能会感 觉到它是一个很好的传递返回时间的系统,反之,一组 用户也可 能对一个效率很高的信息系统不满意 。如何对 系统的性 能进行分析,使 O A L 数据库运行在最佳 R CE
线字典能够反映出 O C E 动态运行 睛况 。可 以得知 A R L O C E 数据库使用的 C U 时 间, A R L P 操作系统用户状态
( 下转第 5页 )
④调整数据库参数。 应用程序的执行最终将归结为
数据库 中 S QL 语 句执 行 。数据 库操作 的重要部分 由
维普资讯
系统服务时间 + 用户等 待时间。因此 ,获得满意 的
用户响应 时间有两条途径 :一是减少系统服务时间,即
提高数据库吞吐量:二是减少用户等待 时间,即减少访 问同一数据库 资源 的冲突 。
@S L语句跟踪工具。S L语言跟踪工具可以记 Q Q
录 S QL 语句的执行情况 。在 O C E 会话开始时 。 A R L
字典缓冲区组成。 共享 S QL 区是存放用户 S QL命令的 区域 。数据字 典缓冲 区是存放数据库运行动态信息的。
③E L I P A s L语句优化命令。 Ⅺ AN L N- O 作为一 个程序开发者 。需要决定一个查询执行计划的效率 ,使
用 E P A L N 语句就可 得到一条 查询 的执 行计 X L NPA
行过程 中优化配置的。根据数据库的运行状况 。不仅可 调整数据库系统的全局 区 (GA)的大小。还可以调整 S 程序全局区的大小。其 中 S A 主要 由数据缓冲区、 日 G
S L语句跟踪文件调整应用程序的性能。 Q

Oracle数据库性能优化与案例分析

Oracle数据库性能优化与案例分析
技术创新,变革未来
Oracle数据库性能优化与案例分析
性能优化探讨
• 原因:为什么? • 慢(响应时间) • 慢(吞吐量)
性能优化探讨
• 目的:为了什么? • 快(响应时间) • 快(吞吐量)
性能优化之案例分析
• 案例之方法论 • 案例之登录访问 • 案例之资源 • 案例之锁
性能优化方法论发展
• 登录输入指标测量 • Logons:= EndSnap. logons cumulative– StartSnap. logons
cumulative。 • Logons Per Second:= Logons / TimeInterval
案例之登录访问
登录输出指标测量:
Logon Response Time:= Network Response Time * 10 + Native TCP Logon :=Network Response Time * 10 + Listener Response Time + Native IPC Logon Time 。
案例之登录访问
• 例:

某医院HIS业务系统的账户登录操作异常缓慢,部分情况下
甚至会出现长时间的卡壳情况,业务影响主要发生在每天早上
的上班时刻。
案例之登录访问
优化过程: • 账户登录过程一般涉及到在账户表格以及对应日志表格上的冲
突,比如Buffer busy waits或者TX lock。AWR未体现该特征。 • AWR报告显示connection management call elapsed time时间偏长
成功率:98% 高 失败率:2% 低
失败人数:500*2%=10

oracle性能优化149页PPT

oracle性能优化149页PPT

合理运用技术的重要性
二.性能优化分析基本工具的使用
工欲善其事,必先利其器
SQL量化分析和优化工具:
EXPLAIN
SQL*TRACE TKPROF
4种基本的诊断分析工具
AUTO*TRACE
AWR
ADDM
SQL*PROFILING
SQL ACCESS ADVISOR
SQL TUNING ADVISOR
ASH
SQL语句到底是怎么执行的
最经典的执行计划分析工具---EXPLAIN 可以快速的了解语句的执行过程。 目前几乎所有的开发工具(PLSQL developer、toad
等)都有图形化界面,可以直接的分析语句的执行 计划。但如银行类的客户不允许使用工具。
如何配套使用SQL*TRACE和 TKPROF
一. Oracle数据库性能优化方法论
WHY WHO WHAT HOW WHEN
--Why tunes? --Who tunes? --What to tune? --How to tune? --When to tune?
为什么(why)要优化
--系统慢了? --其实慢只是表象 --距离找到慢的原因可能路还很长…
索引未被使用的原因
1.不要轻易的在字段前加函数 2.尽量不要将字段嵌入表达式中 3.避免字符转换 4.索引列的选择性不高 5.索引列值是否可为空(NULL) 6.检查被索引的列或组合索引的首列是否出现在
PL/SQL语句的WHERE子句中 7.优化器的选择
复合索引
1. 前缀性(Prefixing) 复合索引的前缀性是指只有当复合索引的第一个字 段出现在SQL语句的谓词条件中时,该索引才会被用 到。 2. 可选性(Selectivity) Oracle建议复合索引应按字段可选性(即值的多少) 的高低进行排列,这是因为,字段值越多,可选性 越强,定位的记录就越少,查询效率就越高。

Oracle数据库性能优化考试

Oracle数据库性能优化考试

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数据库中的锁有两种类型,分别是锁定和锁定。

第09章Oracle的性能优化

第09章Oracle的性能优化

9.2 SQL语句的优化
9.2.1 SQL语句的优化规则 9.2.2 SQL语句优化的具体方法
9.2.1 SQL语句的优化规则
(1)去掉不必要的大表、全表扫描。不必要的大表、全表 扫描会造成不必要的输入输出,而且还会拖垮整个数据库;
(2)检查优化索引的使用 这对于提高查询速度来说非常重 要;
(3)检查子查询,考虑SQL子查询是否可以用简单连接的 方式进行重新书写;
系统的服务器,可以使用sar –u命令查看CPU的使用率;NT 操作系统的服务器,可以使用NT的性能管理器来查看CPU 的使用率。
出现CPU资源不足的情况是很多的:SQL语句的重解析、 低效率的SQL语句、锁冲突都会引起CPU资源不足。
2.查看SQL语句的解析情况 (1)数据库管理员可以执行下述语句来查看SQL语句的解析 情况:
9.3 Oracle运行环境的优化
9.3.1 内存结构的调整 9.3.2 物理I/O的调整 9.3.3 CPU的优化调整 9.3.4 网络配置的优化 9.3.5 Oracle碎片整理 9.3.6 Oracle系统参数的调整
9.3.1 内存结构的调整
内存参数的调整主要是指Oracle数据库的系统全局区 (SGA)的调整。SGA主要由三部分构成:共享池、数 据缓冲区、日志缓冲区。
2.数据缓冲区 数据库管理员可以通过下述语句,来查看数据库数据缓冲区
的使用情况。
SELECT name, FROM v$sysstat WHERE name IN ('db block gets','consistent gets','physical reads');
根据查询出来的结果可以计算出数据缓冲区的使用命中率:

数据库性能优化方法&案例分析

数据库性能优化方法&案例分析

开发、设计、运行维护各阶段 均可能导致性能问题
案例3:神奇的Oracle内部参数
• 内部参数列表
Parameter Name _b_tree_bitmap_plans _bump_highwater_mark_count _cursor_features_enabled _db_block_hash_buckets _db_block_hash_latches _db_block_numa _enable_NUMA_optimization _enqueue_hash_chain_latches _fix_control _in_memory_undo _index_join_enabled _optim_peek_user_binds _optimizer_mjc_enabled _sort_elimination_cost_ratio _sqlexec_progression_cost _table_lookup_prefetch_size _wait_for_sync Begin value FALSE 30 10 134217728 1048576 1 FALSE 256 5705630:ON, 5765456:3 TRUE FALSE FALSE FALSE 10 0 0 FALSE End value (if different)
的优化效果 80%的性能问题可以由20%的优 化技术所解决
应用开发技术运用策略
比较项目 操作特点 响应速度 吞吐量 并发访问量 联机业务 批处理业务 日常业务操作,尤其是包含 后台操作,例如统计报表、 大量前台操作 大批量数据加载 优先级最高,要求反应速度 要求速度高、吞吐量大 非常高 小 非常高 小 大 不高 大
自底向上
数据库性能管理的全面性

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Oracle的性能优化

Oracle的性能优化

千里之行,始于足下。

Oracle的性能优化
Oracle的性能优化是提高数据库系统性能和响应速度的关键步骤,可以通
过如下几个方面进行优化:
1. 数据库设计和规范化:合理的数据库设计和良好的规范化可以减少数据冗余,提高查询效率,避免数据冲突和不一致。

2. 索引优化:在频繁查询的字段上创建适当的索引,可以加快查询速度。

但是,索引不宜过多,因为它们会增加数据修改和插入的时间。

3. 查询优化:优化查询语句的执行计划,使用正确的连接方法(如内连接、外连接),避免全表扫描。

4. 硬件升级:增加内存、硬盘和处理器等硬件资源,可以显著提高
Oracle数据库的性能。

5. 优化配置参数:根据数据库的特点和应用的需求,调整数据库的配置参数,例如SGA大小、PGA大小、日志文件大小等,以提高性能。

6. 数据库优化:使用合适的数据库特性,如分区表、分区索引、物化视图等,优化数据库的存储和查询效率。

7. 监控和调优:持续监控数据库的性能指标,如CPU利用率、内存使用率、磁盘IO等,并及时进行适当的调优操作。

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

总体来说,Oracle的性能优化需要综合考虑数据库设计、硬件配置、查询优化和系统监控等多个方面,通过不断的调整和优化,提高数据库的性能和响应速度。

Oracle性能调整与优化71页PPT

Oracle性能调整与优化71页PPT
Oracle数据库性能 调整和优化
Oracle技术专题讲座
SUPPORT SERVICES
内容提要
1.oracle 性能调整概述 2.磁盘I/O的调整 3.oracle 内存分配与调整 4.SQL优化概述 5.Statspack概述
SUPPORT SERVICES
1.oracle 性能调整概述
SUPPORT SERVICES
2.5 管理回滚段
回滚段:用来保存数据变化前映像而提供一致读和保障 事务完整性的一段磁盘存储区域. 旧数据
回滚段
新数


UPDATE
SUPPORT SERVICES
2.5 管理回滚段
回滚段作用
回退事务
事务恢复
回滚段
读一致性
控制文件
数据文件
重做日志
SUPPORT SERVICES
SUPPORT SERVICES
2.4 使用本地管理表空间(LMT)自动段空间管理 (ASSM)
create tablespace demo datafile '/ora01/oem/demo01.dbf ' size 5m EXTENT MANAGEMENT LOCAL -- Turn on LMT SEGMENT SPACE MANAGEMENT AUTO -- Turn on ASSM;
OWNER ALEX
TABLE_NAME DEPT
PARTITION_COUNT 3
SUPPORT SERVICES
2.4 使用分区表避免磁盘争用
Select segment_name, partition_name, segment_type, tablespace_name

关于Oracle 10g数据库系统性能优化与调整的研究

关于Oracle 10g数据库系统性能优化与调整的研究

1 前 言
I T系统随着支持用量的增长和 新业务的不断扩 展, 数据 处理量 大量 增加 , 业 务处理模式 日趋 复杂 , 必然导致主机 C P U和 I / O占用不 断呈线 性增加。因此,充分使用先用硬件的处理能力对于保护投资至关重要。 O r a c l e 数据库 是现在 使用最广 泛的大型数据库之一 , 但是在 实际的应用 中, 不断增加的数据量和访 问量都会导致 O r a c l e数据库系统性能的降低 现象 , 这就 产生了对 O r a c l e数据库系统的优化 的需求, 通过相关 的优化 和调整 手段 , 以实现更快 的响应 时间、 更大 的吞 吐量 以及更少 的资源 占 用等 。
3 数 据库 系统性 能优 化与调 整
数据库系统 的优化与调整的 目的是通过对 0 r a c l e 1 O 数据库性能的
库配置等) 着手 , 实现对数据库 的体 系结构、 软件结构 、 具体的业务和 技 术等方面 的优 化效 果, 使得数据库系统 实现更快的响应 时间、 更大 的吞
点的通过率较低 。在 振动筛 的极限速度 已知的情 况下, 筛孔大小的计算 公式为:
d= r +V( 2 r / g )
在计算振动筛结构参数的过程 中, 还要注 意的是筛面的倾角与 吊杆 的角度 。 这主要是因为筛面的倾角和 吊杆的角度决定了振动筛筛分的时 间, 因而合理的调整筛面斜角与 吊杆的角度能够提高振动筛筛分的工作 效率 。
影 响因素 在0 r a c l e 数据库 系统性 能中的地位 数据 库服 数据库服务器是整个 O r a c l e 数据系统的核心, 服务器上运行的操作系 务器性能 统 以及服务器的硬件配 置对 0 r a c 1 e 数据系统产生直接 影响。 数据库配 数据库 的配置主要包括内存区的设置 、 I / O设置 、 相关参数设置、 回滚 置 段设置以及碎 片整理等 , 数据库配置情况对于数据库系统性能具有极 为重要的作用 , 是进行 0 r a c l e 数据库性能优化调整的核心。 网络 I / O 在0 r a c l e 数据库, 应用程序与服务器之间所进行 的交互主要是通过 网 络I / O完成, 因此网络 I / O对数据库系统性能有重要的影响。 应用程序 应用程序性能, 尤其是 S Q L语句的应用、 数据库端程序 设计以及数据 性能 库对象 的使用情况等由于能够影响 O r a c l e 数据库的执行效率, 因此其 对 数 据 库 性 能 的影 响也 是至 关 重 要 的 。

性能优化:调整IO相关的等待

性能优化:调整IO相关的等待

性能优化:调整IO相关的等待编辑手记:对Oracle数据库进行调整优化,基本上最终都可以归结到I/O调整上,因此,了解如何来优化Oracle数据库的I/O对于一个DBA来说就显得至关重要。

今天挑选此文与大家共勉。

I/O相关竞争等待简介当Oracle数据库出现I/O相关的竞争等待的时候,一般来说都会引起Oracle数据库的性能低下,发现数据库存在I/O相关的竞争等待一般可以通过以下的三种方法来查看Oracle数据库是否存在I/O相关的竞争等待:(1)Statpack报告中在"Top 5 WaitEvents"部分中主要都是I/O相关的等待事件。

(2)数据库的等待事件的SQL语句跟踪中主要都是I/O相关的等待事件的限制。

(3)操作系统工具显示存储数据库文件的存储磁盘有非常高的利用率。

数据库如果发现存在I/O竞争,那我们就必须要通过各种方法来调整优化Oracle数据库。

在调优数据库的过程中,其中一个重要的步骤就是对响应时间的分析,看看数据库消耗的时间究竟是消耗在具体什么上面了。

对于Oracle数据库来说,响应时间的分析可以用下面公式来计算:Response Time = Service Time + WaitTimeService Time是指'CPU used by this session'的统计时间。

Wait Time是指所有消耗在等待事件上的总的时间。

因为等待事件有很多,因此我们还需要去判定哪些是真的很重要的等待事件,很多调优工具比如说statpack都是列出最重要的等待事件,statpack工具的报告中的重要的等待事件都是包含在一个叫Top 5 Wait Events的部分中。

在某些情况下, Service Time会比WaitTime显得更加重要(例如CPU使用率),此时等待事件产生的影响就显得不是那么重要了,重点调整的目标应该放在Service Time上。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据缓冲区的使用命中率=1 –( physical reads/(db block gets + consistent gets))
这个命中率应该在90%以上,否则需要增加数据缓冲区的大小。
3.日志缓冲区 数据库管理员可以通过执行下述语句,查看日志缓冲区的
使用情况。
select name,value from v$sysstat where name in ('redo entries','redo log space requests'); 根据查询出的结果可以计算出日志缓冲区的申请失败率: 申请失败率=requests/entries 申请失败率应该接近于0,否则说明日志缓冲区开设太小,需 要增加Oracle数据库的日志缓冲区。
Oracle的性能 优化
第九章 Oracle的性能优化
本章学习目标 本章将介绍优化和调整Oracle数据库 系统的一些相关命令和方法。
本章内容安排
9.1 数据库性能优化概述 9.2 SQL语句的优化
9.3 Oracle运行环境的优化 9.4 并发事件处理 9.5 数据完整性 9.7 常见问题处理
共享SQL区的使用率应该在90%以上,否则需要增加共享 池的大小。
(2)数据库管理员可以执行下述语句,查看数据字典缓冲区 的使用率。
select (sum(-getmisses-usage-fixed))/sum (gets) "Row Cache" from v$rowcache;
数据字典缓冲区的使用率也应该在90%以上,否则需要 增加共享池的大小。
SELECT * FROM V$SYSSTAT WHERE NAME IN ('parse_time_cpu','parse_time_elapsed','parse _count_ hard');
这里: ①parse_time_cpu:是系统服务时间。 ②parse_time_elapsed:是响应时间。 而用户等待时间为:
9.1 数据库性能优化概述
9.1.1 数据库性能优化的内容 9.1.2 不同类型系统的优化
9.1.1 数据库性能优化的内容
(1)调整数据结构的设计。 (2)调整应用程序结构设计。 (3)调整数据库SQL语句。 (4)调整服务器内存分配。 (5)调整硬盘I/O,这一步是在信息系统开发之前完成的。 (6)调整操作系统参数。
3.查看Oracle数据库的冲突情况
数据库管理员可以通过v$system_event数据字典中的 “latch free”统计项查看Oracle数据库的冲突情况,如果没 有冲突的话,latch free查询出来没有结果。如果冲突太大 的话,数据库管理员可以降低spin_count参数值,来消除 高的CPU使用率。
9.3.2 物理I/O的调整
(1)在磁盘上建立数据文件前首先运行磁盘碎片整理程序
为了安全地整理磁盘碎片,需关闭打开数据文件的实 例,并且停止服务。如果有足够的连续磁盘空间建立数据文 件,那么就很容易避免数据文件产生碎片。
(2)不要使用磁盘压缩
Oracle数据文件不支持磁盘压缩。
(3)不要使用磁盘加密
关联查询的开销——对返回到父查询的记录来说,子查询会 每行执行一次。因此,必须保证任何可能的时候子查询用到索 引。
(2)在子查询中慎重使用IN或者NOT IN语句 在子查询中慎重使用IN或者NOT IN语句,使用where
(NOT)exists的效果要好的多。 ①带IN的关联子查询是多余的,因为IN子句和子查询中相 关的操作的功能是一样的。
1.共享池 共享池由两部分构成:共享SQL区和数据字典缓冲区。
共享SQL区是存放用户SQL命令的区域,数据字典缓冲区 存放数据库运行的动态信息。
(1)数据库管理员通过执行下述语句,来查看共享SQL区的使 用率。
select (sum(pins-reloads))/sum(pins) "Lib Cache" from v$librarycache;
2.数据缓冲区 数据库管理员可以通过下述语句,来查看数据库数据缓冲区
的使用情况。
SELECT name, FROM v$sysstat WHERE name IN ('db block gets','consistent gets','physical reads');
根据查询出来的结果可以计算出数据缓冲区的使用命中率:
9.3.5 Oracle碎片整理
1.碎片是如何产生的 2.碎片对系统的影响 (1)导致系统性能减弱 (2)浪费大量的表空间
3.自由范围的碎片计算 用fsfi——free space fragmentation index(自由空间碎片
索引)值来直观体现:
fsfi=100*sqrt(max(extent)/sum(extents))*1/ sqrt(sqrt(count(extents)))
9.3 Oracle运行环境的优化
9.3.1 内存结构的调整 9.3.2 物理I/O的调整 9.3.3 CPU的优化调整 9.3.4 网络配置的优化 9.3.5 Oracle碎片整理 9.3.6 Oracle系统参数的调整
9.3.1 内存结构的调整
内存参数的调整主要是指Oracle数据库的系统全局区 (SGA)的调整。SGA主要由三部分构成:共享池、数 据缓冲区、日志缓冲区。
系统的服务器,可以使用sar –u命令查看CPU的使用率;NT 操作系统的服务器,可以使用NT的性能管理器来查看CPU 的使用率。
出现CPU资源不足的情况是很多的:SQL语句的重解析、 低效率的SQL语句、锁冲突都会引起CPU资源不足。
2.查看SQL语句的解析情况 (1)数据库管理员可以执行下述语句来查看SQL语句的解析 情况:
4.SQL子查询的调整
(1)关联子查询和非关联子查询
非关联查询的开销——非关联查询时子查询只会执行一次, 而且结果是排序好的,并保存在一个Oracle的临时段中,其中的 每一个记录在返回时都会被父查询所引用。在子查询返回大量 的记录的情况下,将这些结果集排序,以及将临时数据段进行 排序会增加大量的系统开销。
4.CPU的优化调整方法 一些优化CPU使用和配置的具体方法有:
(1)取消屏幕保护。 (2)把系统配置为应用服务器。 (3)监视系统中消耗中断的硬件。 (4)保持最小的安全审计记录。 (5)在专用服务器上运行Oracle。 (6)禁止非必须的服务。
9.3.4 网络配置的优化
网络配置是性能调整的一项很重要的内容,而且很容易隐 藏性能瓶颈。 (1)配置网卡使用最快速度和有效模式 (2)删除不需要的网络协议 (3)优化网络协议绑定顺序 (4)为Oracle禁止或优化文件共享
②为非关联子查询指定EXISTS子句是不适当的,因为这样 会产生笛卡尔乘积。
③尽量不要使用NOT IN子句。
(3)慎重使用视图的联合查询
慎重使用视图的联合查询,尤其是比较复杂的视图之 间的联合查询。一般对视图的查询最好都分解为对数据表的 直接查询效果要好一些。
可以在参数文件中设置SHARED_POOL_RESERVED_SIZE参 数,这个参数在SGA共享池中保留一个连续的内存空间,连 续的内存空间有益于存放大的SQL程序包。
加密象磁盘压缩一样增加了一个处理层,降低磁盘读 写速度。如果担心自己的数据可能泄密,可以使用 dbms_obfuscation包和label security选择性地加密数据的敏感 部分。
(5)使用RAID
RAID的使用应注意:
①选择硬件RAID超过软件RAID;
②日志文件不要放在RAID 5卷上,因为RAID 5读性能高而写 性能差;
(4)调整PCTFREE和PCTUSED等存储参数优化插入、更 新或者删除等操作;
(5)考虑数据库的优化器;
(6)考虑数据表的全表扫描和在多个CPU的情况下考虑并 行查询。
9.2.2 SQL语句优化的具体方法 1.索引的使用
2.SQL语句排序优化 3. 选择联合查询的联合次序
4.SQL子查询的调整
2.SQL语句排序优化 排序发生的情况如下: SQL中包含group by 子句 SQL 中包含order by 子句 SQL 中包含 distinct 子句 SQL 中包含 minus 或 union操作
3.选择联合查询的联合次序
联合查询中如涉及到多个表的字段关联及查询,其 SQL查询语句联合次序的不同写法,会导致语句对各表具 体操作的步骤有不同的次序,所以虽然执行结果相同,但 执行效率却不同。
waite_time = parse_time_elapsed – parse_time_cpu 由此可以得到用户SQL语句平均解析等待时间: 用户SQL语句平均解析等待时间=waite_time/parse_count
(2)数据库管理员还可以通过下述语句,查看低效率的 SQL语句:
SELECT BUFFER_GETS,EXECUTIONS,SQL_TEXT FROM V$SQLAREA; 优化这些低效率的SQL语句也有助于提高CPU的利用率。
9.2 SQL语句的优化
9.2.1 SQL语句的优化规则 9.2.2 SQL语句优化的具体方法
9.2.1 SQL语句的优化规则
(1)去掉不必要的大表、全表扫描。不必要的大表、全表 扫描会造成不必要的输入输出,而且还会拖垮整个数据库;
(2)检查优化索引的使用 这对于提高查询速度来说非常重 要;
(3)检查子查询,考虑SQL子查询是否可以用简单连接的 方式进行重新书写;
(2)索引不起作用的情况 ①存在数据类型隐形转换 ②列上有数学运算 ③使用不等于(<>)运算 ④使用substr字符串函数 ⑤‘%’通配符在第一个字符 ⑥字符串连接(||)
相关文档
最新文档