基于Oracle的存储过程优化方法

来源 :学问·科教探索 | 被引量 : 0次 | 上传用户:qiuzy
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘要】数据库的性能是大型应用程序的性能瓶颈,介绍了Oracle数据库下存储过程及存储过程在大型应用程序设计中的应用,结合实例提出了Oracle平台下存储过程的优化方法。
  【关键词】Oracle;存储过程;性能优化
  
  1引言
  在大型应用程序中,对数据的读取不仅频繁而且数据量极大,因此在大型应用程序设计中对数据库的访问成为了整个系统最大的性能瓶颈。存储过程作为数据库对象存储在数据库中,执行一次后,其编译好的代码存储在高速缓冲存储器中,再次使用时直接调用,无需再次编译即可执行,使执行速度大大提高。因此,使用存储过程完成对数据库的操作,可以有效提高数据存储和查询的速度。
  大量使用存储过程也会带来一定的副作用,当存储过程中封装了大量的业务逻辑后,其执行过程对数据库服务器增加了沉重的压力,因此優化存储过程的性能就显得尤为重要。
  
  2 Oracle存储过程介绍
  存储过程是存储在数据库中的一段存储程序,首先编写PL/SQL程序完成特定的操作,并命名保存,当需要执行此操作时可以使用EXECUTE指令调用。存储过程以数据库为基础接收输入参数,并将结果返回给应用程序。相对于SQL语句,其网络通信流量更小,执行速度更快。而且当Oracle存储过程装载到内存中后,可被多个应用共享,节省内存,能有效提升应用系统的性能。在Oracle中创建存储过程的语句为:
  CREATE OR REPLACE PROCEDURE 存储过程名字
  (参数1 INNUMBER,
  参数2 INNUMBER
   …….
  )AS
  变量1 INTEGER:=0;
  变量2 DATE;
  BEGIN
   END存储过程名字
  
  3存储过程的应用
  系统充分合理地利用存储过程,可以提高服务器吞吐能力,利用存储过程来从近50个表中获取数据组合成一个通用的表,产生近8万条记录,而所需时间约7秒钟,如果这种操作借助于较合理的动态网页可以将服务器开发提高到一个高度,充分利用存储过程,可以减轻网页设计带来的繁重处理,而使所编写的代码得到共享和合理的利用,并将代码藏于服务器的数据库内部,使得一些技术得到的保密,这也是存储过程的一大特色。
  
  4存储过程优化方法
  存储过程优化过程中首先要选用适合的ORACLE优化器,ORACLE的优化器共有3种:基于规则、基于成本、选择性[4]。在缺省情况下,ORACLE采用CHOOSE优化器,为了避免那些不必要的全表扫描,必须尽量避免使用CHOOSE优化器,而直接采用基于规则或者基于成本的优化器。
  4.1选择最有效率的表名顺序(基于规则的优化器中有效)
  ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表将被最先处理。在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。当ORACLE处理多个表时,会运用排序及合并的方式连接它们。首先,扫描第一个表(FROM子句中最后的那个表)并对记录进行派序,然后扫描第二个表(FROM子句中最后第二个表),最后将所有从第二个表中检索出的记录与第一个表中合适记录进行合并。
  4.2 WHERE 子句中的连接顺序
  ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾.例如:
  (低效)SELECT…FROMEMP E
  WHERE SAL > 50000 AND JOB = 'MANAGER' AND 25 < (SELECT COUNT(*)
  FROM EMP WHERE MGR=E.EMPNO);
  (高效)SELECT … FROM EMP EWHERE 25 < (SELECT COUNT(*) FROM EMP
  WHERE MGR=E.EMPNO) AND SAL > 50000 AND JOB = 'MANAGER';
  4.3 SELECT 子句中避免使用" * "
  当你想在 SELECT 子句中列出所有的 COLUMN时,使用动态 SQL 列引用" * "是一个方便的方法。不幸的是,这是一个非常低效的方法。实际上,ORACLE 在解析的过程中,会将" * "依次转换成所有的列名,这个工作是通过查询数据字典完成的, 这意味着将耗费更多的时间。
  4.4 用TRUNCATE替代DELETE
  当删除表中的记录时,在通常情况下,回滚段用来存放可以被恢复的信息.如果你没有 COMMIT 事务,ORACLE会将数据恢复到删除之前的状态而当运用TRUNCATE时,回滚段不再存放任何可被恢复的信息。当命令运行后,数据不能被恢复。因此很少的资源被调用,执行时间也会很短。
  4.5 减少对表的查询
  在含有子查询的SQL 语句中,要特别注意减少对表的查询。如
  Update 多个 Column 的例子:
  低效:UPDATE EMP SET EMP_CAT = (SELECT MAX(CATEGORY) FROM
  EMP_CATEGORIES), SAL_RANGE = (SELECT MAX(SAL_RANGE) FROM
  EMP_CATEGORIES) WHERE EMP_DEPT = 0020;
  高效:UPDATE EMP SET (EMP_CAT,SAL_RANGE) = (SELECT MAX(CATEGORY),
  MAX(SAL_RANGE) FROM EMP_CATEGORIES) WHERE EMP_DEPT = 0020
  4.6 用EXISTS替代IN
  在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接。在这种情况下, 使用 EXISTS(或 NOT EXISTS)通常将提高查询的效率。
  4.7 用 NOT EXISTS 替代 NOT IN
  在子查询中,NOT IN子句将执行一个内部的排序和合并。无论在哪种情况下,NOT IN 都是最低效的(因为它对子查询中的表执行了一个全表遍历)。为了避免使用 NOT IN ,我们可以把它改写成外连接或NOT EXISTS。相对来说,用 NOT EXISTS 替换 NOT IN 将更显著地提高效率。
  
  5 总结
   基于存储过程的应用模型与传统的数据应用模型相比,有优异的性能,因此在开发数据库应用(包括数据仓库、数据挖掘、大型OLTP)中,应考虑存储过程的作用,以提高应用的整体性能。
  责任编辑:赵妍
