SQL触发器如何影响性能?

时间:2019-07-11 13:23:01

标签: postgresql database-trigger

我的Postgresql表中有一个名为traffic的表。我的流量表交易触发了一些触发器。我有两个名为trigger1trigger2的触发器。当行插入,更新或删除行时,将触发这些触发器。我想知道,SQL触发器如何影响事务性能?

如果我的流量表插入事务花费1毫秒,而trigger1花费2毫秒,而trigger2花费3毫秒,插入花费1 + 2 + 3 = 6毫秒吗?还是总插入事务1毫秒和触发器分别运行?

2 个答案:

答案 0 :(得分:0)

触发器作为数据修改语句的一部分运行,因此,当语句完成时,触发器也是如此。在您的示例中,INSERT将花费6毫秒。

这里有一个延迟约束触发器是一个例外,它将在整个事务提交后运行。如果您正在运行包含多个语句的事务,则这些触发器将在语句完成后运行。但是事务的总运行时间将是相同的。

答案 1 :(得分:0)

如果要批量插入/更新,则可以从语句级触发器中获得一些好处。这是劳伦兹·阿尔贝(Laurenz Albe)撰写的有关此主题的好博客文章,他已经向您发表评论。

https://www.cybertec-postgresql.com/en/rules-or-triggers-to-log-bulk-updates/