postgresql常见视图

postgresql常见视图

查询所有用户信息

select * from pg_user

查询所有角色信息

select * from pg_roles

查询所有配置信息

select * from pg_settings

1. 查询全局权限

SELECT rolname, rolsuper, rolcreatedb, rolcreaterole, rolcanlogin 
FROM pg_roles 
WHERE rolname = 'your_user_name';

2. 查询表级别权限

SELECT grantee, table_schema, table_name, privilege_type 
FROM information_schema.role_table_grants 
where grantee='read_write_role'

3. 查询数据库对象的权限

你可以查询 pg_class 视图结合 pg_roles 和 pg_namespace,来查看用户对特定数据库对象(如表、视图、序列等)的权限:

SELECT 
  grantee, 
  table_schema, 
  table_name, 
  privilege_type 
FROM 
  information_schema.role_table_grants 
WHERE 
  grantee = 'your_user_name';

SELECT 
  grantee, 
  table_schema, 
  table_name, 
  privilege_type 
FROM 
  information_schema.role_table_grants 
	where table_name='abc'

select * from pg_stat_activity;

查看数据库的统计信息

select * from pg_stat_database 

其中pg_stat_database显示以下信息:
- 已提交的事物总数
- 已回滚的事物总数
- 已读取的磁盘块总数
- 缓冲去命中的总数
- 行插入、行读取、行删除的总数
- 死锁发生的次数
- 读数据块的总时间
- 写数据块的总时间

查看表的统计信息

select * from pg_stat_all_tables
select * from pg_stat_sys_tables
select * from pg_stat_user_tables
select * from pg_stat_all_indexes
select * from pg_stat_user_indexes
select * from pg_stat_sys_indexes

pg_stat_all_tables pg_stat_sys_tables pg_stat_user_tables 这三张视图的内容相似,只是pg_stat_all_tables显示的是所有表的统计信息,而pg_stat_sys_tables系统表的统计信息,pg_stat_user_tables是用户表的统计信息
内容如下:

  • 顺序扫描的总数
  • 顺序扫描抓取的活数据行(liverow)的数目
  • 索引扫描的总数(属于该表的所有索引)
  • 索引扫描抓取的活数据行的数据
  • 插入的总行数、更新的总行数,删除的总行数。HOT(heap only tuple)更新的总行数
  • 上次手动vacuum该表的时间,上次由autovacuum自动清理该表的时间
  • 上次手动analyze该表的时间,上次由autovacuum自动analyze该表的时间
  • vacuum的次数(不包括vacuum full)
  • autovacuum的次数
  • analyze的次数
  • 由autovacuum自动analyze此表的次数

postgresql还提供了对数据库内函数的调用次数以及其他信息进行统计的视图

该视图

select * from pg_stat_user_functions

- 每个函数调用的次数
- 执行每个函数花费的总时间
- 执行函数是它自身花费的总时间,不包括它调用其他函数花费的时间

postgressql还提供了以下各个对象发生I/O情况的统计视图

select * from pg_statio_all_tables
select * from pg_statio_user_tables
select * from pg_statio_sys_tables
select * from pg_statio_all_indexes
select * from pg_statio_user_indexes
select * from pg_statio_sys_indexes
select * from pg_statio_all_sequences
select * from pg_statio_user_sequences
select * from pg_statio_sys_sequences

- 数据块的读取总数
- 缓存区命中的总数
posted @ 2026-05-12 15:49  数据库小白(专注)  阅读(22)  评论(0)    收藏  举报