数据库存储过程(Procedure)

存储过程的优点:


  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 ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- 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>
AS
BEGIN
    -- 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>
END
GO

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


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


技术分享


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


技术分享


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


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


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

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

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


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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。