什么是存储过程?

礼包大厅

定义

存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。

优缺点

优点:

重复使用:存储过程可以重复使用,从而可以减少数据库开发人员的工作量。

减少网络流量:存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。

安全性:参数化的存储过程可以防止SQL注入式攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程。

缺点:

更改比较繁琐:如果更改范围大到需要对输入存储过程的参数进行更改,或者要更改由其返回的数据,则仍需要更新程序集中的代码以添加参数、更新 GetValue() 调用,等等,这时候估计比较繁琐。

可移植性差:使用存储过程封装业务逻辑将限制应用程序的可移植性。如果应用程序的可移植性在您的环境中非常重要,则需要将业务逻辑封装在不特定于 RDBMS 的中间层中。

调用方式

一般使用 call procedure_name(param1,……)

也可以使用 exec procedure_name(param1,……)

对比

对比匿名块

存储过程是经过预编译并存储在数据库中的,可以重复使用;而匿名块是未存储在数据库中,从应用程序缓存区擦除后,除非应用重新输入代码,否则无法重新执行

对比函数

存储过程:可在单个存储过程中执行一系列SQL语句。而且可以从自身内引入其他存储过程。函数:自定义函数有着诸多限制。

Copyright © 2088 今日游戏江湖 - 全品类网游活动聚合 All Rights Reserved.
友情链接