表上有多个小触发器与单个大触发器

时间:2012-11-01 06:23:52

标签: oracle triggers

  

可能重复:
  Consolidate several Oracle triggers. Any performance impact?

问题: 哪一个最好(性能)?每个情况/目的都有一个多个触发器(大约7-10个),或者处理所有情况的一个触发器(通过使用if等)。

详情: 我们正在开发基于 Oracle数据库的企业应用程序。我们有一个大约3M行的表,这是我们的应用程序的基表。并且有几种情况我们只需要使用触发器来处理。恕我直言,为了维护,最好有多个触发器。但性能呢?

2 个答案:

答案 0 :(得分:0)

在我的情况下,单个触发器比多个小触发器快得多。为什么我不知道。

答案 1 :(得分:0)

我看不出多个触发器的执行速度会明显加快。唯一的权衡是他们不会执行条件逻辑,只能节省一小部分时间。

这实际上是一个设计/维护问题...比方说,你想要设法代码给你定时信息:如果你有一个触发器,那么你只需要进入一个程序,而有多个触发器,你需要到多个地方来检测代码。

另外,请考虑使用CASE语句而不是IF(它更清晰/更容易阅读/维护)。