合 PG视图之pg_stat_database查询命中率、提交率等
Tags: PGGreenPlumpg_stat_database命中率提交率
简介
pg_stat_database
视图将包含一行用于集群中的每个数据库,加一行用于共享对象,显示数据库范围的统计信息。
pg_stat_database
视图
列类型描述 |
---|
datid oid 该数据库的OID,属于共享关系的对象为0 |
datname name 这个数据库的名称,或者共享对象为NULL 。 |
numbackends integer 当前连接到此数据库的后端数,对于共享对象则为NULL 。 这是该视图中唯一返回反映当前状态的值的列;所有其他列返回自上次重置以来累积的值。 |
xact_commit bigint 此数据库中已提交的事务数 |
xact_rollback bigint 该数据库中已回滚的事务数 |
blks_read bigint 在该数据库中读取的磁盘块数 |
blks_hit bigint 在缓存中发现磁盘块的次数,因此读取不是必需的(这只包括在PostgreSQL缓存中,而不是在操作系统的文件系统缓存中) |
tup_returned bigint 这个数据库中查询返回的行数 |
tup_fetched bigint 这个数据库中查询获取的行数 |
tup_inserted bigint 查询在该数据库中插入的行数 |
tup_updated bigint 这个数据库中查询更新的行数 |
tup_deleted bigint 这个数据库中被查询删除的行数 |
conflicts bigint 由于与此数据库中的恢复冲突而取消的查询数。(冲突只发生在备用服务器上;详请参见 pg_stat_database_conflicts 。) |
temp_files bigint 这个数据库中查询创建的临时文件的数量。所有临时文件都将被计数,而不顾及临时文件为什么被创建(例如,排序或散列),也不考虑log_temp_files设置。 |
temp_bytes bigint 这个数据库中的查询写入临时文件的数据总量。所有临时文件都将被计数,而不考虑临时文件为什么被创建,也不考虑log_temp_files设置。 |
deadlocks bigint 在此数据库中检测到的死锁数 |
checksum_failures bigint 在此数据库(或共享对象)中检测到的数据页校验码失败数,如果没有启用数据校验码则为NULL。 |
checksum_last_failure timestamp with time zone 在此数据库(或共享对象)中检测到最后一个数据页校验码失败的时间,如果没有启用数据校验码则为NULL。 |
blk_read_time double precision 在这个数据库中通过后端读取数据文件块所花费的时间,以毫秒为单位(如果启用了track_io_timing,否则为零) |
blk_write_time double precision 在这个数据库中通过后端写数据文件块所花费的时间,以毫秒为单位(如果启用了track_io_timing,否则为零) |
stats_reset timestamp with time zone 这些统计数据最后一次重置的时间 |
SQL查询
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | SELECT * from (SELECT datname, blks_read::text blks_read, blks_hit::text blks_hit, xact_commit::text, xact_rollback::text, trunc((blks_hit::numeric/(blks_read + blks_hit)) * 100,2)||'%' cache_hit, trunc((xact_commit::numeric/(xact_commit + xact_rollback)) * 100,2)||'%' commit_hit, stats_reset::VARCHAR stats_reset FROM pg_stat_database where datname not in ('template0','template1') and blks_read + blks_hit > 0 ORDER BY cache_hit) aa union all select '------','','','','', trunc(sum(blks_hit)/(sum(blks_read)+sum(blks_hit))*100,2)||'%' cache_hit, trunc(sum(xact_commit)/(sum(xact_commit)+sum(xact_rollback))*100,2)||'%' commit_hit, '' from pg_stat_database d where d.datname not in ('template0','template1') ; |
重置统计信息
pg_stat_database是GreenPlum数据库中的系统表,用于存储关于数据库的统计信息,其中stats_reset字段记录了统计信息最后一次重置的时间。