使用存储过程的优缺点–SQL
A 存储过程是 SQL 中的一种代码,可以存储起来以备后用,可以多次使用。因此,无论何时需要执行查询,都可以不调用它,而只调用存储过程。您也可以将参数传递给存储过程,以便存储过程可以基于传递的参数值进行操作。
语法:
CREATE PROCEDURE procedure_name
AS
sql_statement
GO;
执行存储过程–
EXEC procedure_name;
示例:
CREATE PROCEDURE SelectAllGeeks
AS
SELECT *
FROM Geeks
GO;
优点: 存储过程的主要优点如下:
- 更好的性能– 过程调用快速高效,因为存储过程被编译一次并以可执行形式存储。因此反应很快。可执行代码被自动缓存,因此降低了内存需求。
- 更高的生产率– 由于同一段代码被反复使用,因此它会带来更高的生产率。
- 易用性– 要创建存储过程,可以使用任何 Java 集成开发环境(IDE)。然后,它们可以部署在网络体系结构的任何层上。
- 可伸缩性– 存储过程通过隔离服务器上的应用程序处理来提高可伸缩性。
- 可维护性– 在服务器上维护一个过程比在各种客户机上维护副本要容易得多,这是因为脚本在一个位置。
- 安全性– 通过允许用户仅通过以定义者权限执行的存储过程来操作数据,可以限制对 Oracle 数据的访问。
缺点: 存储过程的主要缺点如下:
- 测试– 测试封装在存储过程中的逻辑非常困难。处理存储过程中的任何数据错误直到运行时才会生成。
- 调试– 根据数据库技术,调试存储过程要么非常困难,要么根本不可能。一些关系数据库(如 SQL Server)具有一些调试功能。
- 版本控制– 存储过程不支持版本控制。
- 成本– 需要一个 DBA 形式的额外开发人员来访问 SQL 并编写更好的存储过程。这将自动产生额外的成本。
- 可移植性– 复杂的存储过程不会总是移植到同一个数据库的升级版本。在从一种数据库类型(Oracle)转移到另一种数据库类型(MS SQL Server)的情况下尤其如此。
优势 | 不足之处 |
---|---|
它更快。 | 很难调试。 |
它是预编译的。 | 需要专家开发者,既然难写代码。 |
它减少了网络流量。 | 它依赖于数据库。 |
它是可重复使用的。 | 它不可携带。 |
它的安全性很高。 | 它很贵。 |
版权属于:月萌API www.moonapi.com,转载请注明出处