其他文献
【摘要】心理问题严重地影响着当代大学生的身心健康和成才。本文在调查比较的基础上,采用定量与定性相结合的方法分析了男女大学生心理素质的差异,对如何加强大学生心理素质教育进行了探讨,以便大学生更好地适应社会发展的需要。  【关键词】心理健康;男女差异    一、调查的意义     大学阶段,青年的心理发展水平并未完全成熟,内心充满着各种特殊的矛盾,性别差异使男女生心理矛盾各有不同:如独立性与依赖性的矛
期刊
【摘要】随着我国社会主义法制建设的推进,学生的维权意识也随之增强,而近几年,这两种权利的冲突趋于激烈。这种冲突的实质是利益的冲突。要解决这一冲突,一方面依赖于国家相关法律法规的出台,另一方面,高校在行使管理权时也应转变观念,同时还须建立一种完善的校生冲突救济体系, 并以学生权利为本, 不断推进现代大学制度建设。  【关键词】高校管理权;受教育权;冲突    高校学生是一个特殊的社会群体,处于"准成
期刊
【摘要】ADO.NET是Microsoft最新的数据访问技术,通过实例讲述了VB.NET中利用ADO.NET访问数据库的技术。  【关键词】数据库;ADO.NET;VB.NET;数据库更新    1.引言    [1]ADO.NET是对Microsoft Active Data Objects(ADO)一个跨时代的改进,它提供平台互用和数据访问功能。ADO.NET不是ADO为.NET基础构造而进行
期刊
【摘要】教务管理在维持教学秩序、保证教学正常运行的中具有重要作用,本文针对当前教务管理的现状,并根据我院的具体情况对教务管理的流程、规范进行了调整和修订,旨在最大限度的提高管理效率和资源使用效果。  【关键词】高校;教务管理;优化    教育部部长周济指出:提高高等教育质量,本科教育是关键。因此要进一步强化本科教育的基础性地位和教学工作的中心地位,切实保证本科教学质量的提高。近年来由于招生规模的扩
期刊
【摘要】本文着重分析了家庭、社会和学校环境对80后独生子女大学生社会适应障碍的影响,并从这三个方面提出了对应的教育对策。  【关键词】独生子女大学生;社会适应障碍 ;环境;教育对策    一80后独生子女大学生出现社会适应障碍的环境探析    (一)家庭环境  一部分独生子女大学以前的教育多是在家庭中形成的,故其所处的家庭环境直接影响甚至决定其人格特征,影响其与社会的适应状况。  1家庭关系  首
期刊
【摘要】科技计划项目合同是一种行政合同,。作为合同的一方,科技项目承担者的违约时,应承担相应的违约责任,这种违约责任不同于合同法的违约责任,是一种特殊的行政法律责任,其救济也不能适用行政复议法与行政诉讼法,需要制定特殊的规则。  【关键词】科技计划项目;合同;违约责任    2001年《国家科技计划项目管理暂行办法》第19条规定:"列入国家科技计划的项目,科技部专项计划部门应根据不同计划的性质,通
期刊
【摘要】在本文中,笔者从统计学科、时代发展背景和学生的特点三个方面,通过自身的教学体会进行了探讨,并提出了经贸类院校统计学教育应该着眼于应用统计、着眼于素质教育的观点。  【关键词】统计学;经贸类院校;素质教育    21世纪是信息经济时代,从本质上讲,信息经济所依赖的信息处理手段的先进性,更重要的是信息收集、整理的准确性,而准确的信息收集和整理离不开统计学科的发展和统计人才的培养。因此,在现代高
期刊
【摘要】和谐校园是和谐社会的重要组成部分,与社会主义事业发展紧密相联。学生干部是构建和谐校园的主体骨干,在学校教育管理工作中发挥着至关重要的作用。本文从学生干部在和谐校园建设中的地位、作用分析入手,阐明了优秀学生干部必备的能力素质,并结合笔者多年学生教育管理的工作实践,进一步总结了培养优秀学生干部队伍的方法和措施。  【关键词】和谐校园;学生干部;队伍建设    胡锦涛总书记在十七大报告中强调指出
期刊
【Abstrac】Number is a special mark, which is formed for meeting the humanity's living and development. It is a significant part of the language in the field of science and social communication. Differe
期刊
【摘要】目前高校中师生关系渐行渐远,出现师生关系不和谐现象。师生关系是教育过程中人與人之间最基本的,最重要的关系。平等和谐的师生关系是增进师生之间的相互理解,产生凝聚力、向心力的桥梁,是形成良好的学习风气,促进学生身心健康发展的关键。因此,建立和谐的师生关系,有着重要的意义。  【关键词】师生关系;和谐;构建    在大力倡导素质教育的当今社会,建立和谐的师生关系显得尤为重要。教学活动是一个师生之
期刊