Postgresql’de pg_ Katalog Tabloları

İstatistikler veri tabanının internal tablolarında tutulan  ve veri tabanının çalışması esnasında toplanan metriklerdir. Veri tabanı istatistikleri sayesinde veri tabanlarının daha performanslı çalışmasına dair optimizasyon işlemleri yapılabilir. Bunun yanında veri tabanı, toplanan bu istatistikleri kullanarak veri sorgulama işlemleri başta olmak üzere birçok operasyonun arka planda gerçekleşme adımlarına karar verir. Veri tabanı istatistikleri veri tabanı tablo gibi birçok farklı seviyede depolanır.

pg_stat_database Katalog Tablosu

Veri Tabanı seviyesinde istatistikler pg_stat_database tablosunda tutulur.

Oid : veri tabanı object id’si.

Datname : veri tabanı adı.

Numbackends : Bağlantı sayısı.

Xact_commit / rollback : Commit ve rollback edilen transaction sayısı.

Tup_inserted / updated / deleted : insert – update – delete edilen tuple sayısı

Deadlocks : deadlock sayısı.

Stats_reset : istatistiklerin son güncellenme tarihi

Pg_stat_user_tables Katalog Tablosu

Bir veri tabanında user tablolarının istatistiklerini tutan tablodur.

Relid : table’in object idsi

Schemaname : şema adını belirtir.

Seq_scan : Tablo üzerinden yapılan sıralı okuma sayısıdır.

Seq_tup_read : Tablo üzerinden sequential scan ile okunan tuple sayısıdır.

N_tup /ins/upd/del : Hangi operasyon ile kaç tuple’ın etkilendiğinin bilgisidir.

N_live_tuple : Tablo üzerindeki live tuple sayısıdır.

N_dead_tuple : tablo üzerindeki dead tuple sayısıdır.

Last_vacuum : en son yapılan manuel vacuum işleminin tarihini tutar.

Last_autovacuum : en son yapılan auto vacuum işleminin tarihini tutar.

Last_analyze : en son yapılan manuel analiz işlem tarihini tutar.

Last_auto_anayze : en son yapılan otomatik analiz işleminin tarihini tutar.

Vacuum / autovacuum count : manuel ve otomatik yapılan vacuum sayısını tutar.

Analyze / autoanalyze count : manuel ve otomatik yapılan analyze sayısını tutar.

pg_statio_user_tables Katalog Tablosu

shared buffer cache’in tablolar tarafından kullanımı hakkında bilgileri depolayar istatistik tablosudur.

Relid, schemaname ve relname tablo oid şema adı ve tablo adı gibi bilgileri tutar.

Blks_read ve blks_hit : İlgili tablonun shared buffer cache’den okunan blok sayısını ve buffer cache’de tutulan blok sayısını belirtir.

pg_stat_user_indexes Katalog Tablosu

Veri tabanında bulunan index objelerinin istatistikleri pg_stat_user_index tablosunda tutulur.

Relid : Index’in bulunduğu tablonun oid’sini ifade eder.

Indexrelid : index’in oid değerini belirtir.

Schema ve relname : Şema ve tablo isimlerini belirtir.

Indexrelname : index’in adını belirtir.

Idx_scan : İlgili index’in sorgulama işlemleri sırasında kaç kez kullanıldığını belirtir.

pg_stat_bgwriter Katalog Tablosu

Background writer process istatistiklerini tutan tablodur..

Pg_locks Katalog Tablosu

Lock bilgilerinin tutulduğu sistem tablodur. Lock tipi, lock oluşan veri tabanı ve tablo oid’leri bu katalog tablodan görüntülenebilir.

Pg_database_size() fonksiyonu

Bir veri tabanının boyutunu öğrenmek için kullanılan fonksiyondur.

Pg_table_size() fonksiyonu

Pg_table_size fonksiyonu ise bir tablonun boyutunu öğrenmek için kullanılan fonksiyondur. Tablonun object id değerini kabul ettiğinden genelde bir tablonun boyutunu öğrenmek için aşağıdaki komut kullanılır. Bir şemada size olarak boyutu en büyük tabloları bulmak için aşağıdaki komut kullanılabilir.

SELECT
relname AS “table_name”,
pg_size_pretty(pg_table_size(C.oid)) AS “table_size”
FROM
pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN (‘pg_catalog’, ‘information_schema’) AND nspname !~ ‘^pg_toast’ AND relkind IN (‘r’)
ORDER BY pg_table_size(C.oid)
DESC LIMIT 5;

Veysel YUKSEL
Latest posts by Veysel YUKSEL (see all)

Veysel YUKSEL

RDBMS ve NoSQL veri tabanı yönetimi ve Big Data teknolojileri.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir