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

(计算机应用技术专业论文)大型应用系统中数据库性能优化的研究.pdf.pdf 免费下载

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

文档简介

武汉理工大学硕士学位论文 摘要 网络信息采集系统中数据库的应用越来越广泛,数据量越来越大,数据处 理越来越复杂,对数据库性能的要求也越来越高。如何充分利用现有软硬件资 源,获得最大的数据处理能力已成为大型数据库应用系统中的一个重要的课题。 本文的主要工作是研究如何优化大型数据库应用系统的性能。数据库应用系统 的性能优化工作非常复杂,其内容覆盖了操作系统、应用程序、数据库和网络 等等。因此,在系统优化的过程中需要综合考虑所有可能的因素。 w e b 服务器系统和数据库服务器系统是否合理配置及优化是导致性能问题 的主要原因,本文介绍了如何通过对应用系统和数据库系统的测试,发现和诊 断数据库应用系统中存在的性能闯题,并详细分析了这些问题对性能的影响。 o r a c l e 数据库优化内容复杂,主要包括内存优化、i o 优化和数据库对象优 化等等。应用程序优化主要包括代码的优化、如何使用数据库连接池和s q l 语 句优化等几个重要方面。高效的数据库连接池可以使应用程序与数据库之间的 数据交换更加平稳和高效,减少系统的响应时间。s q l 语句优化同样可以减少 系统响应时间、提高c p u 的利用率、减少内存和i o 等系统资源的开销。 普通高校招生网上填报志愿系统以数据量大、数据安全需求高和访问集中 等特点著称。本文以普通高校招生网上填报志愿系统为例,从o r a c l e 数据库的 内存优化、磁盘i o 的优化、查询方法的优化和数据库连接池的优化等几个方面 进行了具体的讨论和分析,为大型数据库应用系统优化提供了一个可参考的方 法。 另外,根据系统的特殊要求,编写了适合系统的测试程序并利用编写的测 试程序和j m e t e r 测试工具对优化的查询方法和优化的数据库连接池进行的性能 测试。通过测试发现,优化过的系统在性能上有很大的提高,满足了系统的要 求。 关键词:数据库,性能调整,s q l ,性能测试,优化 武汉理工大学硕士学位论文 a b s t r a c t d a t a b a s ei sw i d e l yu s e di nn e t w o r ki n f o r m a t i o ng a t h e r i n gs y s t e m t h ed a t a v o l u m ei sm u c hb i g g e r t h ed a t ap r o c e s si sm o r ec o m p l e xa n dt h er e q u i r e m e n to ft h e d a t a b a s ep e r f o r m a n c ei sg e t t i n gh i g h e rt h a nb e f o r e h o wt ot a k ef u l la d v a n t a g eo ft h e h a r d w a r ea n ds o f t w a r er e s o u r c et oi m p r o v et h ed a t a b a s ep e r f o r m a n c eb e c o m e sah o t t o p i c h o wt oo p t i m i z et h ep e r f o r m a n c eo fd a t a b a s ea p p l i c a t i o ns y s t e mi sm a i n l y d i s c u s s e di nt h i st h e s i s t h ew o r ko fp e r f o r m a n c eo p t i m i z a t i o no fd a t a b a s e a p p l i c a t i o ns y s t e mi se x t r e m e l yc o m p l e x i ti n c l u d e sm a i n l yo p e r a t i n gs y s t e m , a p p l i c a t i o np r o c e d u r e ,a n dd a t a b a s e ,n e t w o r ko p t i m i z a t i o na n ds oo n t h e r e f o r e ,w e n e e dt oc o n s i d e ra l lt h ep o s s i b l ef a c t o r sc o m p r e h e n s i v e l yi nt h es y s t e mo p t i m i z a t i o n p r o c e s s t h e p r i m a r y c a u s eo ft h e p e r f o r m a n c eq u e s t i o n i sw h e t h e rr e a s o n a b l e o p t i m i z a t i o nf o rw e bs e r v e ra n dt h ed a t a b a s es e r v e rs y s t e m h o wt od i s c o v e ra n d d i a g n o s et h ep e r f o r m a n c eq u e s t i o no fd a t a b a s ea p p l i c a t i o ns y s t e mb yt e s t i n gt h e a p p l i c a t i o na n dt h ed a t a b a s es y s t e mi si n t r o d u c e di nt h et h e s i s , a n dw ea n a l y z et h e p e r f o r m a n c ee f f e c tm a d eb yt h e s eq u e s t i o n si nd e t a i l t h ec o n t e n to fo r a c l ed a t a b a s eo p t i m i z a t i o ni sc o m p l e x i tm a i n l yi n c l u d e st h e m e m o r yo p t i m i z a t i o n ,i 0o p t i m i z a t i o n ,a n dd a t a b a s eo b j e c t so p t i m i z a t i o na n ds oo n t h ea p p l i c a t i o np r o g r a mo p t i m i z a t i o nm a i n l yi n c l u d e ss e v e r a li m p o r t a n ta s p e c t s , c o d eo p t i m i z a t i o n ,h o wt ou s et h ed a t a b a s ec o n n e c t i o np o o la n dt oo p t i m i z et h es q l s e n t e n c e t h eh i g h l ye f f e c t i v ed a t a b a s ec o n n e c t i o np o o lm a k e sd a t ae x c h a n g e b e t w e e nt h ea p p l i c a t i o np r o c e d u r ea n dt h ed a t a b a s es t e a d i e ra n dm o r ee f f e c t i v e ,a n d r e d u c e st h er e s p o n s et i m eo ft h es y s t e m t h es o ls e n t e n c eo p t i m i z e sm a yr e d u c et h e s y s t e mr e s p o n s et i m e ,e n h a n c et h eu t i l i z a t i o nr a t i oo ft h ec p u a n dr e d u c et h ee x p e n s e o ft h es y s t e mr e s o u r c e s ( m e m o r y , i 0a n ds oo n ) c o l l e g ee n r o l l m e n tn e t w o r kg a t h e d n gv o l u n t a r ys y s t e mi sw e l lk n o w nf o rt h e l a r g es c a l ed a t av o l u m e ,t h eh i g hr e q u i r e m e n tf o rd a t as e c u r i t y ,c e n t r a l i z e da c c e s sa n d s of o r t h t h i sp a p e rt a k e sc o l l e g ee m o l l m e n tn e t w o r kg a t h e r i n gv o l u n t a r ys y s t e m f o re x a m p l e ,f o c u s e so no r a c l ed a t a b a s em e m o r yo p t i m i z a t i o n ,d i s ko p t i m i z a t i o n , i n q u i r ym e t h o do p t i m i z a t i o na n dt h ed a t a b a s ec o n n e c t i o np o o lo p t i m i z a t i o n ,a n d 武汉理工大学硕士学位论文 p r o v i d e sag o o dr e f e r e n c ef o rt h eo p t i m i z a t i o no ft h el a r g es c a l ed a t a b a s ea p p l i c a t i o n s y s t e m i na d d i t i o n , a c c o r d i n gt ot h es p e c i a lr e q u i r e m e n to fs y s t e m ,w ec o m p l e t et h e t e s tp r o c e d u r ef o rt h es y s t e m ,a n dt e s tt h ei n q u i r ym e t h o do p t i m i z e da n dt h ed a t a b a s e c o n n e c t i o np o o lo p t i m i z e db yu t i l i z i n gt h et e s tp r o c e d u r ea n dt h ej m e t e r b yt e s t i n g , w ek n o wt h a tt h es y s t e mo p t i m i z e di m p r o v e st h ep e r f o r m a n c ea n dm e e tt h es y s t e m r e q u i r e m e n t k e yw o r d s :d a t a b a s e ,p e r f o r m a n c et u n i n g , s q l ,p e r f o r m a n c et e s t ,o p t i m i z a t i o n i i i 武汉理工大学硕士学位论文 1 1 课题背景 第1 章绪论 当前各种大型的数据库应用系统中,数据量越来越大,数据处理越来越复 杂,对数据库安全和性能的要求也越来越高。如何充分利用现有的软硬件资源, 获得系统的最大吞吐量及数据处理能力已成为数据库应用系统中的一个重要的 研究课题。数据库系统性能的好坏主要通过响应时间和吞吐量来衡量,响应越 快,吞吐量越大,系统性能就越好。 在很多大型的数据信息采集系统中,在规定时间内采集的数据量大,用户 与系统的交互时间短,存在对系统的爆炸性访问,同时对数据库海量数据的读 写。因此,优化和调整数据库应用系统的性能,使整个数据库应用系统满足以 上要求显得非常重要。 论文以普通高考招生网上填报志愿系统的要求,在规定时间内完成对考生 志愿信息的采集,并必须确保数据的安全和正确。在已有的软硬件环境下,通 过对系统的压力测试和数据库的性能测试,合理的调整和优化整个系统,使系 统尽可能地达到所需要求的状态。 1 2 本文研究的内容 ( 1 ) d b m s 的性能调整与优化策略 全面阐述了o r a c l e 数据库性能调整的基础知识和优化策略。其主要内容包 括初始化参数( i n i t o r a ) 的调整、内存的优化、磁盘i o 的优化和数据库对 象的优化等等。 ( 2 ) 应用程序的优化 分析了j 2 e e 在w e b 应用系统开发中的优化相关技术。其主要内容包括j a v a 多线程技术、j a v a 异常处理技术和j a v a 内存回收技术等等。另外,还探讨了 s q l 语句在应用程序使用中的优化技巧。 ( 3 ) 操作系统的优化 武汉理工大学硕士学位论文 操作系统优化包括w e b 服务器( w e bs e r v e r ) 上的操作系统优化和数据库 服务器( d bs e r v e r ) 上的操作系统优化。本文主要阐述了数据库服务器上的操 作系统w i n d o w sn t 的优化策略。 ( 4 ) 网络的优化 网络的优化主要包括用户到w e b 服务器的网络优化和w e b 服务器到数据库 服务器的网络优化。本文分析了网络优化的基本原理及优化策略。 ( 5 ) w e b 服务器的优化 阐述了优化w e b 服务器的重要性和优化策略。通过利用w e b 服务器的群集 与负载均衡技术大大提高系统性能,减少系统成本。 ( 6 ) w e b 性能测试 全面阐述w e b 性能测试的一些基础知识。对系统的每个模块进行强力测试, 找出系统瓶颈并给出有效的解决办法。 ( 7 ) 案例分析 通过实际的优化案例,说明优化的具体过程和实现结果,为大型o r a c l e 数 据应用系统的优化提供一个可参考的模型。 1 3 研究现状及意义 近年来,针对基于数据库应用系统遇到的问题和数据库w e b 应用的需求, 国内外研究机构、公司提出来许多数据库性能调整的理论、原型和商用系统。 有的研究机构提出了一种基于w e b 数据库系统设计,实现性能调优新方法。该 方法包括r d b m s 配置优化、应用模式设计优化和编程优化等等。通过内存、分 段、磁盘参数和时阅相关参数的优化可设置一个好的r d b m s 运行环境。在编程 时,通过减少与后台连接和断开操作,建立和使用索引,多用存储过程和优化 s q l 语句可以优化系统性。也有研究提到应用系统的开发不仅以追求系统性能为 主要目的,应强调功能的完整性、系统结构的清晰并具有良好的可扩展性和可 维护性,同时兼顾快速的系统响应速度。但是,针对基于b s 模式的大型数据 库应用系统的优化策略还没有形成一整套通用的方案,特别是对于一些特殊的 w e b 数据库应用系统。 普通高考招生网上填报志愿系统是利用i n t c r n c t 技术,来取代手工填报志愿 的传统方式。网上填报志愿除了要求良好的网络性能,安全的网络环境,还要 2 武汉理工大学硕士学位论文 求稳定、高效的数据库服务系统。要求系统能够达到在同一时刻响应成千上万 人对数据库的查询和读写。因此,对数据库应用系统的性能优化是一个非常关 键的问题。 通过对数据库应用系统的性能调整和优化,可以达到: ( 1 ) 提高w e b 服务器对客户的响应时间,满足在短的规定时间内同时响应 上万入对w e b 服务器的请求; ( 2 ) 满足在规定时间内对数据库服务器的正常读写,保证数据库服务器的 稳定运行: ( 3 ) 减少w e b 服务器和数据库服务器的硬件套数,降低整个系统成本; ( 4 ) 整理形成一套有效优化的策略,为以后作进一步的系统优化提供方法。 对全国各省的普通高考网上填报志愿系统的全面实施,从而实现志愿信息的完 全自由的网上采集目标,为所有考生提供一个公平、参与度高的招生平台等招 生工作而言都具有较大的现实意义,同时也具有较大的社会效益和经济价值。 1 4d b m s 的选择及介绍 作为数据库厂商,o r a c l e 数据库获得了诸多成功应用,据统计,全球9 3 的上市o o m 公司、6 5 家“财富全球1 0 0 强”企业都采用o r a c l e 数据库来开展电 子商务 t l 。我国很多企业、政府单位及电子商务网站也用了o r a c l e 作为数据库 服务器。 o r a c l e 数据库服务器是高度可优化的软件产品,必须经常性的调整和优化其 性能,以防止出现系统瓶颈。目前,全国各省高考志愿信息数据量大,采集时 间受到限制,并且对数据的操作频繁,采用o r a c l e 9 i 数据库是最好的选择。 在普通高考招生系统中,全国各省都统一采用o r a c l e 数据库。因此,在采 集志愿系统中采用o r a c l e 数据库不但利于数据的迁移和操作,也利于各省招办 数据库管理员对数据库的管理,从而提高工作效率。 1 5 课题研究的主要步骤 ( 1 ) 明确本文研究的主要内容 本文研究的主要内容是如何优化b s 模式下的数据库应用系统的整体性 3 武汉理工大学硕士学位论文 能,影响系统性能的因素很多,可利用各种性能测试工具和诊断工具找出性能 瓶颈,并采用合理的优化策略对其进行优化,提高系统的整体性能。 ( 2 ) 熟悉数据库性能指标评价体系 在8 s 模式下的数据库应用系统中,数据库的性能优劣直接影响到整个系 统性能。熟悉数据库性能指标评价体系是优化数据库性能的前提条件。 ( 3 ) 熟悉数据库优化策略 o r a c l e 数据库体系庞大,除了能正确使用数据库外,还要熟悉其优化技和策 略,并随时根据系统的运行状况进行调整与优化,使数据库的性能始终保持在 一个较高的水平。 ( 4 ) 熟e b 性能测试体系并完成系统的性能测试 一个w e b 应用系统的整体性能如何,吞吐量多大,都必须通过性能测试才 能发现。通过对系统的性能测试,可以找出系统瓶颈,并且可以知道系统性能 是否达到客户需求。 ( 5 ) 找出系统瓶颈并完成数据库应用系统的优化和调整 通过性能测试之后,就可利用各种优化策略,优化整个系统的性能,从而 减少系统的响应时间及提高系统的吞吐量。 4 武汉理工大学硕士学位论文 第2 章数据库应用系统性能调整与优化综述 2 1 性能调整和优化的概念 数据库应用系统性能调整和优化是一迭代过程,从系统的开发、测试到运 行不断优化的过程。它主要包括调整和优化硬件配置、应用程序、w e b 服务器、 数据库管理系统、操作系统和网络资源等等。通过调整和优化可以提升整个数 据库应用系统的性能,使整个系统达到理想的运行效果,从而降低系统开发所 需成本。 系统的性能调整和优化是一个动态的过程。在系统运行前,可以通过性能 测试,对影响系统性能的各个初始化参数进行合理配置,使系统在已有的软硬 件环境下达到最大的吞吐量。随着系统的不断运行,系统的性能很可能会不断 下降,此时,必须利用各种诊断工具,找出系统瓶颈,并利用各种优化策略对 系统进行合理优化,系统始终保持正常运行。 2 2 性能调整和优化的目标 ( 1 ) 消除系统瓶颈 系统瓶颈是限制系统性能的重要因素,它可以是软件或者件。在没有正确 配置和优化的系统中,瓶颈将严重地影响系统性能。通过性能调整和优化可以 消除瓶颈,从而更好地发挥整个系统的性能。 ( 2 ) 提高整个系统的吞吐量和响应时间 响应时间是指完成单个任务所用的时间。吞吐量是指在一段固定时间内完 成的工作量【2 l 。通过优化应用程序、数据库管理系统、w e b 服务器、操作系统和 网络配置,减少程序运行时间,降低对数据操作的时间,减少网络流量,提高 网络速度,最终减少系统的响应时间,提高整个系统的吞吐量。 5 武汉理工大学硕士学位论文 2 3 性能调整和优化的内容 数据库应用系统性能调整和优化包括的内容比较广泛。对于各个系统所采 用的软硬件资源不同,在调整和优化的具体方法上也有不同,但其基本内容都 是相同的,主要包括以下几个方面: ( 1 ) 硬件配置 硬件配置主要是指在选择硬件时,根据系统的需求选择性价比高的配置。 另外,在多数硬件上还要对硬件的一些参数进行初始化设置。 ( 2 ) d b m s 优化 根据不同的d b m s 有不同的优化策略,对于大型的d b m s 来说,优化工作非 常重要。特别是当系统中数据量越来越大时,d b m s 中很可能出现一些瓶颈。因 此,必须熟悉d b m s 的各种诊断工具和优化策略,随时对d b m s 进行调整和优化, 使整个d b m s 保持良好的性能。 ( 3 ) 应用程序优化 应用程序的优化主要是根据系统所采用的开发语言优化程序代码,提高程 序的运行效率。同时,对程序中的s q l 语句可以根据所选用的d b m s 进行相应调 整。高效的s o l 语句对提高d b m s 的性能有很大的作用。 ( 4 ) 服务器优化 服务器的优化包括w e b 服务器的合理选择和服务器的参数配置。根据系统 需求选择合适的w e b 服务器并对其进行合理的配置对提升系统的整体性能非常 重要。 ( 5 ) 操作系统优化 操作系统优化主要是指从系统需求出发,选择适合系统的操作系统并对其 进行合理配置。 ( 6 ) 网络环境优化 网络优化主要与软硬件有关,在有限的宽带下,对软硬件进行合理的配置 将大大提高系统的网络性能,这对于w e b 应用系统来说非常重要。 6 武汉理工大学硕士学位论文 2 4 性能调整和优化的方法 ( 1 ) 发现问题 优化的首要任务是要找出系统中存在的影响系统性能的问题。通过对系统 进行性能测试,收集相关的性能指标数据,并对其进行观察比较,便可发现系 统中存在的问题。 ( 2 ) 诊断问题 发现系统存在问题之后,就必须利用各种工具对问题进行诊断,找出引发 问题的原因。 ( 3 ) 解决问题 通过发现和诊断问题,就可以有针对性的对系统进行优化配置,解决系统 中存在的问题,从而提高系统性能。 7 武汉理工大学硕士学位论文 第3 章d b m s 的性能调整与优化策略 d b m s 是整个数据库应用系统的核心,它的性能高低直接影响整个系统的性 能。调整和优化数据库的性能,可以从以下几个方面考虑: 3 1 初始化参数( in i t o r a ) 的调整 i n i t o r a 文件定义了许多o r a c l e 操作系统的环境特性,比如分配给数据的内 存、分配给f o 的资源以及一些与性能相关的重要参数。o r a c l e 的每个新版本都 会往i n i t o m 文件中继续新增一些参数。o r a e l e 9 i 已有7 9 7 个( 2 5 7 个已记录归 档的,5 4 0 个隐藏) 不同附i n i t o r a 参数m ,下面重点介绍那些能影响数据库性 能的关键参数。 ( 1 ) s g am a xs i z e ( 系统全局区可以动态获得的最大内存) 该参数是o r a c l ei n s t a n c e 启动时开辟的操作系统内存区,由数据高速缓存、 共享池、日志缓冲、i a v a 池和大型池等内存区共同来瓜分。如果设置的 s g a _ m a xs i z e 小于实际的s g a 中各个p o o l 的尺寸总和的大小,那么 s g a _ m a x的值会被自动以实际的的总尺寸代替。但也不是_ s i z e o r a c l es g a 越大越好,过大的话容易引起频繁的i o 操作。 另外,s g a _ m a xs i z e 决定了其它参数的粒度大小。当s o a m a xs i z e 小于1 2 8 m b 时,粒度( _ k s m _ g r a n u l e _ s i z e ) 为4 m b :当s g am a xs i z e 大于或等于1 2 8 m b 时, k s mg r a r 7 l es i z e 就会是1 6 m b t ”。 ( 2 ) d bc a c h es i z e ( 数据缓存的初始化内存) 该参数设定了用来存储和处理内存中数据的s g a 区域的大小。当用户请求 信息时,数据会被放入内存。如果把d bc a c h e _ s i z e 参数设得太低,那么最 近使用的数据会被从内存中清除出去。当另外的一些查询重新调用这些被清除 的数据时,就必须重新从硬盘中读取( 将消耗i o 和c p u 资源) ,那么系统运行 状况也会很差。如果把d bc a c h es i z e 参数设得过高,系统在切换后会停止 下来。另外,d bc a c h es i z e 也是可用来调整数据缓存命中率( h i tr a t i o ) 的 重要参数。命中率就是指那些不用从硬盘上物理读操作的数据块访问比例。由 8 武汉理工大学硕士学位论文 于在硬盘和内存读取之间有很大的性能差异,把缓存命中率从9 0 增大到9 8 可能会提高5 0 0 的系统性能。 ( 3 ) s h a r e dp o o ls i z e ( 共享池大小) s h a r e dp o o l _ s i z e 为数据字典缓存、共享s q l 和p 工s q l 语句指定了 在s g a 中所分配的内存。数据字典缓存非常重要,数据字典的组件需要在这个 缓存里进行缓冲。如果数据字典缓存命中率低于9 5 ,就必须加大s h a r e d _ p o o ls i z e 参数的值。 ( 4 ) p g aa g g r e g a t et a r g e t ( 所有用户p g a ( p r o g r a mg l o b a l a r e a s ) 的全部软内存盖) 该参数就是o r a c l e 在所有会话中间分配的会话p g a 内存总量。当设置它时, 必须将参数w o r k a r e a _ s i z e _ p o l i c y 设为a u t o 。另外,p g aa g g r e g a t e t a r g e t 参数应该被设定成能维持e s t dp g a _ c a c h eh i tp e r c e n t a g e 大于9 5 的值。 ( 5 ) d bb l o c ks i z e ( 数据块的大小) 该参数是在创建数据库时设置的,它决定数据库里每个块的大小。 d bb l o c ks i z e 的缺省值是2 0 4 8 字节。若操作环境允许,应该设为4 k b ,8 k b 或更高。通常,每个双倍大小的数据库块会减少大约4 0 的i 0 密集的批处理操作 所需要的时间。 ( 6 ) o p t i m i z e rm o d e ( 选择优化器模式) 1 3 1 其中包括c h o o s e 、r u l e 、f i r s t _ r o w s 、f i r s t _ r o w s _ n 或帆r o w s 等模式。 ( 7 ) s o r ta r e a (排序所使用的内存量)_size 该参数以字节为单位,指定每个用户排序所使用的最大内存量。排序完成后, 返回各行,且将内存释放。增大该值可以提高大型表排序的效率。如果超过该内 存量,将使用临时磁盘段。排序消耗大量的c p u 、内存和磁盘,所以应避免不必要 的排序。不能避免时,应优化排序以提高性能,让排序尽量在内存中进行。 ( 8 ) l i c i n s em a xs e s s i o n s ( 许可的最大会话数) 该参数指出允许并发用户会话的最大数。多个实例可以有不同的会话数,但 所有实例的会话数之和应该等于数据库允许的所有会话总数。若此参数为0 ,则 不能实施并发。若此参数非o 要参考参数l i c e n s e _ s e s s i o n sw a r n i n g 的 值。该参数指定并行用户会话的数量限制,达到该限制后,其他用户仍然可以连接, 9 武汉理工大学硕士学位论文 但一条消息将被写入a i 正r t 文件,具有r e s t r i c t e ds e s s i o n 权限的用户将收 到一条警告消息,表明系统己接近最大容量。 ( 9 ) o p e n (打开的光标数)_cursors 该参数指定一次会话能打开光标的最大数( 以处理私有的s q l 区) 并限制 p i s q l 光标数。为防止应用程序耗尽可以使用的光标数,在应用程序中应及时关 闭不用的光标,或将该参数的值设置为足够大。与之相关的参数 c u r s o rs h a r i g n 控制可以共享相同游标的s q l 语句类型。其值若为s i m i l a r , 则表示强制表达方式不同,但语句意思相同的语句共享一个游标,不用再解析 s q l 语句。其值若为e x a c t , 则只能让完全相同的s q l 语句共享一个游标。另一 相关参数s e s s i o nc a c h e d _ c u r s o r s 指定需高速缓存的会话游标数。对同 一s q l 语句进行多次语法分析后,它的会话游标将被移到该会话的游标高速缓存 中。由于游标被高速缓存,无需重新打开,故能缩短语法分析的时间。 ( 1 0 ) l o g _ b u f f e r ( 针对内存中未提交事务的缓冲区) 该参数指定在l g w r 将重做日志条目写入重做日志文件之前,用于缓存 这些条目的内存量。重做条目保留对数据库块所作更改的一份记录。如果该值 过大,在意外发生时就会丢失很多改交过的数据。但如果过小,就会增加重傲日 志文件f o ,特别是在有长时间事务处理或大量事务处理的系统上。 3 2 内存的优化 对数据库中对象的访问,必须将对象全部或部分调入内存,并在内存中进 行处理,因为内存的运行效率远远大于磁盘。因此,扩大物理内存是提高性能 的最直接的方法,但在有限的内存资源下,合理有效利用资源更为重要。 事实上,内存的优化主要是指o r a c l e 数据库的系统全局区( s g a ,s y s t e m g l o b a l a r e a ) 的调整。s g a 主要由共享池、数据高速缓冲区、重做日志缓冲区、 大型池、j a v a 池构成。其构成组件情况如图3 - 1 。 o r a c l es e r v e r 的实例中,除了主内存结构s g a 外,还包括与s g a 密切相关 的一些后台进程。如s y s t e mm o n i t o r ( s m o n ) 进程、d a t a b a s ew r i t e r ( 数据库写进 程) 、l o gw r i t e r ( l g w r ) 进程、p r o c e s sm o n i t o r ( p m o n ) 进程、服务器进程、a r c h i v e p r o c e s s ( a r c o ) 归档进程和c h e c k p o i n tp r o c e s s ( c k p 检查点进程等。各个后台进 程的作用及与s g a 的关系如上图所述1 4 i 。因此,合理调整s g a 区各个结构的 武汉理工大学硕士学位论文 大小,可以极大地提高系统的性能。 p m o n 进程 清理已失败 的用户数据 库连接 服务器进程 通过处理s q l 和 p i - s q l 请求,代表用 户与s o a 进行交互 a r c o 进程 在每个重做日志切换时 将联机重做日志的内容 复制到存档目标上 c k l r r 进程 在数据库检查点时更新 具有当前系统修改号的 数据文件与控制文件头 部 系统全局区 数据高速缓冲区 用于最近被访问 的数据、索引与回 退缓冲区的高速 缓冲存储 重做日志缓冲区 记录因恢复目的 而对数据库所做 的修改结果 s m o n 进程 执行实例恢复、拼接自 由空间以及管理临时段 d b w 0 进程 从d a m b a s eb u f f e r c a c h e 中将缓冲区写到 数据库数据文件上 l g w r 进程 从r e d ol o gb u f f e r 中写 项目到联机重做日志上 图3 1s g a 的构成组件 ( 1 ) 共享池 共享池是由i j b m r yc a c h e ( 库高速缓存区) 、d a t ad i c t i o n a r yc a c h e ( 数据目录高 速缓存区) 和u s e rg l o b a la r e a ( 用户全局区) 三个组件构成。 l i b r a r yc a c h e l i b r a r yc a c h e 是o r a c l e 用来缓存应用程序用户刚刚发布的s q l 和p l s o l 语 句的场所【”。数据库管理员可通过执行下述语句来查看l i b r a r yc a c h e 的命中率。 1 1 武汉理工大学硕士学位论文 s e l e c tn a m e s p a c ,g e t h i t r a t i o ,p i n h i t r a t i o ,r e l o a d s ,i n v a l i d a t i o n s f r o mv $ 1 i b r a r y c a c h e w h e r en a m e s p a e ei n ( s q l 创r 队,t a b l e p r o c e d u r e ,b o d y ,t r i g g e r ) ; 其中g e t h i t r a t i o 的值应该保持在9 0 以上。 d a t ad i c t i o n a r yc a c h e 发布一条s q 域p i s q l 语句时,o r a c l e 必须检查数据目录来确保该语句中所 引用的那些表已经存在、列名和数据类型的正确以及用户权限,这些信息被存 储在数据目录高速缓存区内。可通过执行下述语句来查看d a t ad i c t i o n a r yc a c h e 的命中率。 s e l e c t1 - ( s u m ( g e t m i s s e s ) s u m ( g e t s ) ) d a t ad i c t i o n a r yh i tr a t i o f r o mv $ r o w c a c h e ; 这个命中率也应该在9 0 以上。 u s e rg l o b a la r e a 在共享服务器体系结构中,u s e r g l o b a l a r e a 用来高速缓存应用程序用户会 话信息。在非共享服务器情况下,应用程序会话信息保存在p r o c e s sg l o b a l a r e a ( j 拄程全局区1 中。 可以采用增大s h a r e dp o o l 大小、为大型p u s q l 语句腾出空间、将重要的 p u s q i 代码保持在内存中、鼓励s q 【重复利用及调整l i b r a r y c a c h e 相关i n i t o r a 参数等方法提高共享池的性能。 ( 2 ) 数据高速缓冲区i 习 d a t a b a s eb u f f e rc a c h e 用来缓存应用程序用户最近在数据库中访问过的段数 据块的副本。高的b u f f e rc a c h e 命中率可以大大降低磁盘收) ,提高数据库性能。 数据高速缓冲区的大小主要由参数d b _ c a c h e _ s i z e 来设定。可通过执行下述语 句来查看d a t a b a s eb u f f e rc a c h e 的命中率。 s e l e c t1 - ( ( p h y s i c a l v a l u e d i r e c t v a l u e q o b s v a l u e ) l o g l c a l v a l u e ) “b u f f e rc a c h eh i tr a t i o ” f r o mv $ s y s s t a tp h y s i c a l ,v $ s y s s t a td i r e c t , v $ s y s s t a tl o b s ,v $ s y s s t a tl o g i c a l w h e r ep h y s i c a l n a m e = p h y s i c a lr e a d s a n d d i r e c t n a m e = p h y s i c a lr e a d sd i r e c t 武汉理工大学硕士学位论文 a n dl o b s n a m e = p h y s i c a lr e a d sd i r e c t ( 1 0 b ) a n dl o g i c a l n a l y l e = s e s s i o nl o g i c a lr e a d s ; 这个命中率应该保持在9 0 以上。 ( 3 ) 重做日志缓冲区 r e d ol o g b u f f e r 用来存储当发生了介质故障或用户错误时重做一个应用程 序用户的事务所需要的信息。数据库管理员可以通过执行下述语句查看日志缓 冲区的使用情况。 s d e c tn a m e ,v a l u e f r o mv $ s y s s t a t w h e r en a m ei n ( r e d oe n t r i e s , r e d ol o gs p a c er e q u e s t s ) ; 查询出的结果可以计算出日志缓冲区的申请失败率: 申请失败率= r e q u e s t s e n t r i e s ,申请失败率应该接近于0 ,否则说明日志缓冲 区设置太小,需要增j j l l o r a c l e 数据库的日志缓冲区。 3 3 磁盘i 0 的优化 数据库中发生的每个动作都将产生某种类型的i 0 活动,这种i o 活动可能是 逻辑的( 在内存中进行) ,也可能是物理的( 磁盘i 0 ) 。前面论述了如何调整数 据库初始化参数及内存从而减少物理i o ,但任何程度的内存调整都不能完全消 除物理i 0 活动。 事实上,磁盘i 0 的速度对整个系统性能有重要影响。解决好磁盘i 0 问题, 可显著提高性能。磁盘i 0 的主要来源有以下几个方面 3 1 : ( 1 ) 写d a t a b a s eb u f f e rc a c h e 中的数据到数据库的数据文件上的d a t a b a s e w r i t e r ( d b w 0 ) 。 ( 2 ) 写数据到回退段上以维护读一致性的( d b w 0 ) 。 ( 3 ) 读取数据块到d a t a b a s e b u f f e r c a c h e 中的用户s e r v e r p r o c e s s 。 ( 4 ) 读取重做日志的内容并将这些内容写到存档目标上的a r c h i v e r ( a r c o ) 进程。 ( 5 ) 临时将大型排序请求写盘的应用程序用户活动。 如果上述i 0 活动出现过多或执行效率不高,都会引起数据库的性能问题。 因此,我们应该尽量减少磁盘的i 0 活动。在必须执行的磁盘i 0 活动中,应优化 武汉理工大学硕士学位论文 其执行过程,加快其执行速度。 3 3 1 调整表空间与数据文件 在o r a c l e 数据库的逻辑结构中,每个数据库包含一个或多个表空间,每个表 空间都是由一个或多个数据文件的物理文件构成。每个数据库至少具有一个 s y s t e m 的表空间,该表空间用来存储o r a c l e 数据目录表和索引。一个好的数据 库还应该有许多附加的表空间用来保存非数据目录的应用程序段。 下面是创建一个简单的表空间例子; c r e a t et a b l e s p a e et a b l e s p a c e _ n a m e d a t a f i l e o r a l o r a c l e m y d b m y d b _ t b s _ l ,d b f s i z e1 0 0 m , o r a 2 o r a c l e m y d b m y d b _ t b s _ l ,d b f s i z el o o m ; 事实上,实际的f o 都是发生是数据文件上,而不是发生在表空间自身上1 6 l 。 因此。我们应该设法把用于各种表空间的数据文件放到不同的磁盘驱动器、卷 组或磁盘控制器上,以便最大限度的提高f o 性能,减少磁盘争用。 有多种方式来测量数据文件i o 情况,其中可能通过查询v $ f i l e s t a t 、 v $ d 筋a f l l e 和v $ t e m p f i l e 三个动态视图来观察数据文件i o 情况: s e l e c ts f i l e # , d n a m e ,s p h y r d s ,s p h ”v r t s , s a v g i o t i m ,s m i n i o t i m ,s m a x i o w t m ,s m a x i o r t m f r o mv $ f i l e s t a ts , v s d a

温馨提示

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

评论

0/150

提交评论