《数据库应用系统性能优化研究与实践》
摘要:本文主要从数据库服务器内存参数调整,SQL语句优化两方面论述如何在系统设计,运行过程中对Oracle数据库进行性能优化。数据库服务器内存参数调整主要论述共享池的大小设置问题,SQL语句优化主要从Oracle解析SQL语句的机制方面来论述如何写出高效的SQL语句。通过上述方面的调优以确保数据库系统的性能。
关键词:数据库性能优化 逆规范化设计 优化策略
中图分类号:TP311.13 文献标识码:A 文章编号:1007-9416(2012)07-0058-01
1、对数据库服务器内存分配的调整
由于对服务器内存参数的调整对oracle的性能影响显著,它成为Oracle数据库性能调优的首选对象。服务器内存参数的调整主要是对数据库系统全局区的调整,系统全局区包括共享池、数据缓冲区、日志缓冲区。其中最主要的是对数据缓冲区和共享池的参数调整。
数据库缓冲区的作用主要是将从磁盘中读取的数据块存放在内存缓存中,从这个意义上说数据库缓冲区越大,存放的共享数据就越多,减少了对磁盘数据的物理读操作,也就提高了系统的响应速度。
共享池的作用主要是用来存放最近使用过的sql语句的,它由一个最近最少使用的算法来管理,由库高速缓存和数据字典缓冲区两部分组成。修改这一参数的设置,能提高系统性能,是由Oracle数据库系统处理用户提交的SQL语句的步骤决定的。
2、Sql优化
由于应用程序的执行最终归结为后台数据库中SQL语句的执行,SQL语句本身的执行效率就成为了影响oracle数据库执行效率的一个重要因素,当我们对Oracle处理SQL语句的机制有所了解,通过对SQL语句进行适当的调整,就能提高Oracle数据库系统的性能。
(1)在基于规则的优化器中,Oracle对from子句中的表名是按照从右到左的顺序进行解析的,即:From子句中排在最后的表会被首先处理。我们把这张表称做驱动表。当from字句中包含多个标的情况下,oracle是通过排序合并的方式连接这些表的,为了提高oracle的执行效率,应当选择包含记录条数少的表作为驱动表,即放在from子句的最后。
(2)在oracle语句中,where子句的执行顺序是自下而上的对语句进行解析的。为了提高sql语句的执行效率,应该将能过滤掉大量数据的条件写在where子句的最后。
(3)在selcect语句中使用*虽然对编程人员简单方便,oracle会自动列出所有列名,但oracle解析*时则是通过查询数据字典来完成对*的转换的,这样耗费了更多的时间用来查询数据字典,转换,必然降低执行效率,因此在selcect语句中应当直接列出所有的列名。
(4)用where子句代替having子句,在where子句中排除不需要的记录,这样的执行效率将远远高于执行完成之后用having子句对记录进行筛选。
3、软件开发模式优化策略
3.1 避免访问回滚段
如果查询数据库时,要访问的数据正被另外用户修改,数据库为了维护读一致性,需要访问会滚段来读取查询语句执行时刻的数据值。如果应用程序需要经常读取正在被其它用户修改的数据,数据库系统为了得到一个数据,不得不多次访问磁盘。数据库管理员可通过配置回滚段来减少查询时“snapshot tooold”错误的发生。解决这个问题的根本方法还是需要重新修改应用程序设计,合理对事务进行划分。
3.2 表的分区和并行技术
如果必须要在数据库运行特别耗时的操作。应尽量地把这样的操作分解,严格限制操作所涉及的记录数,并设法使操作并行,充分地提高执行效率。
(1)使用分区。分区技术有两个潜在的好处:提高查询性能和提高数据库可用性。数据库查询时,优化器知道那些分区包含查询所要的数据。而其它分区数据将不会被读取,从而查询任务将更快完成。许多管理工作可在只一个分区上进行,而不影响其它分区的数据。例如可以选择只删除一个表分区中的数据。
(2)使用并行。Oracle数据库中几乎所有的操作都支持并行特性,包括查询、插入、和数据加载。并行选项可以使多个处理器同时处理一条命令,在创建库数据库对象时可以设定并行参数,也可在查询语句中重新设。
4、软件测试优化策略
许多情况下由于开发进度等原因,软件性能压力测试都进行的不充分。这就导致软件产品交付时,不能确保软件性能满足用户需求。这点常常被开发人员忽视。用户不仅需要软件能完成一定功能,更需要软件能支撑自己业务的运行。因此应用软件性能不能满足业务处理的速度要求,软件系统就需要优化。测试必须验证软件性能能否在希望负载情况下,满足业务处理的速度要求。
(1)用大量的数据进行测试。系统使用一段时间后,数据库的性能会发生变化。例如oracle数据库一个表的pctfree和pctused参数设置可能会使数据块只有一半的空间被利用或使数据库记录链接(chained)。上面的情形都会引起数据库性能问题,且只有在应用程序使用了一段时间后才能被发现。
(2)足够多的用户并发测试。只有一个测试用户大多数情况下不能反映软件真实使用情况下的负载情况。我们必须测试在多个并发用户情况下是否会引起死锁(deadlock)以及性能下降等问题。
5、结语
数据库应用系统的性能优化远不是按照厂家所列的有关指南通过短短的几步就可以达到的。要想获得最大的优化效果,既需要具有广泛而深人的数据库原理和系统实践知识,又要有扎实的应用程序设计能力,同时要充分熟悉操作系统和有关的软硬件环境。笔者在实际工作中利用这些策略进行了数个数据库应用系统设计,这些系统都表现出了良好的运行性能。
[1]Gaja Krishna 性能优化技术内幕。机械工业出版社,2010,5:284.
[2]李爱武。Oracle数据库系统原理。北京邮电大学出版社,2009-3-1:210.
《数据库应用系统与创新管理》
[摘 要] 企事业单位的现代化管理水平与其应用计算机处理管理数据的能力有关,而应用计算机处理管理数据的能力与数据库应用系统(DBAS)有关。创新管理是建立在先进的管理理念、科学的管理制度和管理资源的充分利用上的。分阶段科学规范组织实施管理信息系统建设,实际上就是务实和创新,就是用管理的系统方法对过程的改进,解决资源管理及资源的充分利用问题,为科学决策提供数据支持,提高工作质量和效率。
[关键词] 数据库应用系统;企业信息化;项目建设;创新管理
1 数据信息是基础资源
企业管理软件应用最广泛的就是数据库应用,数据库简单地说,就是数据存放的地方。数据信息管理就是通过数据库管理数据,实现其基本功能,即通过它查询、修改、添加、删除其中的记录。数据库可分为两种:小型数据库和大型数据库。大型数据库主要用于网络,如Oracle、SQL Sever、Sybase等,小型数据库则在中小型企业和个人应用中有广泛的市场。如Visual FoxPro、Access等,大型数据库无论从安全性还是稳定性来说都比小型数据库要好得多。而小型数据库又具有大型数据库所没有的优点:对计算机的配置要求低、继承性好、易用、支持大型数据库通用的SQL语言。数据库是指存放在计算机存储设备中的相互关联的数据文件的集合,在Visual FoxPro中以表的形式记录数据内容。 Visual FoxPro是由微软开发的可视化的数据管理系统,是在Windows环境下开发数据库应用系统的有力工具。现在的Visual FoxPro也具有很强的网络功能,也可以将它作为网络上的数据库服务器。数据库应用系统(DBAS)是在数据库管理系统(DBMS)支持下设计的计算机应用软件,就是把数据库、表、表单和报表汇集起来,把用人工管理的数据实现电脑化管理。数据库应用系统(DBAS)就是结合管理需求建立的管理信息系统(MIS)。信息的收集、整理、分析是企业管理创新的重要内容。在ISO 9001质量管理体系标准中,资源管理不仅包含人力资源、基础设施、工作环境,同时包含了数据信息、供方及合作关系、自然资源、财务资源。数据信息作为基础资源对以事实为依据作出决策必不可少,尽管其价值是受利用信息的人的信息应用能力所支配。
数据库应用系统(DBAS)的设计与开发是一项复杂、艰巨的系统工程。开发设计人员要具备相应的专业技术知识,要花费更长的时间、更多的精力,要解决成千上万个遇到的问题。企事业单位的现代化管理水平与其应用计算机处理管理数据的能力有关,而应用计算机处理管理数据的能力与数据库应用系统(DBAS)有关。
在数据库应用系统(DBAS)的设计和应用过程中,数据信息是必须的而且起着重要的作用。无论是数据库应用系统的设计部门还是用户单位,必须明白配备建立该数据管理系统是为了什么(why),什么信息(what),什么时候(when),为谁(who),以什么形式提供(how)。用户单位要使用好软件,必须了解应用要求并对项目相关人员提供适宜的培训。
从技术角度来看,再复杂的IT解决方案都是通过数据库、程序逻辑和工作界面来为业务工作服务的,实际上也是一种对业务流程管理的工具。当对流程描述清楚以后,IT解决方案的项目需要也就逐渐清晰了。
2 数据库应用系统建设就是务实和创新
创新管理是建立在先进的管理理念、科学的管理制度和管理资源的充分利用上的。没有先进的管理理念,没有科学的管理制度,没有管理资源的科学规划和充分利用就根本谈不上企业的创新管理。先进的管理理念是什么?同ISO 9001质量管理体系标准相联系,先进的管理理念就是要体现和实践:①以顾客为关注焦点;②领导作用;③全员参与;④过程方法;⑤管理的系统方法;⑥持续改进;⑦基于事实的决策方法;⑧与供方互利的关系这八大原则。同企业文化建设相联系,先进的管理理念就是诚信、和谐、务实和创新。无论是八大原则还是企业文化建设,讲都不难,重要的是去践行。在实践中,才能不断主动地发现更多的改进机会并完善优化管理过程,提升科学管理的水平。
结合数据库应用系统(DBAS)建设,实际上就是务实和创新,就是用管理的系统方法对过程的改进,解决资源管理及资源的充分利用问题,为组织基于基础数据的科学决策提供支持,提高工作的质量和效率。
3 注重提高组织的计算机应用能力
2014年2月27日,在中央网络安全和信息化领导小组第一次会议上强调,没有信息化就没有现代化,要加强核心技术自主创新,下大力气解决科研成果转化问题。
现今,计算机的使用相当普及,管理信息系统(MIS)的应用不太理想,主要问题是观念和技术。因此,在管理观念上要有创新意识,要尊重知识,更要积极参与。在管理工作上要重视技术并积极支持开发、引进、利用适宜的应用系统软件;要重视培养和提高管理人员和操作人员的素质,更要特别注重结合实际提供适宜的培训,提高组织的计算机应用能力。
围绕诚信、和谐、务实、创新搞好企业文化建设,先进的理念和现代管理意识对建立、完善资源管理信息系统至关重要。企业在IT项目上投资的目的就是为了改善运营和管理的效率,从而降低业务成本改善企业的财务表现。
搞好管理信息化工作,技术人才是关键,必须结合实际重视信息技术自主创新、引进配备这方面的专业人才。
4 信息化项目的组织实施
信息化是组织利用IT技术,通过创新管理,优化组织模式、明确人员职责和规范工作流程的长期而艰巨的系统工程,管理信息化项目涉及到组织战略、管理目标、资源保障等很多要素,各要素间关系可以用杠杆原理形象表达(如图1)。信息化项目的组织实施应有科学的方法作指导,严格规范实施过程,规避不可控因素造成的影响。科学的方法是按前期准备、实施计划、项目建设、操作培训、模拟运行、评审验收分阶段严格规范实施,以保证达到最好的结果。
4.1 前期准备
4.1.1 战略决策
软件提供方通过演示向使用方组织决策层及参与可行性论证的部分业务主管及业务相关人员,介绍管理软件的主要功能。组织决策层听取单位信息化管理部门、业务主管部门或第三方见解,明确信息化战略目标,确立合作意向并拟定信息化项目领导组织成员构成。
4.1.2 项目目标
软件提供方了解记录软件使用方组织结构及相关单位部门网络环境、计算机运行环境及参与人员等基本情况;软件使用单位业务部门通过相关资料了解管理软件的基本功能,确立合作协议内容并做好项目主要目标、内容及设备成本费用估算工作,准备信息化项目报告。
4.1.3 启动会议
由单位负责人作项目总动员,说明该项目背景、企业管理创新的期望和决心。介绍软件提供方、第三方顾问情况并宣布项目负责人及成员构成,对各部门的积极配合提出具体要求并形成会议纪要。软件提供方项目负责人、软件使用方单位项目负责人或信息化管理部门主管说明实施该项目的意义并定期检查项目实施进度与阶段目标、阶段成果,各方项目组成员及时签字确认项目实施协议相关内容。
4.2 实施计划
根据前期的调研情况及启动会议纪要,制定出实施计划表。项目组成员全力配合并积极参与实施计划的制定工作。实施计划表是项目组工作的日程准则应符合实际。除非有不可抗力等其他因素,实施计划不能作变更。项目经理负责本项目实施中与软件提供方、第三方顾问的协调及实施工作安排,签批确认实施计划表,掌控项目实施进度。
4.3 项目建设
(1)系统安装与初始化配置
在软件提供方技术支持下,单位信息化管理部门负责收集初始化相关数据,指导业务主管部门的操作员在计算机上安装、操作使用管理软件。
(2)明确部门及人员工作目标和内容
单位信息化管理部门负责明确单位组织机构各部门及人员工作目标和内容。
(3)数据录入
数据录入是实施中的基本步骤。单位信息管理部门负责系统数据的录入和管理系统基本数据的发布,并指导相关单位部门按规范要求在一定的时间内完成管理系统各种必要业务数据的录入。
软件提供方或单位信息管理部门、业务主管部门可根据实际情况充分利用数据处理技术和已有数据资源,采取上下结合的方式在基础数据录入方面给用户单位以支持。
业务主管部门负责业务相关数据完整性、准确性的验证和安全保存。
(4)工作流程
业务主管部门负责结合实际,明确管理数据传递的途径和方式,制定并完善工作流程和操作规范,充实操作培训的内容。
4.4 操作培训
信息化项目实施要求领导层积极参与,相关人员是操作培训的主要对象。操作培训以了解管理软件的基本功能和掌握操作使用方法为主要内容,以业务流程为主线。培训过程应根据实际情况对培训内容、日期进行合理安排;培训完成后应进行考核,形成原始记录并经审核人签字备案。
4.5 模拟运行
用户实际操作管理软件,以真实的业务流程运行。内容包括系统可靠性测试、安全性测试、数据运行的正确性测试等。填写记录运行中发现问题并及时与软件提供方进行沟通,查明原因(有的问题可能归防病毒软件误报)并解决由软件设计缺陷导致的问题。
4.6 评审验收
根据实施的具体情况提交项目实施总结报告。项目实施进入正常状态后,要进行业绩评价――项目实施验收。参与实施的各单位部门需要整理项目实施文档、实施表单等文档、完整的数据资料等。项目组提出验收申请,确认验收时间、地点、与会人员等。
验收会上,项目负责人或信息化管理部门主管介绍项目实施的历程和取得的各阶段性成果,并对项目实施结果做出评估,最终完成项目验收报告,双方或三方确认签字。验收应该以实施方案书约定的目标是否实现为准绳,而不应以用户所有的需求、问题的解决为标准。要记住一个成功的项目是在一定的时间内,按预算的成本与资源,完成预定的目标。而不是无限度去满足用户所有的要求,以求做到十全十美。不可能通过一个项目解决用户的所有问题。切记一个阶段没有做好,决不可操之过急进入下一个阶段。
5 结 语
讲诚信、促和谐、真务实、求创新是企业发展壮大要求走好的每一步。重视开发、积极引进并使用适用的数据库应用系统(DBAS)有助于企业充分利用现有资源和技术,实现精细化管理、改进业务流程、提升现代化管理和决策水平,有利于围绕诚信、和谐、务实、创新搞好企业文化建设。可以说,数据库应用系统(DBAS)的开发、引进和使用是企业务实创新、超越自我的现实需求,是资源管理部门实现创新管理提高工作效率的重要途径。信息化涉及管理与信息技术两个学科,项目的实施是一个艰苦的过程,通过科学规划、诚信协作、分步实施可以得到较好的结果。
信息化项目组织实施各个阶段工作是密切相关的,三分软件,七分组织,十二分基础数据。软件是工具,数据是基础,组织管理很重要。
主要参考文献
[1]赵冰。浅谈制定企业信息化管理制度中存在的问题[J]。科技信息,2009(19)。
[2]孟倩。企业信息化与知识管理[J]。科学管理研究,2004(6)。