《PostgreSQL 谁堵塞了谁(锁等待检测)- pg_blocking_pids》
22、查询没有使用过的大于1MB的索引 top 10 (注意, PK、UK如果只是用于约束, 可能不会被统计计数,但是不能删掉)
select * from dba.top10notusedidx;
23、查询没有使用过的大于1MB的表 top 10
select * from dba.top10notusedtab;
24、查询热表top 10
select * from dba.top10hottab;
25、查询大于1MB的冷表top 10
select * from dba.top10coldtab;
26、查询热索引top 10
select * from dba.top10hotidx;
27、查询大于1MB的冷索引top 10(注意, PK、UK如果只是用于约束, 可能不会被统计计数,但是不能删掉)
select * from dba.top10coldidx;
28、查询数据库freeze风暴预测
select * from dba.v_freeze; select * from dba.v_freeze_stat; select * from dba.v_freeze_stat_detail;
查询top 20的大表大freeze剩余年龄。
select * from dba.top20freezebigtable; -- 结合dba.tps, 可以通过remain_ages_xid/dba.tps估算每个表还有多久会发生freeze. call dba.tps();
29、查询RO节点读与replay冲突次数, 建议高频恢复中的ro节点不要跑长sql。
select * from dba.ro_conflicts;
30、DBA在RO 节点人为执行SQL前, 建议设置sql超时, 避免长时间跑 SQL, 导致不必要的replay延迟和 conflict cancel statement
set statement_timeout ='1s'; set lock_timeout='10ms';
31、RO 节点的conflict容忍时间最长设置, 默认为5 min
show max_standby_streaming_delay ; max_standby_streaming_delay ----------------------------- 5min (1 row)
32、清理数据库stat计数器
\df *.*reset* List of functions Schema | Name | Result data type | Argument data types | Type ------------+----------------------------------------+--------------------------+---------------------+------ pg_catalog | pg_replication_origin_session_reset | void | | func pg_catalog | pg_replication_origin_xact_reset | void | | func pg_catalog | pg_stat_get_bgwriter_stat_reset_time | timestamp with time zone | | func pg_catalog | pg_stat_get_db_stat_reset_time | timestamp with time zone | oid | func pg_catalog | pg_stat_reset | void | | func pg_catalog | pg_stat_reset_shared | void | text | func pg_catalog | pg_stat_reset_single_function_counters | void | oid | func pg_catalog | pg_stat_reset_single_table_counters | void | oid | func public | pg_stat_statements_reset | void | | func (9 rows)
33、在standby节点执行, 检查当前standby节点接收wal的速度
call dba.wal_receive_bw();
34、在standby节点执行, 检查当前standby节点replay wal的速度
call dba.wal_replay_bw();
35、wal文件使用、slot风险查看。
select * from dba.arch_undone; select * from dba.arch_status; select * from dba.walsize; select * from dba.repslots; select * from dba.wal_keep_size; select * from dba.max_wal_size;
36、长事务、prepared statement
select * from dba.long_snapshot;
37、查询失效的索引。
select * from dba.invalid_index;
参考
《PostgreSQL 实时健康监控 大屏 - 低频指标 - 珍藏级》
《PostgreSQL 实时健康监控 大屏 - 高频指标(服务器) - 珍藏级》
《PostgreSQL 实时健康监控 大屏 - 高频指标 - 珍藏级》
《PostgreSQL Freeze 风暴预测续 - 珍藏级SQL》
到此这篇关于PostgreSQL DBA最常用SQL的文章就介绍到这了,更多相关PostgreSQL DBA常用SQL内容请搜索
更多SQL内容来自木庄网络博客