(计算机科学与技术专业论文)数据库应用系统性能优化研究与实践.pdf_第1页
(计算机科学与技术专业论文)数据库应用系统性能优化研究与实践.pdf_第2页
(计算机科学与技术专业论文)数据库应用系统性能优化研究与实践.pdf_第3页
(计算机科学与技术专业论文)数据库应用系统性能优化研究与实践.pdf_第4页
(计算机科学与技术专业论文)数据库应用系统性能优化研究与实践.pdf_第5页
已阅读5页,还剩62页未读 继续免费阅读

(计算机科学与技术专业论文)数据库应用系统性能优化研究与实践.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,jjijff 独创性。或创新性,声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他 教育机构的学位或证书而使用过的材料。与我一同工作的i n 志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:j 二瑟j 日一 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保 留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借 阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在一年解密后适用本授权书。非保密论 文注释:本学位论文不属于保密范围,适用本授权书。 本人签名: 导师签名: 日期:速乜:三: 醐:乒卜 , t p - 数据库应用系统性能优化研究与实践 摘要 随着互联网应用和电信业务的不断发展,数据库的应用范围越来 越广泛,数据库规模不断的扩大,业务复杂程度的增加,系统的性能 问题越来越突出,因此对数据库性能优化变得十分重要。 o r a c l e 数据库是目前流行的关系数据库引擎之一,能够支持各种 业务形式、处理各种复杂事务,得到极为广泛的应用。某省联通财务 稽核系统就是基于o r a c l e 的应用系统,但由于应用系统的规模日趋 庞大、业务数据积累越来越多,联通业务更改复杂程度不断提高等原 因,系统的性能问题越来越突出:运行速度越来越慢,系统效率低下, 出现系统响应时间久,有时用户无法正常浏览网页,进行业务相关操 作,系统已无法满足业务支撑要求。本文根据财务稽核系统的运行状 况,结合o r a c l e 优化技术,对数据库性能问题进行深入分析,寻找 造成性能降低的各种因素。根据分析出的问题原因,从数据库存储规 划、数据库对象分区、s q l 语句、索引优化、存储过程等方面实施具 体的调优。对系统性能优化工作提升了数据库整体性能,解决了系统 出现的性能问题,系统运行稳定,业务处理及时高效,为联通的收入 保障提供了有力支撑。 关键词:性能优化,财务稽核系统,o r a c l e ,数据库 - , l r 山 缸 数据库应用系统性能优化研究与实践 摘要 随着互联网应用和电信业务的不断发展,数据库的应用范围越来 越广泛,数据库规模不断的扩大,业务复杂程度的增加,系统的性能 问题越来越突出,因此对数据库性能优化变得十分重要。 o r a c l e 数据库是目前流行的关系数据库引擎之一,能够支持各种 业务形式、处理各种复杂事务,得到极为广泛的应用。某省联通财务 稽核系统就是基于o r a c l e 的应用系统,但由于应用系统的规模日趋 庞大、业务数据积累越来越多,联通业务更改复杂程度不断提高等原 因,系统的性能问题越来越突出:运行速度越来越慢,系统效率低下, 出现系统响应时间久,有时用户无法正常浏览网页,进行业务相关操 作,系统已无法满足业务支撑要求。本文根据财务稽核系统的运行状 况,结合o r a c l e 优化技术,对数据库性能问题进行深入分析,寻找 造成性能降低的各种因素。根据分析出的问题原因,从数据库存储规 划、数据库对象分区、s q l 语句、索引优化、存储过程等方面实施具 体的调优。对系统性能优化工作提升了数据库整体性能,解决了系统 出现的性能问题,系统运行稳定,业务处理及时高效,为联通的收入 保障提供了有力支撑。 关键词:性能优化,财务稽核系统,o r a c l e ,数据库 , 、- i 吨 t 脏p e r f o r 姒n c eo p t i m i z a t i o na n dp r a c t i c e o fd a i 、a b a s ea p p l i c a t i o ns y s t e m a b s t r a c t w i t ht h e d e v e l o p m e n t o ft h ei n t e r n e t a p p l i c a t i o n s a n d e c o m m e r c e t h es c o p eo fa p p l i c a t i o no ft h ed a t a b a s ei sm o r ea n d m o r ee x t e n s i v e ,a n dt h es c a l eo ft h ed a t a b a s ea l s oi sc o n s t a n t l y e x p a n d i n g ,b u tt h es y s t e m sp e r f o r m a n c ep r o b l e mi sm o r ea n d m o r e p r o m i n e n t ,s ot od e s i g na ne a s yt om a i n t a i n ,h i g h l ye f f i c i e n t ,s t a b l e d a t a b a s ei si n c r e a s i n g l yi m p o r t a n t t h eo r a c l ew i t hi t se x c e l l e n tc o m p a t i b i l i t y , h i 曲a v a i l a b i l i t y , c o n c u r r e n c yc o n t r o l ,m a s s d a t a s t o r a g e a n d c o m p r e h e n s i v e m a n a g e m e n tt o o l sb e c o m e st h em o s tw i d e l yu s e do n ei nl a r g e d a t a b a s e s a n dt h eu n i c o mf m a n c i a la u d i ts y s t e mi s o r a c l e a p p l i c a t i o n s h o w e v e r , w i t h t h e a p p l i c a t i o ns y s t e m sl a r g e s c a l e i n c r e a s i n g ,b u s i n e s sd a t aa c c u m u l a t i n g ,m o r ea n dm o r eb u s i n e s s a p p l i c a t i o n sc h a n g i n ga n do t h e rr e a s o n s ,t h es y s t e mw a sg e t t i n g s l o w e ra n ds l o w e r , t h es y s t e mw a si n e m c i e n t ,s y s t e mr e s p o n s et i m e a p p e a r e dal o n gt i m e ,s o m e t i m e su s e r sc a nn o tb r o w s et h ew e b n o r m a l l ya n dc a r r i e do u tb u s i n e s s r e l a t e do p e r a t i o n s ,s ot h es y s t e m h a db e e nu n a b l et om e e tt 1 1 eu s e rr e q u i r e m e n t s t h i sp a p e ri sb a s e d o nt h ep e r f o r m a n c eo ft h es y s t e mo p e r a t i n gc o n d i t i o n s ,c o m b i n e d w i t ho r a c l eo p t i m i z a t i o nt e c h n i q u e sf o rd a t a b a s ep e r f o r m a n c et o f i n dt h e p e r f o r m a n c ed e g r a d a t i o n c a u s e db yv a r i o u sf a c t o r s a c c o r d i n gt ol o c a t eap e r f o r m a n c eb o t t l e n e c k ,f r o mt h ed a t a b a s e s t o r a g ep l a n n i n g ,d a t a b a s eo b j e c t sp a r t i t i o n ,s q ls t a t e m e n t ,i n d e x o p t i m i z a t i o n ,s t o r e dp r o c e d u r e sa n do t h e ra s p e c t st oi m p l e m e n t a t i o n o fs y s t e mp e r f o r m a n c et u n i n g f i n a l l yo p t i m i z a t i o nh a da c h i e v e d r e m a r k a b l er e s u l t sb ye n h a n c i n gt h eo v e r a l lp e r f o r m a n c eo ft h e d a t a b a s et os o l v et h es y s t e mp e r f o r m a n c ei s s u e st h a ta r o s e a n dt h e s y s t e mo p e r a t i o ni ss t a b l ea n db u s i n e s si sp r o c e s s i n ge f f i c i e n t l yt o s u p p o r tc h i n au n i c o m si n c o m es e c u r i t ys t r o n g l yn o w k e yw o r d s :p e r f o r m a n c eo p t i m i z a t i o n ,f i n a n c i a l a u d i t i n g s y s t e m s ,o r a c l e ,d a t a b a s e , f 目录 摘要i 目录v 第一章绪论1 1 1 研究背景l 1 2 研究目标和内容2 1 2 1 研究目标2 1 2 2 研究内容2 1 3 论文结构2 第二章数据库性能调优理论与技术4 2 1 性能调优概述4 2 2 性能调优衡量5 2 3 性能调优方法7 2 4 性能调优技术1 0 2 4 1o r a cie 内存调优1 0 2 4 2 磁盘i 0 调优。1 4 2 4 3 应用程序优化一1 6 2 5 小结2 l 第三章财务稽核系统2 2 3 1 财务稽核系统背景2 2 3 2 财务稽核系统架构2 2 3 3 财务稽核系统数据库2 6 3 3 1 数据库服务器配置2 6 3 3 2 数据库的结构环境2 6 3 4 ,j 、结2 7 第四章财务稽核系统数据库性能分析2 8 4 1 系统性能调优的需求2 8 4 1 1 当前系统数据库特点2 8 4 1 2 系统性能问题表现2 9 4 2 数据库性能的分析过程3 0 4 3 ,j 、结4 1 第五章财务稽核系统数据库性能调优的实施4 2 5 1 调优实施4 2 5 1 1 数据库内存调优4 2 5 1 2 表分区调优4 3 5 1 3 索引调优4 4 5 1 4s o l 优1 七4 6 5 1 5 使用存储过程4 8 5 2 系统调优效果4 9 5 3 小结4 9 第六章结束语51 参考文献5 3 致谢5 5 研究生阶段发表的论文5 6 数据库戍用系统性能优化研究与实践 1 1 研究背景 第一章绪论 数据库技术是计算机科学技术发展最快、应用最广泛的领域之一,在信息管 理自动化程度日益提高的今天,数据库技术已经成为现代计算机信息系统和应用 系统的基础和核心。数据库技术应用从传统的商务数据处理不断扩大到许多新的 领域,如电信行业、多媒体应用、商业管理等。要使这些领域中应用的信息系统 高效、正常、安全地运行,其中最为显著的就是数据库的性能问题,在网络应用 和电子商务高速发展的时代,信息系统在国民经济建设中担负着越来越重要的任 务,如何使有限的计算机系统资源充分发挥应有的作用,如何保证用户的响应速 度和服务质量,如何保证未来的某个时间保持现有的运行性能,这些问题都属于 数据库优化性能优化的范畴【l 】。数据库性能优化是一项涉及多个层面的复杂工作, 通过统一规划、系统分析做出相应的调整方法和措施,可以提高数据库的稳定性 和可用性,保障系统高效地运行,解决系统瓶颈,节约系统开销,具有良好的应 用价值。 随着数据库系统所涉业务不断发展,使用数据库的用户不断增加,用户处理 吞吐量大,网络通信繁忙,数据库海量存储的迅速增长,数据库系统的性能问题 也越来越突出,数据库应用系统能否正常、高效地运行倍受关注,如何充分利用 现有的软硬件资源,获得系统的最大吞吐量及数据处理能力已成为数据库应用系 统中的一个重要的研究课题。 本人在联通某省参加项目一年的时间里,负责联通财务稽核系统的二次开发 和维护,包括系统的维护,解决系统出现的各类问题,针对联通提出的新需求进 行开发等。在工作过程中遇到许多实际问题,其中重要问题是系统的性能问题一 一系统于2 0 0 3 年验收上线以来,随着多年来的数据量的不断扩大和业务更改,系 统运行速度越来越慢,系统效率低下,出现系统响应时间久,有时用户无法正常 浏览网页,进行业务相关操作,系统已无法满足业务支撑要求。虽然系统历经过 扩容,但主要针对硬件设备,而在数据库参数配置、s q l 应用处理等数据库方面 并没有根据业务规模、系统负荷进行相应的调整,从而制约了系统对硬件资源的 充分利用,造成系统整体性能低下。所以,分析财务稽核系统数据库性能瓶颈, 实施有效的数据库性能优化已是当务之急。本文的课题就是以本次优化财务稽核 系统数据库工作为核心开展的优化工作。 数据库应用系统性能优化研究与实践 1 2 研究目标和内容 1 2 1 研究目标 本文对“联通某省财务稽核系统随着多年来的数据量的不断扩大和业务更改, 系统运行速度越来越慢,系统效率低下,出现系统响应时间久,有时用户无法正 常浏览网页,进行相关业务操作等,系统已无法满足业务支撑要求性能问题, 结合现阶段财务稽核系统运行的实际特点,主要从数据库方面进行着手,对系统 数据库状况进行分析,结合系统运行情况定位影响数据库运行的各种因素,确定 优化方面,通过修改数据库内存,表设计和应用程序的优化等合理地对系统进行 优化,从而提高系统的响应时间和运行效率。对优化经验进行总结,使得在其他 类似o r a c l e 数据库应用系统有一定的借鉴意义和价值。 1 2 2 研究内容 本论文的研究内容主要包括: 学习掌握对基于数据库的应用系统进行性能优化相关理论知识,分析数据 库性能优化目标,以o r a c l e 数据库为基础,研究对数据库性能造成影响的各 种因素,及各种相应的调优技术。 研究财务稽核系统的软件体系结构和系统功能,以及财务稽核系统中数据 库的应用,分析该系统可能存在的性能问题。 针对现有财务稽核系统的数据库进行性能分析,总结系统中存在的主要性 能问题及原因,结合实际的数据库优化技术,对财务稽核系统数据库中的性能 问题进行优化,并检验优化效果,使系统响应速度快,处理效率高,保持系统 稳定,高效的运行。 1 3 论文结构 全文共分为六章。 第一章介绍了课题产生的背景和本文的研究目标和内容。 第二章主要讲述了o r a c l e 数据库系统性能优化方面的相关知识。介绍了影响 性能优化的基本概念,以及优化目标,优化步骤。详细讨论了o r a c l e 数据库系统 性能优化方面的各种技术包括o r a c l e 内存优化,磁盘i 0 优化,应用程序优化等。 第三章首先介绍了联通某省财务稽核系统的应用背景,接着描述系统的架构 2 数据库应用系统性能优化研究与实践 模块和各模块的主要功能,以及系统的数据库。 第四章根据财务稽核系统运行的现况,分析了财务稽核系统中的应用程序和 数据库当前存在的性能问题,以及造成这些问题的原因。 第五章根据分析出的系统性能存在的原因,结合所说的数据库优化的理论知 识,对财务稽核系统进行优化,并进行验证,优化后的数据库使用更加稳定,高 效。 第六章对整个研究工作做总结回顾,并提出对后续研究工作的展望。 数据库应用系统性能优化研究与实践 2 1 性能问题来源 第二章数据库性能调优理论 大多数数据库应用系统都会遇到性能问题,系统的性能问题最终表现在系统 的运行阶段,而引起性能问题的原因则可能发生在应用系统生命周期的任何阶段, 包括系统设计阶段、开发阶段、调试阶段和生产阶段。这些性能问题来源于许多 能够防止的原因。可以把这些问题分类如下: 体系结构问题 这是由有缺陷的系统设计或者数据库模型设计引起的。这些问题必然导致代 价较高的性能问题。过度规范化的数据库模型也会降低性能。 应用问题 消耗资源的不良查询会降低系统的性能。其他应用问题可能来源与设计不良 的用户界面、效率低下的批处理行为、数据生效不当或者其他产生不一致数据的 不当实现。 网络问题 它是由于系统生成的网络通信业务拥挤或者带宽不足,而不能满足处理正常 通信的要求造成的。网络配置和方法会对性能和网络的可用性产生重大影响。应 当重视的是,大多数网络问题都有带宽和通信业务限制。需要确定网络能够处理 期望的网络通信业务。 排序问题 它是由于发布了需要广泛排序的查询引起的。查询应当在内存中,而不是使 用临时磁盘空间来执行排序因为i 0 行程的消耗非常高,所以必须为最希望的排 序任务分配恰当的内存问题。 连接问题 性能问题可能是由于不恰当的连接管理引起的。例如,当数据库应用经常断 开连接再重新连接,而不是保持一个连续连接,直到应用终止。另外是应用使用 管理所有用户连接的中间层,但是由于连接池打开,等待处理客户请求,因而没 有正确地管理该连接。 4 数据库应用系统性能优化研究与实践 分配问题 错误分配表空间和不恰当的表大小会导致严重的i o 争用问题和磁盘的过度 读写,这对于数据库的操作和性能可能是代价昂贵的。 全表扫描问题 当数据库服务器扫描整个表以检索行时,会出现全表扫描问题。如果视图从 大型表中检索行而不使用索引,全表扫描会降低系统的性能。小型表的全表扫描 不会对性能产生负面影响。 分析问题 它是由于不恰当地定制内存大小,导致空间不足,无法缓存最常使用的查询 引起的。其他原因包括使用绑定变量不当,设置实例参数不当以及缺少保证代码 一致性的开发标准。 索引问题 通常情况下,创建索引是为了提高查询的性能。索引是迅速检索数据的机制。 如果索引在检索w h e r e 子句中使用的列时失败,那么数据库可能执行全表扫描。 但是依据表的大小、应用的类型和索引的类型,创建索引可能是一种性能负担。 存储参数问题 在o r a c l e 中创建对象时,需要为对象配置最佳空间分配的存储参数。这个规 范将减少导致存储浪费或者分配不足,并最终导致性能问题的过度分配。 基于上述的性能问题来源分析数据库应用系统,进行o r a c l e 数据库系统性能 的调整和优化。 数据库系统性能调优是一个从系统的分析、设计、编码、测试到运行维护不 断优化的过程。它主要包括调整和优化应用程序、v c e b 系统服务器、操作系统和网 络资源以及系统硬件配置等等妇1 。数据库系统性能调优是一个动态的过程。在系统 运行前,可以通过性能测试,对影响系统性能的各个初始化参数进行合理配置, 使系统在已有的软硬件环境下达到最大的吞吐量。随着系统的不断运行,系统的 性能很可能会不断下降,此时,必须利用各种诊断工具,找出系统瓶颈,并利用 各种优化策略对系统进行合理优化,使系统始终保持正常运行口1 。 2 2 性能调优衡量 数据库应用系统性能优化研究与实践 详细、合理、可量化的目标是有效进行数据库系统性能优化的关键所在,性 能目标必须是现实的而可行的。例如:在财务稽核系统中查询市级营业日报表想 要在几秒钟时间内,从数百千万行的表中,查询生成市级营业日报表。即使是使 用优化查询和高性能的硬件,也不太可能达到这个目标。因为这样的报表需要资 源和时间来处理数据的。 性能调整的目标必须根据以下事实标准来衡量。 数据库响应时间 用户在使用数据库时候,不应当遇到性能问题,这一点比较重要。查询响应 时间和应用响应时间应当是最佳的。要保证快速的响应时间,必须调整提交到数 据库的所有查询“1 。 数据库可用性 虽然这个因素与调整之间没有直接关系。但是要比较关注那些运行时间很长、 消耗高级资源的进程。这些进程的调整或者调度必须在不干扰数据库可用性的情 况下进行的。资源密集的进程对可用性和响应时间具有很大的影响。 c p u 利用率 应当监控数据库或者应用的进程,以确认那些大量消耗c p u 资源的进程,进 而调整或者删除它们。c p u 密集进程的数量应当减到最少。 内存利用率 内存中的缓存数据或者查询始终会提高数据库的性能。确定不必要使用内存, 而占用其他进程资源的查询。过度分配的内存也占用其他应用需要的内存资源。 磁盘系统颠簸或者分页 这会引起严重的数据库性能降低。大多数情况下,系统颠簸或者分页是由于 不恰当的数据库或者实例配置,或者是需要排序或者是读取大量数据的不良查询 引起的。系统颠簸或者分页的数据应当减少到最少障1 。 由读和写引起的过度的i o 与磁盘系统颠簸和分页相似,过度的i o 通常是由不明智的表空间或者表分 配、不正确的o r a c l e 块大小设置、不恰当的内存配置或者写入不当的查询引起的。 一般认同下表2 1 显示的平均响应时间,它可以作为不同应用类型的可接受时间 标准。 6 数据库应用系统性能优化研究与实践 表2 - 1 平均应用响应时间 应用类型的平均查询响应时间 w e b 应用( w e b )3 秒钟以内 联机事务应用( o l t p )1 秒钟以内 o l t p 和决策支持系统d s s 的组合 3 0 秒种以内 决策支持系统:数据仓库、报告和批处理6 0 秒钟以内 2 3 性能调优方法 当性能问题出现时,传统的方法主要是通过扩容解决问题,比如增加处理器 的处理能力、增加内存、扩充物理磁盘的数量、增加i o 通道是一些比较普遍的 做法1 。这些方法虽然可以暂时解决问题,但用不了多久性能问题还会再次出现。 通过扩容解决问题也是一种治标不治本的做法,在很多情况下,性能的瓶颈 在于应用程序和s q l 语句,使用了正确索引的s q l 和没有使用索引的s q l 运行 效率能够相差几万倍,而扩容只能带来几倍的效率提高。 数据库性能管理方法可以简单地概括为:发现、诊断、解决。它包括管理员 发现性能问题、精确地查找问题的根源和解决问题的所有步骤【7 】。 ( 1 ) 发现问题 优化的首要任务是确定系统环境中发生了哪些问题。这可以通过性能指标的 收集和门限值的比较来实现。数据库系统优化一般需要收集以下数据【8 】。 1 ) 操作系统数据:操作系统资源使用数据包括内存、c p u 和i o 使用等等。 数据收集可以通过监控工具或操作系统指令来实现,需要收集下列数据: i o :磁盘时间,磁盘读秒,磁盘写秒,磁盘队列,文件系统空间使用 c p u :忙时处理器使用的百分比,中断 内存:可用内存,每秒页交换,s w a p 时间,队列 网络冲突:网络使用 s q l 数据:s q l 性能收集需要在最小的时间间隔捕获s g a 信息。需要收集 的信息包括:s q l 本文、操作系统用户、o r a c l e 用户、运行程序、逻辑读、物理 读、c p u 等等。 7 数据库应用系统性能优化研究与实践 2 ) 数据库实例:与数据库相关的性能数据可以通过访问o r a c l e 的v $ 视图来 实现。重要的指标如下: s q l * n e t 统计:活动用户,活动会话,平均响应时间 s g a :s h a r e dp o o l 使用,b u f f e rc a c h e 使用和命中率,k e e pp o o l 和r e c y c l ep o o l 使用,r e d ol o g b u f f e r 使用,排序 i o :i o 事件,等待事件,r e d ol o g 统计,数据库对象和文件增长,锁,l a t c h 日志:报警日志信息 这些信息需要在出现问题时即时收集,也需要定期收集并将结果保存起来。 历史数据和实时数据为诊断问题和最终解决问题提供了依据。信息的收集可以通 过运行脚本并记录运行结果来获得,也可以使用相应的管理工具。 ( 2 ) 诊断问题 诊断问题是性能优化中的非常重要的一部分。它将帮助了解一些细节问题, 从而确定为什么性能指标会超过门限值。这个阶段的工作比发现问题更加困难。 因为需要了解数据库每个组件的作用以及如何影响其他组件。在诊断数据库瓶颈 时需要考虑的因素包括【8 】: 内存:排序,内存使用和分配,s g a 详细信息 c a c h i n g :l i b r a r yc a c h e ,d i c t i o n a r yc a c h e ,b u f f e rc a c h e 命中率 磁盘:排序,读,写 o r a c l e 等待信息:会话等待事件 空间管理:空间分配,空间使用和可用性,e x t e n t 信息,数据库对象分配和 使用,索引。 会话信息:会话s q l ,会话活动 r e d ol o g s :大小和数量 关联上述信息非常消耗时间,下面概略说明诊断的三个主要类别: 诊断s q l 问题 诊断s q l 问题有许多方法。v $ s q l 视图中存储了所有内存中的s q l 语句信 息,可以从中找到消耗大部分b u f f e r g e t s e x e c u t i o n 很高的s q l 语句,然后检查这 些s q l 的执行计划和相关的分析统计信息,诊断是否存在s q l 方面的问题。 诊断争用 诊断争用问题可以从检查$ s y s t e m _ e v e n t 表开始。根据等待事件的等待时间, 数据库应用系统性能优化研究与实践 确定系统是否在某一方面存在争用。调查这个表的信息时应该排除空间事件,如 i o 等待,然后计算其他等待事件的时间,并进行有针对性的调整。 诊断i o 问题 如果已经对s q l 进行优化,数据库逻辑i o 比较正常但物理i o 很多,这表 明需要减少磁盘读的i o 。优化工作首先要识别哪些磁盘较忙,具体数据可以通过 管理工具、o r a c l e 的动态视图获得,识别过热的磁盘后,可以将相关的文件和数 据库对象转移到其他磁盘中。 ( 3 ) 解决问题 发现问题和诊断问题最终是为了解决问题。针对影响性能问题的不同侧面, 解决问题可能包括操作系统优化,数据库参数配置,数据库碎片重组,s q l 优化 等等: 操作系统优化 c p u :可用的c p u 资源和运行队列的大小对数据库的性能非常重要。如果这 些指标存在问题,需要优化s q l 或增加处理器的能力。 内存:内存大小和配置将会影响s q l 的性能,尤其对于数据缓存和内存排序 操作。额外的专用内存会在一定成度上改进性能。 网络:大量的o r a c l e 网络交通将影响s q l 性能,需要适当地进行监控和管 理。 i o :数据库对象访问和这些数据库对象的位置与磁盘设备的使用有很大的关 系。r a i d 技术将会有助于平衡f o 。i o 问题可以通过正确配置数据文件,操作 系统来解决问题。 数据库优化 初始参数设置:o r a c l e 的i n i t o r a 文件包括很多可调整的参数。根据应用类 型和数据库使用情况需要进行适当地调整。 空间管理:数据库碎片重组可以消除e x t e n t 碎片,合并链接的数据行,重新 构造f r e e l i s t 链,改变数据库对象参数和大小。这些操作可以减少i o ,增加s q l 的效率,从而提高o r a c l e 数据库的性能。 i o 优化:优化i o 主要通过正确配置d a t ab u f f e r 、k e e pp o o l 和r e c y c l ep o o l 来实现,也可以通过数据库的物理结构设计将i o 操作进行均衡的分布。 s q l 优化 9 数据库应用系统性能优化研究与实践 s q l 优化:在返回结果相同的情况下,重写s q l 或改变s q l 访问路径会极 大地提高s q l 语句的性能。 索引优化:包含识别全表扫描,可以改进的索引和不使用的索引。在需要的 地方增加索引可以减少访问大的数据库对象的时间。 数据库对象配置:o r a c l e 提供很多配置方法来提高性能,如分布数据库对象 的位置、表空间使用、空间参数、表的分析操作等等。 在数据库优化的同时需要考虑对操作系统的优化,在着手进行数据库优化前 一定要排除所有的操作系统因素。一旦准备好优化数据库或个别的s q l 语句,需 要列出所有可能增加性能的地方,然后按照他们可能的效果进行排序,以便用最 快的速度达到优化目标。 2 4 性能调优技术 2 4 1o r a o ie 内存调优 o r a c l e 的信息存储在内存和磁盘上,由于访问内存比访问磁盘快得多,因此 若能把尽可能多的数据存放在内存中,就可以达到加快执行速度、缩短响应时间、 减少磁盘i 0 等目的。系统分配给o r a c l e 的内存空间是有限的,如何正确调整 o r a c l e 内存分配,对系统性能的优劣起很大的作用。 ( 1 ) o r a c l e 结构介绍 1 0 数据库应用系统性能优化研究与实践 o r a c l e 实例管理 厂 s g a 、 f 共事池 】 s 弧a 粥涎】【 大型浊 】 、l鑫潍1 l 臣;蝉缓扑竺零蔓 一i 一 1 。一 i 系统送援魔蕊矿 汰l ( l g 矗w r 碉) ;篮税貔篮褫嚣 i 孽遂援 ( s m o n l p m o n ) l(dbw鏊 r 蹇元季i 焉落禹 图2 - 2o r a c l e 结构 如上图2 2 ,o r a c l e 结构分成逻辑( 或内存) 结构和物理( 或文件) 结构这两 个主要范畴。内存结构称为o r a c l e 实例,由s g a ( s y s t e mg l o b a la r e a ) 和一些必 须的o r a c l e 后台进程所组成。物理结构可称为数据库文件【9 】。 系统全局区( s g a :s y s t e mg l o b a la r e a ) s g a 是一个基本固定的空间,用于o r a c l e 系统的可执行代码;s g a 是一个 被用户共享的内存区。s g a 是o r a c l e 数据库的心脏,是对数据库数据进行快速访 问的一个系统全局区,由所有的服务器和客户进程共享。o r a c l e 中,s g a 主要由 共享池、缓冲区高速缓存、重做日志缓冲区、大型存储区构成【1 0 1 。 1 ) 共享池( s h a r e dp 0 0 1 ) 共享池主要用来存放s q l 、p l s q l 、过程和包、数据字典锁和字符设置信息、 安全属性等。它主要包括库高速缓存( l i b r a r yc a c h e ) 和数据字典高速缓存( d a t a d i c t i o n a r yc a c h e ) 。 库高速缓存用来存储己经提交给o r a c l e 的s q l 语句、分析过的格式和执行 计划,以及被执行过的p l s q l 包头与过程j a v a 的类。使用库高速缓存可以提高 s q l 语句的执行效率。 数据字典高速缓存用于存储分析s q l 语句的数据字典行。字典高速缓存包含 数据库应用系统性能优化研究与实践 用来分析s q l 语句所要使用到的数据字典信息,它还包含有用户访问权限、安全 性等信息。 共享存储区的大小主要由参数s h a r e dp o o ls i z e 来决定。必须把它设置 得足够大,以确保有足够的空间来存储s q l 语句和p l s q l 块。 2 ) 缓冲区高速缓存( d a t ab u f f e rc a c h e ) o r a c l e 用户进程所需的所有数据都经过缓冲区高速缓存存取,包括最近从磁 盘读取的数据块和尚未存入磁盘的修改数据。任何文件的数据块都有可能被缓冲 在这里。数据库把文件里的内容读到内存中,下次需要时直接从内存中读取,从 而减少磁盘i o 和响应时间。 缓冲区高速缓存的大小由d bc a c h es i z e 参数来决定的。 3 ) 重做日志缓冲区( r e d ol o gb u f f e r ) 重做日志缓冲区是一段可以重复使用的内存区域,重做日志缓冲区用于在内 存中存储己经被修改的数据库信息。为了完成一个事务,系统必须将操作信息写 入到重做日志缓冲区中,在将重做信息写入做重做日志之前,数据库实例的任何 故障都可能导致数据库丢失这个事务。为了避免这种情况的发生,在重做日志没 有被完全写入重做日志之前,不应当结束c o m m i t 命令。 重做日志缓冲区的大小由l o gb u f f e r 初始化参数决定。它决定了在内存 中保留多大的空间存储重做日志信息。 4 ) 大型存储区( l a r g ep 0 0 1 ) 共享服务器将大型存储区的分配堆用作会话内存,通过并行执行将它用作消 息缓冲区,通过备份将它用作磁盘i o 缓冲区。 大型存储区的大小通过l a g e rp o o ls i z e 参数来设定。 后台进程 后台进程独立于用户连接,代表所有用户执行实例和数据库上的操作,执行 写数据文件、恢复数据库、处理错误等操作。 数据库文件 数据库中包括数据文件、控制文件和重做日志文件,属于o r a c l e 服务器的固 定性构件。数据库文件为数据库信息提供实际的物理存储,用于确保数据一致性, 以及数据库能够在实例失败的事件中得以恢复。 ( 2 ) 数据库内存优化 1 2 数据库应用系统性能优化研究与实践 o r a c l e 数据库内存优化主要通过调整s g a 内存结构的大小来提高系统性能, 其中共享池和缓冲区高速缓存是s g a 两个最重要的优化区域。 优化共享池 共享池中存放的信息是应用程序需要经常访问的s q l ,如果用户要求执行的 s q l 语句正好驻留在共享池中,则不需要去磁盘读取数据对象结构解析s q l 语句 的准确性,这称之为共享池命中;通过确保大多数语句能够在共享池中查找到它 们自己的一个已分析版本,就可以提高语句分析和执行的效率,降低资源消耗。 因此需要保持这些信息的高命中率【1 0 1 。共享池大小是否合适,主要体现在库缓冲 区( l i b r a r yc a c h e ) 和数据字典高速缓冲区( d a t ad i c t i o n a r yc a c h e ) 的命中率上。 o r a c l e 提供v $ 1 i b r a r y c a c h e 视图可以分析l i b r a r yc a c h e 命中率,正常情况下 应该在9 0 以上,否则需要调整s h a r e d p o o l s i z e 增加s h a r e dp o o l 的大小。 o r a c l e 提供通过v $ r o w c a c h e 视图可以分析d a t ad i c t i o n a r yc a c h e 命中率,正 常情况下应该是9 0 以上,否则需要增加s h a r e dp o o l 的大小。 优化缓冲区高速缓存 数据高速缓存( d a t ab u f f e rc a c h e ) 是用于缓存数据库数据的内存区域。如果 执行s q l 语句所查询的数据存在于数据高速缓存中,则不需要从磁盘数据文件中 去读取b l o c k ,称之为数据高速缓存命中。从内存读数据和从磁盘读数据,在访问 速度上是指数级的差别,缓冲区高速缓存越大,o r a c l e 从内存读的数据就越多, 磁盘的i o 就越少,系统性能就越好。因此缓冲区高速缓存的命中率,对性能至 关重要。 o r a c l e 提供通过v $ s y s s t a t 视图中的“d bb l o c kg e t s 、“p h y s i c a lr e a d s 项, 可以对命中率进行分析,一般应该在9 0 以上,否则需要通过调整 d bc a c h es i z e 来增加d a t ab u f f e rc a c h e 大小。 调整重做日志缓冲区 重做日志缓冲区如果分配太小,会导致没有足够的空间来放重做日志而等待, l g w r 进程会频繁将l o g b u f f e r 中的数据写入磁盘增加i o 的次数,影响系统 性能。重做日志的任何瓶颈都可能导致系统中所有进程的性能问题,为了确保系 统不会发生这类情况,应该随时监控重做日志的竞争情况。 通过o r a c l e 的动态性能视图v s s y s s t a t ,可以观察重做日志缓冲区的工作情况: 数据库应用系统性能优化研究与实践 s e l e c tn a m e ,v a l u ef r o mv $ s y s s t a tw h e r en a m e = - r e d ob u f i e ra l l o c a t i o nr e t r i d s “r e d o b u f f e r a l l o c a t i o nr e t r i d s ”表示进程申请写入重做日志缓冲区失败后的重 试次数,正常情况下应该为0 ,否则应该调整l o gb u f f e r 参数增加缓冲区的大 小。 2 4 2 磁盘i 0 调优 对于数据库系统来说,磁盘i o 操作是数据库性能最重要的方面,它是计算 机最大的开销,是要求计算机做的最有价值的任务之一。为了避免与i o 相关的 性能瓶颈,监控磁盘i o 并保持其优化非常重要。影响磁盘i o 性能的主要原因有 磁盘竞争、i o 次数过多和数据块空间的分配管理等。 ( 1 ) 数据库的合理布局 如果数据库的布局不合理,i o 性能可能成为整个应用系统的瓶颈。数据库 最佳布局的核心就是要消除数据库中的i o 瓶颈和热点,也就是说,不能把并发 访问的多个对象存储在相同的存储设备中。 s q l 语句在执行过程中,需要频繁与i o 系统打交道。当s q l 语句利用一个 索引进行查询时,将根据w h e r e 子句中引用的索引列的值,将索引的一个或多 个块读入数据库缓冲区高速缓存,然后使用与搜索的值相匹配的行标识从相应的 表的特定块中读出数据。i o 请求的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论