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;
- AWS nedir? – Cloud 101 - Mayıs 16, 2024
- Vector Databases - Mayıs 15, 2024
- Data Dünyası Nereye Gidiyor? - Mayıs 8, 2024