假设我在某些表上插入了一些触发器。 我如何知道插入实际需要的时间以及执行触发所需的时间?
答案 0 :(得分:1)
如果对触发触发器的语句使用explain (analyze, verbose)
,则会在表上看到每个触发器的执行时间。
所以如果你有一个带有触发器的表foo
,并运行这样的东西:
explain (analyze, verbose)
insert into foo (id)
values (1);
您将获得与此类似的输出:
Insert on foo (cost=0.00..0.01 rows=1 width=0) (actual time=938.776..938.776 rows=0 loops=1)
-> Result (cost=0.00..0.01 rows=1 width=0) (actual time=0.014..0.014 rows=1 loops=1)
Output: 1
Planning time: 0.040 ms
Trigger foo_trg: time=937.371 calls=1 <<<< here
Execution time: 938.802 ms
请注意explain (analyze)
实际上会运行该语句。所以将插入新行。如果你不想要,你需要rollback
。