6 Aralık 2022 Salı

PG_STAT_ACTIVITY Sistem Tablosu - For Monitoring Performance

Giriş
Açıklaması şöyle
There are several built-in tools and utilities available in PostgreSQL for monitoring performance metrics, such as the pg_stat_activity view and the pg_stat_database view.
query_start Sütunu
Örnek
Şöyle yaparız. Böylece en uzun süredir koşmakta olan sorguları görebiliriz
SELECT now() - pg_stat_activity.query_start AS duration,
  usesysid,
  usename,
  client_addr,
  pid,
  state,
  datname,
  query,
  backend_type
FROM pg_stat_activity
order by duration desc;
state Sütunu
active/idle gibi sonuçlar verir

Örnek
Bunları state sütununa göre gruplamak için şöyle yaparız. Bağlantıların durumunu gösterir
SELECT count(*),state FROM pg_stat_activity GROUP BY 2;
 count |            state
-------+------------------------------
     7 | active
    32 | idle
    22 | idle in transaction
     4 | idle in transaction(aborted)
(4 rows)
datname Sütunu
Database name in which process is running anlamına gelir

Örnek - Kill Connection
Kendiminki hariç tüm connection'ları öldürmek için şöyle yaparız
SELECT 
    pg_terminate_backend(procpid) 
FROM 
    pg_stat_activity 
WHERE 
    -- don't kill my own connection!
    procpid <> pg_backend_pid()
    -- don't kill the connections to other databases
    AND datname = 'database_name'
    ;
pid Sütunu
Process unique id anlamına gelir

query Sütunu
Actual truncated query anlamına gelir
Örnek
Şöyle yaparız
SELECT 
  datname as database_name, 
  pid as Process_ID,
  usename as username,
  application_name,
  client_addr as Host,
  client_port as Port,
  state,
  query 
FROM pg_stat_activity;

usename Sütunu
Database username anlamına gelir
Örnek
Şöyle yaparız
SELECT pid, datname, usename, query, state
FROM pg_stat_activity;
usesysid Sütunu
Database user id anlamına gelir



Hiç yorum yok:

Yorum Gönder