- 1、本文档共23页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * 工程数据管理 西安工程大学机电工程学院 机电工程学院 工程数据管理 授课人:张勇 西安工程大学机电工程学院 7. 存储过程 存储过程(stored procedures)是存储在服务器上的一组预编译的SQL语句,这些语句在一个名称下存储,并作为一个单元进行处理,存储过程在第一次执行时进行语法检查和编译。编译好的版本存储在过程高速缓存中用于后续调用,这样就可以使存储过程执行时更加迅速和高效. 所以上次说过存储过程也可以提高数据访问效率。存储过程由应用程序激活,而不是由SQL自动执行。在执行重复任务时存储过程可以提高性能和一致性,因为它们在第一次执行时就完成编译了。同时存储过程可以带有和返回用户提供的参数。 西安工程大学机电工程学院 7. 存储过程 另外,SQL的存储过程可以接受输入参数并以输出参数的形式将多个值返回至调用过程或批处理;包括执行数据库操作的编程语句;可以向调用过程或批处理返回状态值,以表明成功或失败。 由于SQL支持用户提供的变量,可以返回、修改值,也可以将用户提供的信息和系统预请示的信息进行比较,具有非常强大的功能。所以它可以在最大程度上发挥出SQL的潜能。 西安工程大学机电工程学院 7. 存储过程 存储过程概述 20世纪80年代末期,sybase公司在SQL产品中首创了存储过程的概念,存储过程是一种把重复的操作封装起来的方法,一个存储过程包括了一组经常执行的逻辑完整的命令。存储过程在创建后就作为数据库的一部分存储起来交赋给一个名字,叫做存储过程的名字。用户通过指定存储过程的名字并给出参数(如果有参数)来执行它。以便程序员能将存储过程作为一个函数来调用,但它又不同于函数,函数是用表达式来表达的,存储过程是SQL命令来表达的。 西安工程大学机电工程学院 7. 存储过程 存储过程有以下优点: 1)存储过程可以重复使用,可减少数据库开发人员的工作量。 2)减少网络流量,存储过程是存放在服务器上的预先编译好的单条或多条SQL语句,应用程序通过网络在一个数据库服务器上执行上百条的大量的SQL语句时,当用户比较多时,网络和数据库服务器的运行就变得越来越慢,存储过程的使用可以在很大程度上减小这种通信负担。因为在使用存储过程时,无需在网上发送上百个SQL语句了,或是将大量数据从服务器下载到客户端后再进行处理,而是只执行一条执行存储过程的命令就可以完成,这样大大减小了减轻了网络和服务器的负担。 西安工程大学机电工程学院 7. 存储过程 3)存储过程可以提高执行性能。存储过程开始执行后,其中包含的SQL语句在数据库服务器上按顺序执行,在过程完成后,所得结果的信息和数据才返回到用户的终端上。而且存储过程实际上只是在第一次使用时被编译,编译后的映像和过程存储在服务器上,因此不必每次执行时都编译它,也就是第二次开始执行时不用编译,可直接调用。这些特点都极大的提高了执行性能。 4)安全性高。通过对执行某一存储过程的权限进行限制,也就是给用户授予访问存储过程的权限,而不是授予要访问存储过程中涉及的表或视图的权限,从而实现对相应的数据访问权限的限制,避免非授权用户对数据的访问,保证数据的安全。 西安工程大学机电工程学院 7. 存储过程 但是,使用存储过程也有自身的缺点: 1)存储过程不能实现复杂的逻辑操作。(像and,not,or等) 2)对存储过程的管理比较困难。当使用的存储过程的数量非常多时,记忆每个存储过程的功能以及存储过程之间的调用关系几乎是不可能的。 西安工程大学机电工程学院 7. 存储过程 在SQL中有5种存储过程:系统存储过程,本地存储过程,临时存储过程,远程存储过程和扩展存储过程。 1)系统存储过程就是系统创建的存储过程,目的在于能够方便地从系统表中查询信息或完成与更新数据库表相关的管理实例或其它的系统管理实例。其实SQL中很多管理活动都是通过一些系统的存储过程来执行的,系统存储过程以“sp_”为前缀,有时也有XP_为前辍。存储在master数据库中,为检索系统表的信息提供快捷方式,尽管这些存储过程存储在master数据库中,但仍可以在其它数据库中对其进行调用。 西安工程大学机电工程学院 7. 存储过程 2)本地存储过程(SQL2008里叫用户自定义存储过程) 本地存储过程是用户自己创建在数据库中的存储过程,这种存储过程是用户创建的普通存储过程,它因为是自定义的,所以在命名存储过程时不能给名字前加前缀SP_,因为这和系统存储过程有时会重名。 3)扩展存储过程 这个存储过程允许用户使用编程语言创建自己的外部程序,这里的外部程序可以是常用的一些开发语言,如C、JAVA等,其实扩展存储过程指的是在SQL环境外执行的DDL动态链接库(数据库模式定义语言DDL(Data Definition Language ),前缀是“XP
文档评论(0)