0
假設我在某些表ON插入時有一些觸發器。 我如何知道實際需要插入的時間以及執行觸發器所需的時間?在postgres中運行的詳細時間
假設我在某些表ON插入時有一些觸發器。 我如何知道實際需要插入的時間以及執行觸發器所需的時間?在postgres中運行的詳細時間
如果您使用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
。
@SMW:不,您只會看到每個觸發器的執行時間 –