понедельник, 15 января 2018 г.

Вакуум, статистика

-- примерное количестов записей в таблице
 SELECT relname,reltuples AS approximate_row_count FROM pg_class where relowner=22268 and relkind='r' order by 2 desc

-- информация по вакууму и статистике
select 'vacuum analyze '||schemaname||'.'||relname||';' as tbl,last_vacuum,last_analyze,last_autovacuum,autovacuum_count,last_autoanalyze,
       (
        SELECT reltuples AS approximate_row_count
          FROM pg_class
         where relowner=22268 and relkind='r' and relname=att.relname
       ) as apx_row_nums
  from pg_stat_all_tables att
 where att.schemaname not in ('pg_catalog','pg_toast','prm_analytics','prm_ctp','public',
                              'prm_log','auth','prm_analytics_rep','information_schema','prm_root')
 --
 /*
 and
 autovacuum_count=0 and
 last_autovacuum is null and
 last_autoanalyze is null and
 last_vacuum is null
 --
 */
 order by att.autovacuum_count desc

 commit;

Статистика по запросам

 select pss.*
   from pg_stat_statements pss
  where pss.query not like 'FETCH ALL IN cursor%' and
        pss.query not like 'CLOSE cursor%' and
        pss.query not like '%privilege%' and
        pss.query not like 'SET datestyle%'
 order by pss.total_time desc