存储过程包含带有 SQL 语句的过程构造。存储过程存储在 DB2? 数据库中,并在 DB2 服务器上运行。应用程序可以按名称调用存储过程,并运行包括在存储过程中的 SQL 语句。应用程序可以在客户机上,而存储过程在服务器上执行它的逻辑。
存储过程和用户定义的函数有时统称为例程。
使用存储过程的应用程序具有下列优点:
减少了网络流量
使用存储过程会减少网络流量和提高总体应用程序性能,原因是存储过程可在数据库服务器上执行即时处理而不通过网络传递不必要的数据。存储过程只传递客户机应用程序需要的记录。
通常,应用程序以一次一个的形式发出的 SQL 语句在网络中要传递两次。存储过程可以将 SQL 语句集中在一起,以便每组 SQL 语句在网络中只传递一次。集中在存储过程中的 SQL 语句越多,网络流量减少的程度也就越大,而且保持数据库锁定的时间也就越短。减少网络流量和数据库锁定的时长将提高总体网络性能并减少锁争用问题。
处理大量 SQL
生成的数据但仅将数据的子集显示给用户的应用程序会导致网络流量过大,原因是在最终处理前会将所有数据返回至客户机。存储过程可以在服务器上进行处理,并且仅将必要的数据发送给客户机,这将减少网络使用。
增强了硬件和软件能力
使用存储过程的应用程序可以访问服务器系统上增加的内存和磁盘空间。这些应用程序也可以访问仅安装在数据库服务器上的软件。可以在具有足够的内存和处理器的系统上分布可执行业务逻辑。
增强的安全性
通过将数据库特权与使用静态 SQL 的存储过程包括在一起,数据库管理员(DBA)可以增强安全性。创建存储过程的人员具有存储过程需要的数据库特权。调用存储过程的客户机应用程序的用户不需要这类特权,这会降低需要这些特权的用户数。
减少了开发成本并增强了可靠性
在数据库应用程序环境中,重复许多任务。重复的任务可能包括返回一组固定数据或执行同一组至数据库的多个请求。存储过程成为执行这类重复出现的任务的高效方式。
对常用例程集中了安全性、管理和维护
在服务器上的某一位置管理共享逻辑可以简化安全性、管理和维护。客户机应用程序可以调用运行 SQL 查询(有很少或没有其它处理)的存储过程。对存储过程的更改将立即可用于所有使用它的客户机应用程序