




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京邮电大学硕士研究生毕业论文i p 网络监测系统中o r a c l e 数据库性能优化研究与实现 i p 网络监测系统中o r a c l e 数据库性能优化研究与实现 摘要 o r a c l e 数据库作为目前适用性最好的关系数据库引擎之一,能够 支持各种业务形式、处理各种复杂事务,得到极为广泛的应用。但由 于应用系统的规模日趋庞大、系统架构日益复杂、业务复杂程度不断 提高、业务数据积累急剧膨胀,再加上应用软件本身没有确定的标准、 产品化程度低,从而导致应用系统的性能问题层出不穷,维护难度越 来越大。 本文对i p 网络监测系统及监测系统中的数据库应用进行了介绍, 重点探讨了o r a c l e 数据库性能优化技术在i p 网络监测系统中的应用。 借助于性能管理工具对系统进行性能分析研究,并开展相关优化工 作,取得一定的成果。在大量实践工作基础上,总结了一套适用于监 测系统的o r a c l e 数据库性能管理的方法。 本论文的研究内容主要包括:对o r a c l e 数据库性能优化相关技术 的研究;借助于性能管理工具,对i p 网络监测系统中数据库优化实 践,并进行总结。 关键词:o r a c l e 数据库性能优化性能管理i p 网络监测系统 北京邮电大学硕士研究生毕业论文i p 网络监测系统中o r a c l e 数据库性能优化研究与实现 t h ed a t a b a s ep e i t f o r m a n co p t i m i z a t i o n r e s e a r c ha n dp r a c t i c e s o fi pm o ns y s t e m a b s t r a c t o r a c l ei so n eo ft h em o s ta d a p t a b l er d b m s n o w a d a y s i ti sw i d e l y u s e di nm a n yi n d u s t r i e sf o ri t ss u p p o r tt om a n yk i n d so fb u s i n e s sa n di t s a b i l i t yi nh a n d l i n gc o m p l e xa p p l i c a t i o n s a st h es c a l eo ft h ea p p l i c a t i o n s y s t e mb e c o m e sl a r g e r , s y s t e mf l a m ea n da p p l i c a t i o n sb e c o m em o r ea n d m o r ec o m p l e x ;i tg i v e sr i s et oal o to fs y s t e mp e r f o r m a n c ep r o b l e m sa n d m a k e si td i f f i c u l tt om a i n t a i nt h ea p p l i c a t i o ns y s t e m t h ep e r f o r m a n c eo p t i m i z a t i o nt e c h n i q u eu s e di nt h eo r a c l eb a s e di p m o ns y s t e mi sd i s c u s s e di nt h i st h e s i s w i t ht h eh e l po fa no n l i n e a p p l i c a t i o n s p e r f o r m a n c em a n a g e m e n tt o o l ,t h ei pm o ns y s t e mi s a n a l y z e d ,a no p t i m i z a t i o ns c h e m ei si m p l e m e n t e di n t ot h es y s t e ma n dt h e s y s t e mp e r f o r m a n c ei si m p r o v e d t h er e s e a r c ha c t i v i t i e si n c l u d et h ef o l l o w i n ga s p e c t :i n v e s t i g a t i o no f t h ep e r f o r m a n c eo p t i m i z a t i o nt e c h n i q u e ;d o i n go p t i m i z a t i o ne x p e r i m e n t s w i t ht h eo n l i n ea p p l i c a t i o n s p e r f o r m a n c em a n a g e m e n tt o o l ;v e r i f y i n g t h eo p t i m i z a t i o nr e s u l t k e yw o r d s o r a c l ed a t a b a s e ,p e r f o r m a n c eo p t i m i z a t i o n ,p e r f o r m a n c e m a n a g e m e n t ,i pm o ns y s t e m 3 北京邮电大学硕士研究生毕业论文i p 网络监测系统中o r a c l e 数据库性能优化研究与实现 声明 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示了谢意。 本人承担一切相关责任。 日期:逊:墨二12 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保 留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借 阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。 本学位论文 本人签名: 导师签名: 密后适用本授权书。 日期:兰堕兰:兰! 日期一型垡! 生:垒 北京邮电大学硕士研究生毕业论文 i p 网络监测系统中o r a c l e 数据库性能优化研究与实现 1 1 研究背景 第一章绪论 数据业务管理平台( d s m p ) 为数据运营提供技术支撑,同时为数据业务 产品的交易提供保障,它对内整合与运营内部各个核心平台的数据交互通道,对 外通过业务网关对数据业务用户和业务提供商所提供的数据业务进行鉴权,批价 计费,以及其他的控制管理,并通过伪码( 对用户主叫号码进行加密) 等信息 与数据的过滤机制。其运行状况的好坏直接影响到整个数据业务网的服务质量。 因此对d s m p 的监测具有重要的意义。p 网络监测系统通过截取d s m p 系统中 所有的p 包的方式,获得用户对业务的访问信息,以及子系统间通讯的信息, 以便于对业务质量、业务流量进行监控,对故障进行实时表示和定位分析。它在 网络、业务等的深层次分析和实习性监视方面具备强大的功能,是业务集中维护 和管理、网络优化、网间服务质量监视分析和业务模型分析、网络规划、障碍快 速定位和排除等的有效的支撑手段之一。 由于数据业务的飞速增长,数据量急剧膨胀,加上s p ( 业务提供商) 的新 业务层出不穷,目前的p 监测系统需要对海量数据进行处理、完成对各种复杂 业务的监测等等,这无疑给监测系统提出很高的要求,性能问题也越来越突出, 从而导致应用的维护难度越来越大。现在应用系统的性能问题越来越成为运营商 与开发商所共同关注的问题,许多应用系统都存在性能瓶颈,也出现过各种各样 的性能问题,而采用得最多的解决方案是硬件升级。但是硬件升级能给系统性能 带来多大的提升,以及以什么为依据来确定升级方案,这些都没有一个合理的科 学依据。甚至于有时候以高昂的硬件代价换取的却只是性能上极其微小的改善, 在一些极端情况下更有可能无法改善,其原因在于性能的瓶颈根本不在硬件,而 在应用系统本身。如果在现有运行环境的基础上,能够通过一种有效的方法找出 应用系统的性能瓶颈所在,并且比较精确地定位性能瓶颈产生的原因,从而给出 有效的性能优化方案。这样,就有可能在不对硬件环境升级的前提下,有效地提 高应用系统的性能,大大节约投资。从另一方面讲,如果经过测试、分析,能够 得出应用系统本身并不存在性能瓶颈的结论,也同样能为系统的扩容提供有效的 依据。 6 北京邮电大学硕士研究生毕业论文 i p 网络监测系统中o r a c l e 数据库性能优化研究与实现 1 2 研究目标和研究内容 本课题的研究目标是:针对系统性能问题长期存在的客观事实,以及传统性 能维护、优化方面存在的弊端,研究一套能够快速、准确进行性能分析、问题诊 断定位的方法,有效地提出优化建议。 本论文的研究内容主要包括: 1 ) 研究p 网络监测系统的软件体系结构和系统功能以及d 网络监测系统 中数据库的应用。分析该系统可能存在的性能问题。 2 ) 研究o r a c l e 优化技术。通过阅读大量的文献资料,理解和掌握对基于 o r a c l e 数据库的应用系统进行性能优化所需要掌握的相关基础知识,树立正确的 性能优化观念。 3 ) 研究性能分析过程,并借助于性能管理工具,针对现有口网络监测系统 的数据库进行性能分析,总结系统中存在的主要性能问题及原因。 钔针对d 网络监测系统中数据库中几个关键的性能问题进行优化,并检验 优化效果。 1 3 本文的组织结构 以上简单介绍了本课题的研究背景、研究目标和研究内容。 本文的具体组织结构如下: 第二章,介绍口网络监测系统相关概念。首先介绍了d 网络监测系统的软 件体系结构和系统功能,然后介绍了在d 网络监测系统中数据库的应用,介绍 了应用数据库的的设计思想,在整个系统中的定位和作用,并从应用维护的角度 分析了p 网络监测系统可能存在的性能问题和数据库的相关性。 第三章,详细介绍性能优化技术。首先分析了影响应用系统性能的相关因素; 引入一种国外近几年比较推崇,而且经实践证明较为有效的性能优化方法;接下 来针对基于o r a c l e 数据库的应用系统的关键性能优化技术一一进行描述,重点 介绍了应用程序优化方面的内容。 第四章,详细介绍了针对p 网络监测系统的性能分析过程。首先介绍了在 实践过程中使用的性能管理工具:然后介绍优化项目中的目标系统现状,分别从 系统配置和业务方面展开描述;最后以举例方式,详细说明了基于工具的性能分 析过程,以及系统的关键性能问题及原因。 第五章,介绍了性能优化的成果。首先基于性能分析的结果,描述了应用程 序的几个关键性能问题的优化方案及其优化效果;接下来简单介绍了作者在实践 过程中的一些心得体会。 7 北京邮电大学硕士研究生毕业论文伊网络监测系统中o r a c l e 数据库性能优化研究与实现 文章最后总结了论文成果和不足,并对今后工作作出展望。 1 4 研究生期间工作 研究生期间,作者主要参加信令网和数据网的监测管理项目的开发工作, 对信令监测和网络的相关理论和技术有了一定的认识和了解;同时通过在具 体项目中的学习与实践,对应用系统中的数据库应用和数据库优化的有较为 深入的了解。概括来说,作者在读硕士期间参与的主要研究工作包括: 1 ) 作为主要开发人员,参与某运营商数据业务管理平台监测系统的开 发工作。该项目主要通过对系统的集中监测系统,监测各种数据业 务的数据流与业务流,提供业务追踪,业务提供商业务质量实时监 测告警以及统计分析报表展现的功能。 2 ) 作为主要开发人员,参与某运营商七号信令监测系统的开发工作。 该项目主要通过对七号信令的监测,提供呼叫追踪,实时告警,综 合统计等功能。 3 1 作为主要研究人员,对现有的p 网络监测系统进行性能分析和优化 的研发工作,并取得了一定的研究成果。 n 京b “,l 究生毕n 论立j p h 镕监十o r a c l c j f n 自 m n 咒一# m 第二章i p 网络监测系统介绍 本章针对l p 网络监测系统整体体系结构和软件体系结构及系统应阐等方面 对系统进行概括性描述,并在此基础上对口监测系统进行了初步的性能分析。 2 1 i p 网络监测系统总体结构 2 1 1 工作原理 i p 网络监洲系统通过i p 旁路的方式,系统内部各于系统交互的所有数掘, 进 t 协议解析,流程合成和告警发送达到监测甘的。 凰囊圜一亟刊 _ _ 旦盟生盟生生竺墅堕! j 目2 1i p 网络监测系统卷体结构蚓 2 l2 1 p 监测系统体系结构 i p 网络监测系统采用独特的三层处理技术,系统结构分为虫n 下三层:数掘采 集层、数据处理层、数捌展现j 未 图2 - 2 :i p 阿络监洲系统二_ = 层结构图 鹰腮舸掣l 譬一 墓 北京邮电大学硕士研究生毕业论文口网络监测系统中o r a c l e 数据库性能优化研究与实现 数据采集处理层由具有自主知识产权的电信级设备一数据采集设备 构成。实现所有协议数据的分析处理、c d r t d r 的形成、消息的统计、 消息的过滤适配、呼叫的跟踪等。 数据处理层实现c d r t d r 、统计数据的实时分析处理、网管、计费核 查等业务逻辑的实现等等,信令消息、c d r t d r 、测量统计数据、告警记 录等数据的存储。 应用层实现数据的呈现和友好的人机界面。 d 网络监测系统系统分为如下五个子系统,分述如下: 界面子系统:实现用户交互和数据表示,提供系统功能的具体展现。主要包 括:配置变更、业务追踪、用户登陆、报表展现四个部分。 中央控制子系统:实现子系统间的逻辑处理,完成如下功能: 告警管理:生成系统告警,并传递告警信息给中控内部的s n m p a g e n t : 配置管理:将界面下发的配置信息更新到应用数据库,并发出配置更新信息; 业务追踪管理:分析界面子系统下发的追踪条件,返回追踪结果; 用户管理:接收界面下发的用户信息,进行权限验证,返回验证结果; 性能数据管理:获取统计生成的各项数据,以s n m p a g e n t 传给s i t e v i e w : 统计子系统:完成基础的统计,提供性能数据包括流量分析。并将结果存放 到应用数据库中保存起来; s d r 形成子系统:完成数据采集、x d r 形成。该模块直接从交换机或路由 器上采集口消息,经解码后形成x d r ,并将其保存在x d r 库中。为流量分析提 供原始数据; 应用数据库:应用数据库存放统计信息,告警信息,配置信息。在这些信 息的支撑下,系统完成各项功能; 以上五个子系统通过相互协作完成系统所提供的各项功能。 2 2 i p 网络监测系统功能 2 2 1 统计分析 统计分析主要针对各项业务进行成功率统计分析、失败原因统计分析、时延 统计分析和事务数统计分析。统计分析结果在应用数据库保存其中,这些统计分 析结果最终将以界面报表展现和定时报表发送的形式实现。 2 2 2 系统配置 p 网络监测系统提供统一规范的系统配置界面,完成用户信息配置和业务 参数配置和告警参数配置等功能。 1 0 北京邮电大学硕士研究生毕业论文 i p 网络监测系统中o r a c l e 数据库性能优化研究与实现 2 2 3 业务追踪流程分析 业务追踪功能是系统可以根据用户给出的追踪条件,返回追踪结果。 2 2 4 告警管理 告警管理是指系统对用户在使用业务的过程中发生的业务层、网络层或者系 统层( 系统自身) 发现的异常的监测。为了便于用户的监测,监测配置管理、告 警的展现和查询基于拓扑图和报表查询的方式。 2 3 i p 网络监测系统中的数据库 2 3 1 应用数据库的设计 在p 网络监测系统中,我们使用的o r a c l e9 2 0 版本的数据库。应用数据库 和其它各个子系统都有紧密的联系,是系统的重要的组成部分,以下是应用数据 库为其它子系统的贡献: 图2 - 3 :i p 网络监测系统软件体系结构图 1 ) 界面子系统:应用数据库数据库为界面子系统提供生成报表的基础数据, 配置变更的基础数据: 2 ) 中央控制子系统:中央控制子系统通过调用数据库的存储过程完成配置变 更; 3 ) 统计子系统:此系统通过对s d r 库的数据进行基础统计,将统计结果保 存在应用数据库的b u f 表中; 北京邮电大学硕士研究生毕业论文i p 网络监测系统中o r a c l e 数据库性能优化研究与实现 4 ) x d r 子系统:应用数据库为此系统提供关于u r l 和业务层返回结果等配置 数据,以供形成x d r 。 d 网络监测系统的应用数据库旨在存放以下几方面的数据: 1 ) 统计数据,即底层解码形成的s d r 文件经统计程序预处理后形成的数据 以及在此基础上按一定统计指标进一步统计形成的数据。统计数据存放在b u f 表和统计表中; 2 ) 配置数据,配置数据是对项目所需配置信息的说明。配置信息数据由字典 和配置表说明; 3 ) 性能数据,性能数据指需要通过s n m p 的a g e n t 接口上报上级网管的数据: 4 ) 告警数据,d 监测系统的系统自身告警存放在系统告警表中。 2 3 2 i p 网络监测系统性能分析 随着业务的不断发展、业务数据的急剧膨胀,给网络监测系统提出了更 高的要求,性能问题日益突出。p 网络监测系统作为需要不问断运行的运营支 撑系统,对服务管理水平要求最高的业务主要是前台的统计报表查询、配置变更、 告警查询,后台的业务统计,性能数据生成、告警生成等。 统计报表查询功能属于决策支持操作( d s s ) ,其特点是处理数据量大,由于 统计报表需要展现各时段各业务的成功率时延等,所处理的数据来源较多,计算 较为复杂,因此对系统的处理能力、查询的速度要求较高,其性能主要反映在相 应时间上。 业务统计属于后台批处理操作,其中性能数据统计属于实时后台处理程序, 虽然根据业务的分布情况不同,需要处理的数据量略有不同,但对系统资源的消 耗却无时无刻不存在,每次统计后的结果都需要入库,在这个过程中还会产生大 量的i o 操作,对整个i o 子系统的负载也相当大。由于需要处理的数据量极大, 需要消耗相当多的系统资源,给整个系统带来较大的压力。一旦在规定的时间内 未能完成相应的业务处理,无疑还会影响到其它应用的正常运行。 告警生成也属于后台批处理操作,需要实时对所有业务的情况进行累加计算 和判别,对系统资源的消耗极大,对整个应用系统的性能会产生极大的压力。 影响应用系统性能的因素很多,包括应用服务器、数据库、存储、客户端、 与其他系统接口、网络等多个方面。如果一次性对所有方面都进行优化,显然不 太现实,而经过对p 网络监测系统进行深入分析后发现,对这类以数据为中心 的信息系统而言,数据库性能是整个系统性能的关键,所有的前台、后台操作都 需要与数据库打交道,频繁对数据库进行增、删、改、查操作。此外,由于资源 竞争等其他原因所造成的性能瓶颈,也有可能体现在数据库层面上,通过分析数 据库,也可能找到与之相关的问题根源。因此整个口网络监测系统的性能优化 1 2 北京邮电大学硕士研究生毕业论文i p 网络监测系统中o r a c l e 数据库性能优化研究与实现 重点是后台数据库。作者所研究的坤网络监测系统使用的是o r a c l e 数据库,在 整个研究期间所完成的大量工作也主要是应用本人学到的o r a c l e 优化知识,并 借助于性能管理工具,针对p 网络监测系统的o r a c l e 性能进行分析及优化。 北京邮电大学硕士研究生毕业论文i p 网络监测系统中o r a c l e 数据库性能优化研究与实现 第三章性能优化技术 第二章介绍了m 网络监测系统的概念以及p 网络监测系统的软件体系结构 和系统功能,并详细说明数据库在该系统中的定位和应用,在此基础上从业务角 度对系统进行性能分析,明确了性能优化的工作重点针对整个应用系统的 o r a c l e 数据库部分着重进行分析和优化。 本章主要介绍性能优化的相关技术。作者在阅读大量文献资料的基础上,分 析了影响基于o r a c l e 数据库的应用系统性能的主要因素,介绍了一种国外比较 推崇、并且经大量应用验证有效的性能优化方法,在此基础上简单介绍了基于 o r a c l e 数据库的应用系统性能优化可能用到的相关技术。 3 1 影响应用系统性能的主要因素 数据库的性能问题是受整个系统的多方面因素综合影响的。 本节将从硬件配置、操作系统、o r a c l e 数据库、应用系统等各个方面简要描 述其对应用系统性能的影响。 3 1 1 系统硬件配置 硬件环境是应用系统运行的基础,对应用性能的影响也是显而易见的。因此, 当出现性能问题后,人们往往会首先想到需要升级硬件,但是往往效果不好,原 因很简单系统出现性能问题的根源并不是硬件。要想避免犯盲目升级硬件这 样的错误,首先需要了解关键的硬件部件对整个应用系统性能的影响。 c p u :一般情况下会认为c p u 处理能力越强,应用性能会越高,但实际上 需要找到一个平衡点,一味地期望通过升级c p u 来改善应用系统性能也不 一定总能达到性能优化的目标。 内存:一般情况下会认为内存越大,应用性能状况越好,因为将数据加载到 内存中进行处理要比通过直接访问硬盘处理要快得多,可用的内存越大,可 以一次性往内存中装入更大的数据量,有助于缩短处理时间。但并不是说内 存越大,系统性能就一定越好,需要根据具体应用情况有效分配内存,否则 只会造成内存的浪费,而且,对某个具体的应用来讲,在内存充足的情况下, 应用性能好坏主要取决于算法的优劣。 存储:采用好的存储设备和存储技术能够得到更大的i 0 吞吐量,必然会提 高应用性能。但也并不是说,采用好的存储设备和存储技术就一定能够得到 最好的i 0 性能,首先在进行存储规划时,要注意i 0 均衡,绝不能出现少 1 4 北京邮电大学硕士研究生毕业论文i p 网络监测系统中o r a c l e 数据库性能优化研究与实现 数几块磁盘过热、出现大量的i o 争用,而其它盘却很空闲的情况,否则将 出现严重的i 0 等待,从而影响整个应用系统的性能状况。 3 1 2 操作系统 操作系统本身可看成一个资源管理程序,用来协调c p u 、i 0 子系统、内存 的使用。不同类型的应用,所对应的操作系统相关参数的设置也应该有所区 别,关键参数的设置可能会影响到运行其上的每个应用的性能表现。对基于 o r a c l e 数据库的应用系统而言,从操作系统层面上进行优化,一方面要配置 o s 以保证o r a c l e 有足够的资源可用,另一方面是通过优化o s 来改善o r a c l e 进程的性能。 3 1 3 数据库服务器 o r a c l e 数据库服务器对性能的影响主要体现在以下几方面: 数据库设计:好的数据库设计对应用系统的性能无疑是最好的保证,而且在 性能维护上的代价最小。但是,实际上很少有系统是按照完全不变的需求来 进行设计的,而在整个实现过程中,不会对系统的原始设计做重大修改的系 统更是少见。很有可能在系统上线时,离最初的设计初衷已经距离很远。同 时,一旦系统上线,数据库的设计基本上就不能再随意变更,通过改变数据 库设计来优化现有应用的性能所面临的风险极高。 参数设置:参数设置合理与否对运行在该数据库上的所有应用都可能产生巨 大的影响。但仅仅通过随意调整参数来进行数据库性能优化的效果有时候并 不明显,而且往往会出现一个必然的结果占用更多的系统资源。在系统 资源一定的情况下,数据库占用太多的资源必然会影响到其他应用,整个应 用系统的性能反而更糟糕了。一般来讲,对参数的调整没有一个可信的标准, 基本是一些经验值。 o r a c l e 内部资源冲突:有很大一部分数据库的性能问题都是因内部资源冲突 出现等待事件而引起,因此找出系统中影响性能的主要等待事件往往是解决 性能问题的关键。常见的等待事件有i 0 等待、c p u 等待、内存等待、锁等 待。 3 1 4 应用程序 应用程序的设计、实现以及日常运行等各个方面都会影响到应用系统的运行 性能。 算法:算法是业务逻辑的组织,对算法优劣的检验一般属于应用验收上线前 的白盒测试范畴,但对于数据库应用而言,大部分算法最终会体现到数据库 北京邮电大学硕士研究生毕业论文m 网络监测系统中o r a c l e 数据库性能优化研究与实现 的s q l 语句,所以解决s q l 语句在性能优化方面的问题,能够从一定程度 上解决算法优化问题。 s q l 语句:数据库中著名的“8 0 2 0 原则提到,8 0 左右的o r a c l e 系统性 能问题是通过代码和s q l 调优解决的。不合理的s q l 语句会大量消耗资源, 从而使系统性能急剧下降。通过优化s q l 可以减少c p u 的使用、减少i o 请求次数、缩短响应时间。 数据库表上的索引:是否正确、有效地使用索引对保证数据库性能是至关重 要的。选择使用索引的前提是:应该保证索引查询所需要访问的数据块小于 全表扫描所需要访问的数据块【3 】。而对于查询操作较少而数据更新操作较多 的应用而言,则建议不要使用索引。此外,数据库运行一段时间以后,索引 可能会失去平衡,数据的分布也不再对称,这些都会影响o r a c l e 对用户数据 请求的响应时间。 日常运行:应用系统在日常运行过程中,根据业务需求不断发生变化,数据 量也在不断积累,有时候甚至还会出现一些异常使用,这些都会影响整个系 统的性能特征。 3 2 性能优化方法 性能问题实际上是在影响系统性能的各个因素之间的权衡、折衷与决策的问 题,性能优化的目标是整个系统总体性能的提高,而不是某一方面技术指标的改 进。一方面这需要对影响系统性能的各个主要因素有深刻理解,另一方面需要对 应用和事务内容有较为细致深入的调查研究。 优化一个数据库应用系统,首先需要了解包括数据库、操作系统、应用在内 的各个子系统,通过观察各个子系统分别承受怎样的压力以及性能瓶颈,然后找 出相互重合的地方,就有可能快速定位出整个系统的性能瓶颈以及产生问题的根 源。如下图所示,系统中最关键的性能问题往往与其中的操作系统、o r a c l e 数据 库以及应用都相关。 图3 - 1 :关键的性能问题往往涉及整个系统中的各个子系统 o r a c l e 大师c r a i ga s h a l l a h a m e r 在t o t a lp e r f o r m a n c em a n a g e m e n t 一文中指 出,上述各个子系统中分别需要分析的关键信息如下: 1 6 北京邮电大学硕士研究生毕业论文m 网络监测系统中o r a c l e 数据库性能优化研究与实现 操作系统:i o 、c p u 、内存、网络 数据库:内存竞争、i o 竞争、进程间竞争 应用:s q l 、索引、锁、存储管理 本节将介绍一种对基于o r a c l e 的应用系统非常有效的的性能优化方法。这 种方法从整个系统范围的视角来看待性能管理,不仅仅只是对数据库或者数据库 实例进行调整,决不提倡随意改变初始化参数、创建索引、以及简单地增加一些 h i n t 以改变查询语句的执行计划这类盲目尝试,而强调遵循一种从全局考虑的 整体性能优化方法论来对整个系统进行优化。 3 2 1 设置合理的性能优化目标 详细、合理、可量化的目标是有效进行系统性能优化的关键所在。大多数方 法论的主要缺点就是缺少对特定、合理并且可达的目标的设定,导致性能优化工 作缺乏计划性。没有一个合理的目标,就无法知道是否已经满足用户的期望值, 很有可能陷入无休止的反复进行性能优化的怪圈。 通过设定合理的性能优化目标,就可以明确知道系统哪些方面需要优化、如 何进行优化、什么时候开始优化,更重要的是,知道什么时候应该停止优化工作。 3 2 2 测量和记录当前系统的性能状况 达到既定目标的前提是了解系统现状,需要全面了解系统当前的性能状况。 首先需要了解系统的硬件配置情况,因为任何性能问题都是与系统所运行的 硬件平台密切相关的,同一个系统在不同的环境下体现出来的性能特征可能完全 不一样。 其次需要了解应用系统的业务特性。系统包含哪些系统功能;不同系统功能 的业务特征是怎样的;不同业务的运行时间分布情况,各类业务的负载周期,从 而推断支持业务运转的数据库的负载周期,找出系统可能发生性能问题的时段, 收集相应的性能数据。 接下来就需要收集各种与性能相关的统计信息。比较推荐的收集o r a c l e 中 的统计信息的方法是:在业务高峰期,每十五分钟一个快照。这对于是否能够找 出导致性能下降的进程或者程序,并在该进程或程序运行时收集到统计信息起着 非常关键的作用。 3 2 3 确定当前o r a c l e 的性能瓶颈 系统可能很慢,但是如果不知道用户进程到底在等待什么,那么在进行任何 调整时只能凭猜测。一旦熟悉了系统的等待事件,就能够正确地找到问题的症结 所在,从而有效地利用系统资源来优化那些被称为系统瓶颈的组件,而不会出现 1 7 北京邮电大学硕士研究生毕业论文 口网络监测系统中o r a c l e 数据库性能优化研究与实现 随意尝试这类盲目的优化操作。查找产生系统性能问题根源的关键是找出o r a c l e 在等待什么,而哪些s q l 语句是引起该等待事件的根源。从o r a c l e 的动态性能 视图v $ s y s t e m _ e v e n t 、v $ s e s s i o n _ e v e n t 和v $ s e s s i o n _ w a i t 中可以 找到大量的有用信息。 关于这几个视图的详细使用以及o r a c l e 的等待事件更详细的内容可以查阅 o r a c l e 参考手册。本文在进行性能瓶颈的分析时,虽然是借助了工具所提供的信 息,但实际上工具对信息的采集以及关联分析等也是基于上述的原理与过程。 3 2 4 确定当前的操作系统瓶颈 确定操作系统瓶颈,需要测量很多核心系统指标,包括c p u 使用情况、设 备使用情况、虚拟内存统计等。 在分析操作系统的统计数据时,需要把工作的注意力集中在与o r a c l e 相关 的问题上,有助于快速定位系统性能瓶颈。也就是说,当操作系统统计数据涉及 o r a c l e 时,应该着重分析它们。例如,如发现一个索引块或全表扫描与等待有关, 那么十有八九操作系统的统计数据也会显示出其相关事件“i 0 等待 。 3 2 5 优化产生性能瓶颈的相关组件 发现性能问题之后,千万不要急于进行优化,而应该首先仔细分析产生问题 的根源是什么,再去确定合适的优化方案并实施。换言之,所做的优化工作必须 能够消除系统中关键的等待事件,否则宁可不作任何操作。 一旦根据分析结果做了几个关键因素的调整,就可以进入下一步看看所 做更改的效果。 3 2 6 跟踪并实施更改控制过程 这里强调的是要详细记录对系统中每个组件的修改情况,通过实施恰当的更 改控制机制,以便跟踪所做更改的效果。这一点非常重要,如果能够这样做的话, 即使更改的效果与预期效果不同,至少还有一个更正的机会。因此在设定更改控 制过程前,不要试图做任何优化工作。换句话说,需要某种回退优化工作的办法, 避免象某些不可回退( 比如t r u n c a t e 某个表) 的操作那样不可恢复。 3 2 7 测量和记录当前系统的性能状况 这部分要做的工作实际上与第二步要做的事情基本相同,需要再次收集所有 的统计数据。应该在跟以前相同的时间范围内收集相关信息,否则没有可比性, 其目的是看看过去的问题是否现在还存在,如果存在的话,处于什么程度。比如 说,是否还象以前那样存在大量“重做空间等待请求 ,现在还有几个? 当然, 北京邮电大学硕士研究生毕业论文口网络监测系统中o r a c l e 数据库性能优化研究与实现 这些统计数据只是系统内部的一些信息,只能帮助我们诊断以前存在的问题是否 得到了解决,而不能回答“客户是否满意”这个最终的问题。通过比较最初定义 的优化目标,比如说看看某个具体的查询能否在所要求的时间内执行完,如果能, 就可以停止优化。如果不能,则需要进入下一步。 3 2 8 重复3 到7 ,直到性能优化的目标达到 由于优化是一个迭代过程,解决一个问题,很有可能会出现新的问题,在达 到性能优化目标之前,要有反复多次执行这个过程的思想准备。 3 2 9 总结 以上介绍的性能优化方法,实际上就是通过检测o r a c l e 、操作系统和应用程 序之间是如何进行交互的,真正了解系统的特性、局限性,从而精确地定位系统 的性能瓶颈,并以最小的代价获得尽可能多的性能方面的改善。为了解决系统的 性能问题,需要缓解系统中的性能瓶颈,而不能“头痛医头、脚痛医脚”。 这种方法的核心思想是基于等待事件的优化,而不是仅仅基于各种命中率, 关键是精确定位问题的根源。应用系统出现性能问题的原因主要是争用,通过解 决各种类型的资源争用,让应用系统保持最佳的运行方式。优化工作要遵循这样 一个过程:设立可达的目标、测量当前性能、经慎重考虑后进行更改、重新评估 并重复前几步,从而保证优化工作取得积极的进展。 3 3 o r a c l e 性能优化技术 本章第一节已经提到,基于o r a c l e 的应用系统的性能状况与多种因素有关, 因此o r a c l e 性能优化也需要从多方面入手。本节将从应用程序优化、o r a c l e 实例 优化、数据库优化、并行技术、内部争用优化和i 0 优化几个方面来介绍o r a c l e 优化技术。 3 3 1 应用程序优化 系统中8 0 的性能问题实际上与o r a c l e 数据库的配置无关,而是由于应用 程序中s q l 语句的拙劣设计和糟糕实现而引起。这一节主要从与s q l 执行效率 密切相关的几个方面来介绍应用程序优化技术,包括索引、查询多个表时用到的 连接方式、s q l 语句实现。 有效使用索引 索引是建立在表的一列或多个列上的辅助对象,有助于快速访问该表中的数 据。 1 9 北京邮电大学硕士研究生毕业论文i p 网络监测系统中o r a c l e 数据库性能优化研究与实现 由于索引本身的内在结构,存在某些必然的开销。创建索引时,需要占用磁 盘空间,被索引的列必须作为索引的一部分被重新生成,如果一个表中创建了多 个索引,索引使用的全部空间甚至有可能超过表本身使用的空间。此外,通过索 引实现查询操作的快速响应,是以牺牲增、删、改操作的执行效率为代价来换取 的。在进行插入、更新操作时,索引需要对插入的新行或已存在的行中索引列的 变化作出反应;而删除行时,必须花时间从索引中移走行记录。而为了把所做的 修改存储到索引数据结构里,还需要生成的额外的重做目志。 使用索引的目的是为了提高查询效率,减少i o 操作。因此,如果一个查询 在使用索引时相对于全表扫描而言,执行了更多的i o 操作,就会失去使用索引 的意义。 当使用索引时,应该注意以下原则: 只创建和使用最具选择性的索引。数据的选择性是行的不同键值的比率, 该比率越接近1 越好,建立该列的索引就越有意义。 使用组合索引时,索引列需要按照选择性的降序进行排序。 如果对于某个表的查询操作与增、删、改操作相比,要相对少一些,由 于在维护索引过程中还需要一些开销,因此建议不要建索引。 对于非常大的表,考虑利用表和索引的分区,因为大表容易导致o r a c l e s g a 的数据库缓冲区高速缓存中的空间消耗。 如果需要减少创建索引所花费的时间,可以在会话级更改参数 s o r ta r e as i z e 为一个较大值,使得创建该索引过程中发生的大多数 排序操作在内存中完成。 有效使用连接方法 当需要关联查询两个或多个表中的信息时,就会出现多个表的连接。选择正 确的连接机制和正确的索引可以提供相应操作的最好访问路径,从而对s q l 性 能产生最大的正面影响。o r a c l e 提供了三种连接方法:分类合并连接、嵌套循环 连接和散列连接。每种方法都具有不同的性能特性,并适用于不同的情况。 分类合并连接( s o r tm e r g ej o i n ) :这是一种集合操作,每一步必须在数据 可以传递给下一步之前完成,适用于索引不能用于查询的情况。 嵌套循环连接( n e s t e dl o o pj o i n ) :是一个行操作,通常是事务性处理的 首选连接方法。这种连接方法高度利用了索引,可以在完成上一步中的 所有操作之前将所处理的行从一个步骤发送给另一个步骤。嵌套循环连 接是o l t p 应用程序中常见而且很有效的连接操作。 散列连接( h a s hj o i n ) :几乎是使用被连接表的全表扫描来完成。o r a c l e 执行每个表上的全表扫描,并根据可使用的内存,将每个表分成多个散 北京邮电大学硕士研究生毕业论文m 网络监测系统中o r a c l e 数据库性能优化研究与实现 列分区。然后o r a c l e 遍历来自某个散列分区的一个散列表,使用另一个 表中的相应分区来试探该散列表。对于每对分区,o r a c l e 使用较小的一 个分区建立散列表,用较大的分区试探该散列表。不适合内存的所有分 区对则写入磁盘。散列连接对于大表的相互连接、小表与一个超大型表 的连接,以及w h e r e 子句判定超大型表的重要部分的处理非常有用。 即使在两个表上进行全表扫描会导致大量的i o 操作,但o r a c l e 用内存 中连接行的速度和内存与磁盘问交换行的速度补偿了这部分开销。 不同的s q l 语句应当选择恰当的连接方法来执行。大多数s q l 语句使用嵌 套循环连接运行效果最佳,但某些处理则适合于使用散列连接,例如在连接两个 或多个表时,如果w h e r e 子句的连接对是一个小表( 假设为1 0 0 0 行) 和一个 非常大的表( 假设为1 0 0 0 0 0 0 行) ,且w h e r e 子句的条件表明要处理一个大表 的主要部分,则散列连接是连接对的首选方法。 此外,还可以主动地确定s q l 语句使用嵌套循环、合并连接还是散列连接。 当需要进行三个或更多表的连接时,可以试着构造查询对第一个连接做最大可能 的消除,比如通过合并一个表中所有的w h e r e 子句的条件来完成。 使用有效的s q l 语句 要想使用更有效的s q l 语句,首先需要了解s q l 语句的执行过程。s q l 语 句的处理分为解析( p a r s e ) 、定义( d e f i n e ) 、绑定( b i n d ) 、执行( e x e c u t e ) 、取数据( f e t c h ) 几个阶段,其执行效率与各个阶段都有关系。 解析:服务器进程检查s q l 语句的语法,并完成s q l 执行的对象解析 和安全检查,建立分析树以及s q l 语句的执行计划。s q l 语句的解析方 法有两种:硬解析和软解析。硬解析表示在解析过程中,需要重新对s q l 语句进行分析,建立该s q l 语句的分析树和执行计划;而软解析则说明, 在解析阶段,服务器进程能够在共享池中找到一条匹配的s q l 语句,即 这条语句之前至少执行过一次,存在可重用的分析树和执行计划,无需 重新建立。 定义:在这个过程中,用户进程将和服务器进程交换s q l 语句中引用的 各个列的数据类型信息。 绑定:确定s q l 语句中引用的绑定变量值的所在。使用变量绑定对s q l 共享大有帮助,可以有效减少硬解析的次数。 执行:服务器进程按照执行计划,根据需要把数据块从文件中读入内存, 并在内存中处理数据( 针对增、删、改操作) 。 取数据:对于查询语句,这个阶段把相应的数据块读入数据库缓冲区高 速缓存,并把选择的行返回给用户进程。 2 1 北京邮电人学硕士研究生毕业论文i p 网络监测系统中o r a c l e 数据库性能优化研究与实现 解析过程优化 解析过程的优化关键是要减少硬解析的次数。硬解析需要占用大量的内部资 源,减少硬解析的数目能明显能够提高s q l 语句执行效率并改善性能。 索引扫描v s 全表扫描 判断一条s q l 语句是否优良,关键看该s q l 语句是否用最少的时间、最少 的物理i o 返回数据。查询时使用索引扫描还是全表扫描,对s q l 执行效率影 响较大。 当s q l 语句的w h e r e 子句条件在使用索引的情况下访问的数据块与执 行全表扫描时访问的数据块相比,还要更多一些时,不要使用索引,而 宁可使用全表扫描。 当s q l 语句的w h e r e 子句条件仅仅处理或返回表的很小一部分时,则 不应用全表扫描。可以通过使用i n d e x 提示或通过对该表创建相应的 索引来解决。 书写有效的s q l 语句的原则 可以批量完成的增、删、改操作不应该用循环方式进行。 不要在应用程序中使用子查询,子查询将对系统性能产生负面影响,消 耗大量的c p u 资源,容易导致c p u 瓶颈,而且还影响应用程序的伸缩 性。可以考虑使用连接方法来代替子查询,实在不行,也要考虑首先优 化子查询。 考虑将多个操作组合成一个操作来实现。只试图优化每个s q l 语句的响 应时间而不将精力集中在优化一批作业总的响应时间上,是没有计算和 资源管理意义的。 3 3 2 o r a c l e 实例优化 o r a c l e 实例( i n s t a n c e ) ,有的地方也称为o r a c l e 例程,是o r a c l e 后台进程和 内存结构的组合。本节在介绍o r a c l e 实例优化之前,首先简要介绍o r a c l e 内部 体系结构,然后再分别介绍o r a c l e 实例中的各个关键部件的优化技术。 o r a c l e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农学专业未来发展策略探讨
- 放鬆心情的假日旅遊
- 造纸原料采购管理规定
- 农业基础设施建设与农村基础设施完善
- 2025重庆市南岸区天文街道公益性岗位招聘笔试备考试题及答案解析
- 如何利用网络营销提升品牌知名度
- 克服学习焦虑的心理咨询细则
- 船舶燃油消耗总结
- 2025云南省腾冲出入境边防检查站执勤队口岸协管(检)员招聘含答案
- 纺织行业数字化转型规划
- 中建建筑工程竣工验收指南
- 初中数学教学经验分享
- 2024年新人教版部编一年级道德与法治教材解读
- 足球比赛-开幕式组织方案
- 电梯施工安全技术交底
- 安全围栏检修方案
- 我的家乡课件中班
- 2024永磁外转子 EC 风机系统技术条件
- 2024年下载客运从业资格证模拟考试题库
- 高职高考英语词汇表
- 2024年华东电力设计院限公司校园招聘高频考题难、易错点模拟试题(共500题)附带答案详解
评论
0/150
提交评论