PostgreSQL统计信息挖掘

PG提供了丰富的统计信息,但是没有将这些统计信息使用的简单查询搞成存储过程,需要我们自己根据需要灵活的去挖掘,最近做了数据库监控,用了一些简单的东西,于是想往深了挖一下。

首先看看系统表和视图,他们都有哪些作用:

系统表

pg_aggregate 聚集函数 pg_am 索引访问方法 pg_amop 访问方法操作符 pg_amproc 访问方法支持过程 pg_attrdef 字段缺省值 pg_attribute 表的列(”属性”,”字段”) pg_authid 认证标识符(角色) pg_auth_members 认证标识符成员关系 pg_autovacuum 每个关系一个的自动清理配置参数 pg_cast 转换(数据类型转换) pg_class 表,索引,序列,视图(”关系”) pg_constraint 检查约束,唯一约束,主键约束,外键约束 pg_conversion 编码转换信息 pg_database 本集群内的数据库 pg_depend 数据库对象之间的依赖性 pg_description 数据库对象的描述或注释 pg_index 附加的索引信息 pg_inherits 表继承层次 pg_language 用于写函数的语言 pg_largeobject 大对象 pg_listener 异步通知 pg_namespace 模式 pg_opclass 索引访问方法操作符表 pg_operator 操作符 pg_pltemplate 过程语言使用的模板数据 pg_proc 函数和过程 pg_rewrite 查询重写规则 pg_shdepend 在共享对象上的依赖性 pg_statistic 优化器统计 pg_tablespace 这个数据库集群里面的表空间 pg_trigger 触发器 pg_type 数据类型

系统视图

pg_group 数据库用户的组  
pg_indexes 索引  --根据pg_index、pg_class、pg_namespace、pg_tablespace来查具体索引的schemaname、tablename、indexname、tablespace、indexdef信息
pg_locks 当前持有的锁  
pg_prepared_xacts 目前准备好的事务  
pg_roles 数据库角色  
pg_rules 规则  
pg_settings 参数设置  
pg_shadow 数据库用户  
pg_stats 规划器统计  
pg_tables 表  
pg_user 数据库用户  
pg_views 视图

 

还有很多系统视图用于统计数据库状态信息的: 

pg_stat_activity : 查看当前活动会话状态的视图
pg_stat_bgwriter : 只有一行数据,显示集群内后台写的相关情况,记录一些checkpoint ,buffer 的信息 
pg_stat_database : 显示集群内数据库信息的视图
pg_stat_all_tables : 记录当前数据库中所有表的统计信息,包括(toast表)
pg_stat_all_indexes : 记录当前数据库中所有的索引的使用情况
pg_stat_sys_indexes : 记录当前数据库中所有系统表的索引的使用情况
pg_stat_user_indexes : 记录当前数据库中所有用户表的索引的使用情况
pg_stat_database_conflicts : 每个数据库一行数据,记录数据库里面冲突信息,记录由于冲突而导致被取消掉是查询语句的次数
pg_stat_replication :记录复制的相关信息,包括复制用的用户名,复制类型,同步状态 等
pg_stat_sys_tables : 与 pg_stat_all_tables相似,不过只是记录了系统表的统计信息
pg_stat_user_tables : 与 pg_stat_all_tables相似,不过只是记录了用户自己建的表统计信息
pg_stat_xact_all_tables : 与 pg_stat_all_tables相似,记录所有表在当前会话中的统计信息,仅统计当前会话发生在表上的统计统计信息
pg_stat_xact_sys_tables : 与 pg_stat_sys_tables相似,记录系统表表在当前会话中的统计信息,仅统计当前会话发生在表上的统计统计信息
pg_stat_xact_user_tables : 与 pg_stat_user_tables相似,记录系统表表在当前会话中的统计信息,仅统计当前会话发生在表上的统计统计信息
pg_statio_all_tables : 记录当前数据库中所有表的IO信息,包括(toast表),包括堆栈块的读取数,堆栈块命中的次数,索引块读取数,索引块命中的次数等
pg_statio_sys_tables : 与 pg_statio_all_tables相似,只是记录系统表IO的信息
pg_statio_user_tables : 与 pg_statio_all_tables相似,只是记录用户表IO的信息
pg_statio_all_indexes : 记录当前数据库中所有索引的IO信息,其中数值idx_blks_read 跟 idx_blks_hit 与 pg_statio_all_tables 中索引的读取跟命中是一致的
pg_statio_sys_indexes : 与 pg_statio_all_indexes 类似,只是记录系统表的索引的IO信息
pg_statio_user_indexes : 与 pg_statio_user_indexes 类似,只是记录用户表的索引的IO信息
pg_statio_all_sequences : 记录当前库中所有序列的读取数跟命中数
pg_statio_sys_sequences : 与 pg_statio_all_sequences 类似,只是展示系统建立序列的IO信息而已
pg_statio_user_sequences :与 pg_statio_all_sequences 类似,只是展示用户建立序列的IO信息而已
pg_stat_user_functions : 记录用户创建的函数的统计信息,只有开启了 track_functions = all ,才会有数据
pg_stat_xact_user_functions : 显示当前会话中所使用的函数的统计信息
pg_stat_archiver: 数据库归档信息

 

posted @ 2018-01-17 15:50  狂神314  阅读(433)  评论(0编辑  收藏  举报