SELECT xact_start < query_start
FROM pg_stat_activity
WHERE procpid = pg_backend_pid();
Showing posts with label pg_stat_activity. Show all posts
Showing posts with label pg_stat_activity. Show all posts
March 26, 2010
Проверяем в транзакции мы или нет
Надо проверить была ли транзакция открыта явно, т.е. с помощью BEGIN, и находится ли наш бэкенд в ней, т.е. она ещё до сих пор не закрыта. Решением будет вот такой не большой запрос:
Posted by
grayhemp
at
12:33 PM
0
comments
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
Labels:
pg_stat_activity,
postgresql,
q and a,
russian,
Sergey Konoplev,
transaction
March 24, 2010
Блокировки по процессам
Запрос выводит информацию по процессам, для каждого из которых добавляется информация по блокировкам, представляющая собой признак удерживания/ожидания блокировок и их количество. Порядок определяется этими признаком и количеством, т.е. сверху будут удерживающие наибольшее количество блокировок процессы.
Удобно смотреть с \x
Удобно смотреть с \x
SELECT
granted, -- удерживает (t)/ожидает (f)
count(1) AS locks, -- ^^^ количество блокировок
pid, -- pid
now() - xact_start AS xact_age, -- длительность транзакции
now() - query_start AS query_age, -- длительность запроса
current_query -- текущий запрос
FROM
pg_locks AS l
LEFT JOIN pg_stat_activity AS a ON
pid = procpid
GROUP BY 1, 3, 4, 5, 6
ORDER BY 1 DESC, 2 DESC
-- ORDER BY 4 DESC
LIMIT 100;
Posted by
grayhemp
at
10:04 PM
0
comments
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
Labels:
administration,
locks,
pg_locks,
pg_stat_activity,
postgresql,
q and a,
russian,
Sergey Konoplev
March 18, 2010
Мониторинг активности
Возвращает текущую активность в БД. В начале отображает ожидающие процессы, затем остальные. В каждой группе записи выстраиваются в порядке убывания длительности транзакции.
Удобно смотреть с \x
Удобно смотреть с \x
SELECT
waiting, -- ждёт?
now() - xact_start AS xact_age, -- длительность транзакции
now() - query_start AS queru_age, -- длительность запроса
procpid, -- pid
current_query -- запрос
FROM
pg_stat_activity
WHERE xact_start IS NOT NULL
ORDER BY 1 DESC, 2 DESC;
Posted by
grayhemp
at
12:55 AM
2
comments
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
Labels:
monitoring,
pg_stat_activity,
postgresql,
q and a,
russian,
Sergey Konoplev,
transaction