>How to monitor the Hits on database and how many hits on each user tables > Through query.
*Do these help? You can run them through a cron job.* *-- For all databases* *SELECT pg_stat_database.datname, pg_stat_database.blks_read, pg_stat_database.blks_hit, round((pg_stat_database.blks_hit::double precision / (pg_stat_database.blks_read + pg_stat_database.blks_hit +1)::double precision * 100::double precision)::numeric, 2) AS cachehitratio FROM pg_stat_database WHERE pg_stat_database.datname !~ '^(template(0|1)|postgres)$'::text ORDER BY round((pg_stat_database.blks_hit::double precision / (pg_stat_database.blks_read + pg_stat_database.blks_hit + 1)::double precision * 100::double precision)::numeric, 2) DESC;* *-- For all tables in a specific database (you need to iterate through all db's)* *SELECT n.nspname, s.relname, c.reltuples::bigint, c.relfrozenxid, age(c.relfrozenxid) AS age_frozenxid, n_live_tup, n_tup_ins, n_tup_upd, n_tup_del, date_trunc('second', last_vacuum) as last_vacuum, date_trunc('second', last_autovacuum) as last_autovacuum, date_trunc('second', last_analyze) as last_analyze, date_trunc('second', last_autoanalyze) as last_autoanalyze , round( current_setting('autovacuum_vacuum_threshold')::integer + current_setting('autovacuum_vacuum_scale_factor')::numeric * C.reltuples) AS av_threshold ,CASE WHEN reltuples > 0 THEN round(100.0 * n_dead_tup / (reltuples)) ELSE 0 END AS pct_dead, CASE WHEN n_dead_tup > round( current_setting('autovacuum_vacuum_threshold')::integer + current_setting('autovacuum_vacuum_scale_factor')::numeric * C.reltuples) THEN 'VACUUM' ELSE 'ok' END AS "av_needed"* * FROM pg_stat_all_tables s JOIN pg_class c ON c.oid = s.relid JOIN pg_namespace n ON (n.oid = c.relnamespace) WHERE s.relname NOT LIKE 'pg_%' AND s.relname NOT LIKE 'sql_%' ORDER by 1, 2;* On Sat, May 5, 2018 at 8:13 AM, Pavel Stehule <pavel.steh...@gmail.com> wrote: > > > 2018-05-05 13:03 GMT+02:00 PT <wmo...@potentialtech.com>: > >> On Fri, 4 May 2018 17:14:39 +0530 >> nikhil raj <nikhilraj...@gmail.com> wrote: >> >> > Hi, >> > Any one can please help me out >> > >> > How to monitor the Hits on database and how many hits on each user >> tables >> > Through query. >> > Is there any other tools for that so it can full fill my requirement >> for it >> >> pgBadger has always been my goto tool for that: >> https://github.com/dalibo/pgbadger >> >> > There are some statistic per tables: .. select * from pg_stat_user_tables, > indexes: select * from pg_stat_user_indexes, and databases: select * from > pg_stat_database; > > Regards > > Pavel > > -- >> Bill Moran <wmo...@potentialtech.com> >> >> > -- *Melvin Davidson* *Maj. Database & Exploration Specialist* *Universe Exploration Command – UXC* Employment by invitation only!