我被赋予了光荣的添加任务——非常小心!- 我们的 ERP 系统数据库的一些触发器,以“实时”从 ERP 系统获取数据到我们公司运行的其他软件。触发器不会对数据进行任何更改,只需从插入/更新行中选取一些字段,将它们汇总到 XML 消息中并将它们发送到消息队列。也不会有 JOIN。(这是否是一个好主意,这是另一个问题。)
我可以想象编写多个触发器,每个场景一个。或者我可以编写两个大型触发器,一个用于插入,一个用于更新。如果有足够的力量,我什至可以将其归结为一个在 INSERT 和 UPDATE 上运行的巨大触发器。
从测试/调试/维护的角度来看,几个独立的触发器具有明显的优势:每个触发器都可以单独编写、测试和启用/禁用。每个触发器都会检查相应表中刚刚发生的事情是否与该触发器相关,如果是,它将执行其操作,如果不是,它将退出。
但是,我担心多个触发器可能会导致性能问题。我应该附加这些触发器的表将频繁的 INSERT 和 UPDATE 查询视为正常操作的一部分[1]。(OTOH,到目前为止,数据库服务器上的负载相对较轻。)
是否有关于哪种方法更好的一般准则?
非常感谢您能够分享的任何信息,本杰明
[1] 在这种情况下,频繁意味着“繁忙的一天每分钟有几十笔交易”。