Postgresql

pgAdmin 是否增加了查詢時間成本?

  • September 6, 2022

我剛剛寫了一個很長的問題,關於我做了什麼來優化一個相當簡單的查詢,這個查詢花費的時間比我希望的要長得多。我一直在向 pgAdmin 查詢。然後我使查詢變得越來越簡單,直到我最終查詢了一個新創建的表的主鍵,其中只有 1 行。

create table perf_test (id bigint primary key);

然後查詢:

select
 count(t.id)
from
 perf_test t
where
 t.id = 1
;

消息輸出是:

Successfully run. Total query runtime: 66 msec.
1 rows affected.

我需要優化從我的應用程序發出時通常需要大約 30-40 毫秒的查詢。如果 pgAdmin 中的執行時間對於所有最簡單的查詢來說已經高得多,我該如何試驗和測量性能?

是的,pgAdmin 增加了很多延遲成本。我很驚訝你甚至可以將它降低到 66 毫秒。

答案很簡單,不要將 pgAdmin 用於這樣的事情。

要嘗試找出查詢緩慢的原因,您應該EXPLAIN (ANALYZE, BUFFERS)在查詢上使用。pgAdmin 確實提供了一種方法來做到這一點,但 IME 比僅僅通過psql或使用 auto_explain 將計劃擷取到日誌文件中更糟糕。

您正在查看錯誤的指標

總查詢執行時間:66 毫秒。

pgAdmin 中的這份簡歷包括網路延遲和客戶端成本。用於EXPLAIN (ANALYZE, BUFFERS)詳細的查詢計劃和EXPLAIN (ANALYZE, TIMING OFF)最短時間。客戶端對於這個指標完全無關緊要,您可以從伺服器獲得時間,而無需網路延遲和客戶端成本。

看:

引用自:https://dba.stackexchange.com/questions/316490