数据库存储过程(Procedure)

来源:互联网 发布:折半查找的递归算法 编辑:程序博客网 时间:2024/06/10 17:11

存储过程的优点:


  1. 提高运行速度。这是因为SQL语句大部分准备工作已经完成大大减少了时间。

  2. 增强了SQL的功能和灵活性。存储过程本身有很强的灵活性,能完成复杂的逻辑判断和复制的运算。

  3. 可以降低网络的通讯量。

  4. 减轻了程序编写的工作量,存储过程可以反复调用,并可供其他前端应用程序共享应用逻辑。

  5. 实现安全控制功能。


存储过程的种类:


  • 系统存储过程

  • 用户自定义存储过程

  • 扩展存储过程


存储过程的格式:

-- Template generated from Template Explorer using:-- Create Procedure (New Menu).SQL---- Use the Specify Values for Template Parameters -- command (Ctrl-Shift-M) to fill in the parameter -- values below.---- This block of comments will not be included in-- the definition of the procedure.-- ================================================SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author:      <Author,,Name>-- Create date: <Create Date,,>-- Description: <Description,,>-- =============================================CREATE PROCEDURE <Procedure_Name, sysname, ProcedureName>     -- Add the parameters for the stored procedure here    <@Param1, sysname, @p1> <Datatype_For_Param1, , int> = <Default_Value_For_Param1, , 0>,     <@Param2, sysname, @p2> <Datatype_For_Param2, , int> = <Default_Value_For_Param2, , 0>ASBEGIN    -- SET NOCOUNT ON added to prevent extra result sets from    -- interfering with SELECT statements.    SET NOCOUNT ON;    -- Insert statements for procedure here    SELECT <@Param1, sysname, @p1>, <@Param2, sysname, @p2>ENDGO

存储过程是编译好的SQL语句,而SQL语句如果写在代码中,需要及时编译,然后才能运行,是在运行时编译的,这就增加了时间,也增加了客户端和服务器之间的网络流量。


不使用存储过程客户端和服务器端的通讯次数:


这里写图片描述


使用存储过程客户端和服务器通讯次数:


这里写图片描述


使用存储过程后客户端和服务器之间的通讯次数就会减少,服务器只传回一个执行成功与否的参数就可以。


什么情况下使用存储过程?


  • 对数据库进行复杂操作时;

  • 需要优化,提高软件运行速度时;

  • 当对软件的安全性要求比较高时;


编译好的存储过程可以让很多人重复使用,何乐而不为!

2 0
原创粉丝点击