Sobes.tech
Junior — Middle

Hogyan azonosíthatjuk és elemezhetjük a hosszú ideig futó lekérdezést PostgreSQL-ben?

sobes.tech MI

Válasz az MI-től

A PostgreSQL-ben hosszú ideig tartó lekérdezések azonosításához használhatja a pg_stat_activity rendszernézetet, amely megmutatja a jelenlegi aktív lekérdezéseket és azok futási idejét. Például a következő lekérdezés:

SELECT pid, now() - query_start AS duration, query
FROM pg_stat_activity
WHERE state = 'active'
ORDER BY duration DESC
LIMIT 5;

lehetővé teszi az öt leghosszabb aktív lekérdezés megtekintését.

Mélységi elemzéshez engedélyezheti a lassú lekérdezések naplózását a postgresql.conf fájlban:

log_min_duration_statement = 1000  # naplózza az 1000 ms-nél hosszabb ideig tartó lekérdezéseket

Ezután minden, ennél az időnél hosszabb lekérdezés rögzítésre kerül a naplókban.

Hasznos lehet profilozó eszközök és az EXPLAIN ANALYZE használata a konkrét lekérdezések végrehajtási tervének elemzéséhez és a szűk keresztmetszetek azonosításához.