📜  使用存储过程的优缺点-SQL

📅  最后修改于: 2021-08-24 05:04:03             🧑  作者: Mango

存储过程是SQL中的一种代码,可以存储供以后使用,并且可以多次使用。因此,只要您需要执行查询,就可以调用存储过程,而不必调用它。您还可以将参数传递给存储过程,以便该存储过程可以根据传递的参数值来执行操作。

句法 :

CREATE PROCEDURE procedure_name
AS
sql_statement
GO; 

要执行存储过程–

EXEC procedure_name;

例子 :

CREATE PROCEDURE SelectAllGeeks
AS
SELECT * 
FROM Geeks
GO; 

好处 :
存储过程的主要优点如下:

  1. 更好的性能 –
    由于存储过程被编译一次并以可执行形式存储,因此过程调用快速而有效,因此响应很快。可执行代码会自动缓存,因此降低了内存需求。
  2. 更高的生产力 –
    由于一次又一次地使用同一段代码,因此可以提高生产率。
  3. 使用方便 –
    要创建存储过程,可以使用任何Java集成开发环境(IDE)。然后,它们可以部署在网络体系结构的任何层上。
  4. 可扩展性–
    存储过程通过隔离服务器上的应用程序处理来提高可伸缩性。
  5. 可维护性–
    与在各种客户端计算机上维护副本相比,在服务器上维护过程要容易得多,这是因为脚本位于一个位置。
  6. 安全 –
    通过允许用户仅通过以其定义者权限执行的存储过程来操纵数据,可以限制对Oracle数据的访问。

缺点:
存储过程的主要缺点如下:

  1. 测试–
    测试封装在存储过程内部的逻辑非常困难。直到运行时,才会生成处理存储过程中的任何数据错误。
  2. 调试–
    根据数据库技术的不同,调试存储过程将非常困难或根本无法进行。某些关系数据库(例如SQL Server)具有某些调试功能。
  3. 版本控制–
    存储过程不支持版本控制。
  4. 成本 –
    需要使用DBA形式的额外开发人员来访问SQL并编写更好的存储过程。这将自动产生额外的费用。
  5. 便携性–
    复杂的存储过程并不总是移植到同一数据库的升级版本。从一种数据库类型(Oracle)转移到另一种数据库类型(MS SQL Server)的情况下尤其如此。

Advantages Disadvantages
It is faster. It is difficult to debug.
It is pre-compiled. Need expert developer, since difficult to write code.
It reduces network traffic. It is database dependent.
It is reusable. It is non-portable.
It’s security is high . It is expensive.