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.