存储过程与触发器因为在数据库中的作用不同,因为也就没什么性能可比性。
存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。
触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS,USER_TRIGGERS 数据字典中查到。
存储过程可以使得对数据库的管理、以及显示关于数据库及其用户信息的工作容易得多。存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。
存储过程可包含程序流、逻辑以及对数据库的查询。它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。
缺点:
后期数据库的维护,不方便,应用程序的业务逻辑处理与数据操作耦合度高,不利于扩展与维护;
触发器虽然也算一种存储过程,但一般要靠insert,update,delete等操作的发生作为触发事件才被调用;(建议尽量少用,出错了不太好调试)
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221805.html原文链接:https://javaforall.net
