数据库教程:解读Oracle PL/SQL编程风格与系统性能提高
当前位置:以往代写 > 数据库教程 >数据库教程:解读Oracle PL/SQL编程风格与系统性能提高
2019-06-14

数据库教程:解读Oracle PL/SQL编程风格与系统性能提高

数据库教程:解读Oracle PL/SQL编程风格与系统性能提高

数据库教程:解读Oracle PL/SQL编程风格与系统性能提高今天,小编为大家带来了新的关于数据库的内容。本节数据库教程准备给大家解读Oracle PL/SQL编程风格与系统性能提高。
Oracle是C/S(Client/Server)结构的大型数据库系统,主要语言是4GLSQL语言,具有功能强大而简单易学的优点。C/S结构的工作过程是:当客户端(C端)输入并发送一条SQL语句后,便通过网络送到服务器端(S端),在那里被分析执行然后再将结果通过网络返回到客户端,此时客户端可以再发下一条SQL语句。可见,客户端是一条语句一条语句的发送,服务器端是一条一条的分析执行,结果再一次次的返回。但是,这样单个的SQL语句引起了频繁的网络通信,大大降低了系统性能。PL/SQL是扩展SQL后的语言,PL/SQL块作为一个单位发送,使用了较少的网络通信,而且在运行中能根据条件,决定执行或重复执行什么语句,既保留了SQL的强大性,又弥补了不足。 1 提高程序的运行速度 1.1 使用存储过程 存储过程是Oracle数据库的一种对象,是一种带名数据库软件的PL/SQL过程程序块,它在创建后,被数据库服务器进行语法和句法分析,以编译了的形式存储在数据库中,可以被有权用户在任何需要的地方调用。当客户端应用程序调用时,只需发送一条调用命令,数据库服务器就会执行该过程。与一般的PL/SQL块主要的不同是:无需在网上传送大量的源程序代码,只传送一条调用命令,这就大大降低了网络通信的负担;而且只在刚创建时分析编译一次,每次调用直接执行编译了的代码,因此运行速度较快。 在实际开发时,对于具有共同特性的功能模块最好使用存储过程,调用时通过使用不同的实际参数值来实现某一具体的处理。如果能充分利用存储过程来完成应用系统的操作与处理,则可大大提高系统的运行性能。 1.2 编写可重用共享池中已有语句的SQL语句 共享内存缓冲区和后台进程合称为一个Oracle实例。当启动一个Oracle实例时,会有许多的Oracle后台进程被启动,每个进程都负责运行数据库的不同方面的处理,各进程通过共享内存彼此之间进行通信,该块内存就是系统全局区SGA。SGA被分隔为不同的区域,其中一个称作共享池(Shared Pool)的区域中包含了发送给数据库的SQL语句的正文和PL/SQL块,以及它们经过分析后的表示形式与执行方案,其中执行方案是数据库实际处理该语句的方法,例如,需要访问哪些表和索引、是否需要执行排序操作等等。 因为要执行一条SQL 语句,数据库就必须确定其执行方案。当数据库从客户应用程序接收到一条SQL语句时,它首先检查是否该语句在共享池中。若在,那么不重新对其分析而是重复使用已经在共享池中的形式及执行方案;若不在,则对该语句进行分析,jdbc连接数据库得到新的分析形式与执行方案并进行存储,覆盖共享池中以前的内容。 由此可以看出,编写可重用共享池中语句的SQL语句就显得十分必要,因为避免不必要的重新分析,会很大程度上减小服务器所承担的工作量。要想重复使用共享池中的语句,就应该编写与其格式一致的语句,包括字母的大小写、标点符号、换行的位置等都要一致。下面推荐一种有效实用的方法。 1.2.1 SQL语句各部分的格式 一条语句可以一行也可以分多行书写,但最好换行书写,每一子句一行,且每行的第一个关键字与第一行的关键字的尾部对齐,这样做以确保每次使用同一条语句时分行的位置一致,而不要让语句在第80列偶然溢出到下一行,例如下面的格式中字母T、M、E、D、P是对齐的,一子句占了一行:

比较的结果是这两句不匹配或者说不等价,因为第一句中的SELECT是大写的,而第二句的是小写的。1.2.3 其它,如运算符两侧各留一个空格等 总之,设计自己的编写约定并遵守这些约定,使要处理的语句与共享池中的相一致,有助于运行性能的提高。
2 提高可维护性 2.1 编写触发器 对表中数据进行修改、删除或插入是非常常见的操作数据库学习。当表被修改时,应该自动给其他需要执行操作的程序发信号。触发器可以完成这一功能。在Oracle8中,触发器是一段程序,但是这段程序是当发生INSERT、UPDATE或DELETE操作时被自动执行的,与过程的调用(是通过调用语句调用执行)不同,因此当某事件的发生引起连环更新或其他的相应操作时,通过自动执行触发器代码实现而不用人工干预,大大减轻了维护工作,同时也很好的保证了数据的一致性。 触发器的优点是自动激发,不管什么引起数据修改(来自程序的或是来自用户的),它们都工作,所以常常用于不同数据表中的相关数据的串接修改。采用这种方法实现数据表间接的数据关联可由数据库集中维护控制,规则变化时只需修改相应的触发器即可,这样系统易于维护,提高了工作效率。 2.2 使用%TYPE、%ROWTYPE方式声明变量 程序设计中常常要通过变量来实现程序间的数据传递,即将表中数据赋值给变量,或是把变量值插入到表中。而要完成这些操作的前提就是,表中数据与变量类型要一致。然而在实际中,表中数据或类型、或宽度有时要变化,一旦变化,就必须去修改程序中的变量声明部分,否则程序将不能正常运行数据库工程师。为了减少这部分程序的修改,编程时使用%TYPE、%ROWTYPE方式声明变量,使变量声明的类型与表中的保持同步,随表的变化而变化,这样的程序在一定程度上具有更强的通用性。 3 提高程序自检能力 一个好的应用系统不仅要有好的用户界面、齐全的功能处理模块,而且要有很强的错误处理能力。因此要求编程人员要预测可能的各种情况(声明异常情态并引发),并尽可能从错误中恢复过来(编写相应异常情态处理器代码),这就是Oracle8中的异常部分的程序设计内容。然而这部分的设计绝非易事。在异常部分的最后设置OTHERS异常情态处理器是个很好的编程习惯,因为它为运行时刻捕捉到的其它错误指明了处理去向,从而保证了程序的正常运行。

#p#分页标题#e#

●采用统一的标识符命名规则。对于诸如变量名、子程序名、触发器名fifaol3球员数据库等据库对象命名时,应尽量能表示其功能用途或含义。 ●对于过程性语句与程序块采用缩进书写风格,会使得程序结构清晰、层次分明、易阅读。 ●采用统一的字母大小写。尽管PL/SQL程序中不区分大小写,但是采用统一的字母大小写(如前文叙述的大小写约定)将在很大程度上提高程序的可阅读性。 ●加注释。 ●一条语句分多行书写,不让其自动分行。 这方面的内容大家都已很熟悉,不再详述了。 总之,良好的程序设计风格,可以在多个方面提高系统的性能,提高开发效率,很值得我们在工作中给以重视。 今天,小编为大家带来了新的关于数据库的内容。www.kokojia.com数据库教程:解读Oracle PL/SQL编程风格与系统性能提高

    关键字:

在线提交作业