1.7 过度使用触发器

尽管也能用Java语言来写触发器代码,但触发器通常还是用PL/SQL编写。由于性能的原因,过度使用触发器是不理想的。数据库表中行的变化在SQL引擎中执行而触发器是在PL/SQL引擎中执行,如果触发器频繁触发,程序就会遭遇到十分严重的上下文切换问题。

在一些情况下,触发器是无法避免的。例如,复杂业务中的合法性验证就不可避免要用到触发器。在这些情况下,你应当在合法性验证很复杂时才用PL/SQL编写,而要避免滥用触发器进行简单的合法性验证。例如,用check约束而不是用一个触发器来验证列的值是否在合法值代码清单之内。

还有,应避免对一个触发事件使用多个触发器。不要为一个事件编写两个触发器,而应当把它们合并为一个,以使上下文切换的次数最小化。

目录