使用存储过程的优缺点–SQL

原文:https://www . geesforgeks . org/使用存储过程的优缺点-sql/

A 存储过程是 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)的情况下尤其如此。

优势 不足之处
它更快。 很难调试。
它是预编译的。 需要专家开发者,既然难写代码。
它减少了网络流量。 它依赖于数据库。
它是可重复使用的。 它不可携带。
它的安全性很高。 它很贵。