PostgreSQL系统表、视图归纳总结及相关运维SQL

embedded/2024/12/22 13:56:01/

文章目录

  • 一、系统表归纳总结
  • 二、性能相关视图
    • 2.1 pg_stat_activity
    • 2.2 pg_lock
    • 2.3 pg_stat_database
  • 三、相关运维SQL

一、系统表归纳总结

PostgreSQL 必知内容
跟oracle数据库一样,pg数据库也有自己的系统表和视图,在查询问题的时候会涉及到。

序号系统表内容
1pg_class该系统表记录了数据表、索引(仍然需要参阅pg_index)、序列、视图、复合类型和一些特殊关系类型的元数据,以及其之间的关系
2pg_attribute
3pg_database该系统表存储数据库的信息,每个集群一份而不是每个数据库一份
4pg_index存储索引的部分信息,其它的信息大多数存储在pg_class
5pg_indexes系统视图提供对数据库中每个索引有用信息的访问
6pg_partition系统表存储数据库内所有分区表、分区、分区索引、分区上toast表
7pg_object系统视图,存储数据库对象信息
8pg_proc系统表存储函数或存储过程的信息
9pg_user可以看到数据库中所有用户以及用户id和权限
10pg_user_status系统表提供了访问数据库用户的状态
11pg_authid系统表存储有关数据库认证标识符(角色)的信息
12pg_trigger系统表存储触发器信息
13pg_stat_activity会话视图
14pg_lock锁信息
15pg_stat_database每个数据库的统计信息

二、性能相关视图

2.1 pg_stat_activity

此视图显示和当前用户查询相关的信息,字段保存的是上一次执行的信息,管理员可以在任意一个库直接查所有会话信息。

sql">查看正在运行的语句
select datname,usename,state,pid from pg_stat_activity;
查询系统中长时间运行的查询语句
select current_timestamp-query_start as runtime,datname,usename,query from pg_stat_activity where state !='idle' order by 1 desc;
查询运行时间超过一定阈值的语句
select query from pg_stat_activity where current_timestamp - query_start > interval '1 days';
查询阻塞状态的语句
select datname,usename,state,query from pg_stat_activity where waiting=true;

2.2 pg_lock

存储各打开事务所持有的锁信息

sql">查看执行SQL是否被锁
select * from pg_locks;
根据会话查询锁信息
select t1.locktype,t1.relation::regclass,t1.virtualxid,t1.transactinid,t1.mode,t1.granted,t2.datname,t2.usename,t2.state,t2.query from pg_locks t1 join pg_stat_activity t2 on t1.pid =t2.pid where t1.pid!=pg_backend_pid();
select * from pg_locks t1 left join pg_stat_activity t2 on t1.pid=t2.pid;

2.3 pg_stat_database

该视图包含每个数据库的统计信息

sql">select * from pg_stat_database where datname='XXX';

三、相关运维SQL

sql">查询表字段信息
select t2.relname as tablename,t1.attname as colname,t3.typname as coltype,t1.attlen as length from pg_attribute t1 inner join pg_class t2 on t1.attrelid=t2.oid inner join pg_type t3 on t1.attrelid=t3.oid where t2.relname='XXX';
查询分区表
select p.relname,c.relname from pg_partition p,pg_class c where p.parentid=c.oid;
查询分区表属性信息
select t1.oid,t1.relname,partstrategy,boundaries,t1.reltablespace,t1.parentid from pg_partition t1,pg_class t2 where t1.parentid=t2.oid and t2.relname ='XXX' and t1.parttype='p';
查看表及索引状态
select t1.relname,t3.tablename,t1,relpersistence,t1.relkind,t1.parttype,t2.indnatts,t2.indisusable,t2.indisvalid from pg_class t1 join pg_index t2 on t1.oid=t2.indexrelid join pg_indexes t3 on t1.relname=t3.indexname where t1.relname='XXX';
查询存储过程信息
select pg_get_userbyid(proowner) as owner,procname,prokind,prosrc from pg_proc where proname ='XXXX';
查询用户信息
select * from pg_user;
查询用户状态
select t2.rolname,t1.failcount,t1.locktime,t1.rolstatus,t1.passwordexpired from pg_user_status t1 inner join pg_authid t2 on t1.roloid=t2.oid;

http://www.ppmy.cn/embedded/50159.html

相关文章

李沐:用随机梯度下降来优化人生!

大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 今天我们来聊聊达叔 6 大核心算法之 —— 优化 算法。吴恩达:机器学习的六个核心算法! 梯度下降优化算法是机器…

小程序使用接口wx.getLocation配置

开通时需详细描述业务,否则可能审核不通过 可能需要绑定腾讯位置服务,新建应该,绑定到小程序 配置 权限声明:在使用wx.getLocation前,需要在app.json的permission字段中声明对用户位置信息的使用权限,并提…

微信 小程序应用,页面,组件的生命周期

组件生命周期 组件的生命周期:指的是组件自身的一些钩子函数,这些函数在特定的时间节点时被自动触发 组件的生命周期函数需要在 lifetimes 字段内进行声明 最重要的生命周期是 created attached detached 包含一个组件生命周期流程的最主要时间点 定…

一行代码实现鼠标横向滚动

🧑‍💻 写在开头 点赞 收藏 学会🤣🤣🤣 在项目中我们可能会遇到当鼠标在某个区域内,我们希望滚动鼠标里面的内容可以横向滚动; 比如我们一些常见的后台状态栏: 那这种该怎么写&…

群体优化算法----火山爆发算法介绍以及离散优化Pareto最优解示例

介绍 火山爆发算法(Volcano Eruption Algorithm,VEA)是一种新兴的群智能优化算法,其灵感来源于火山爆发的自然现象。火山爆发算法模拟了火山爆发过程中熔岩流动和喷发的行为,以寻找全局最优解。这种算法利用了火山爆发…

【自动驾驶】ROS小车系统介绍

文章目录 小车组成轮式运动底盘的组成轮式运动底盘的分类轮式机器人的控制方式感知传感器ROS决策主控ROS介绍ROS的坐标系ROS的单位机器人电气连接变压模块运动底盘的电气连接ROS主控与传感器的电气连接运动底盘基本组成电池电机控制器与驱动器控制器与运动底盘状态数据&#xf…

【全开源】医护上门系统小程序APP公众号h5源码

医护上门系统:健康守护,就在您身边 🚪引言:开启全新的医护模式 在快节奏的现代生活中,健康问题往往成为我们关注的焦点。而“医护上门系统”正是为了满足这一需求,将专业的医疗服务送到您的家中。这一创新…

直接用sql语句来查询和分析excel表,不需要导数据,提供了sql语句自动生成,不会sql也能用

用sql语句来查询excel表,我们需要把excel表格导入到数据库中,然后用数据库的管理工具写sql语句来进行查询。方法有很多,我们不一一描述。 今天我们要说的是直接用sql语句来查询和分析excel表。为什么有这么一个想法呢?程…