当前位置: 首页 > news >正文

postgresql 高频使用语句

postgresql 高频使用语句

1. 查询表以及索引
1.1 数据库

查看当前数据库

>SELECT current_database();

查看所有数据库

>\l

切换数据库

>\c NEW_DATABASE
1.2 表

查询当前库下的所有表

>\dt

查询数据库所有的表

>select * from pg_tables;

查询表字段

> SELECT * FROM information_schema.columns WHERE table_name = 'tag';  

查询表结构信息

\d+ pg_tables;
1.3 索引

查询索引

>SELECT * FROM pg_indexes WHERE tablename = 'task';  
>\d+ pg_tables;

添加索引

>CREATE INDEX CONCURRENTLY idx_repository_name on artifact(repository_name);
2. 查看慢查询的连接
-- 查看所有活动连接及其执行时间
SELECT pid,usename,application_name,client_addr,state,now() - query_start AS duration,query
FROM pg_stat_activity
WHERE state = 'active'AND now() - query_start > interval '5 seconds'  -- 设置慢查询阈值
ORDER BY duration DESC;
分析语句
>EXPLAIN SELECT * FROM project_blob WHERE project_id = 104;
查询当前有排他锁的进程
SELECT -- 锁信息lock.locktype, lock.mode, lock.granted,  -- 是否已获得锁lock.pid,      -- 持有/等待锁的进程ID-- 进程信息proc.query, proc.query_start, now() - proc.query_start AS duration, proc.state, proc.wait_event_type,proc.wait_event,-- 锁对象信息(表/行)CASE lock.locktypeWHEN 'relation' THEN pg_class.relnameWHEN 'tuple' THEN pg_class.relname || ' (行锁)'ELSE NULLEND AS locked_object,lock.page, lock.tuple,  -- 行锁的行号-- 阻塞关系blocked.pid AS blocked_pid  -- 被该锁阻塞的进程
FROM pg_locks lock
LEFT JOIN pg_stat_activity proc ON lock.pid = proc.pid
LEFT JOIN pg_class ON lock.relation = pg_class.oid
LEFT JOIN pg_locks blocked_lock ON lock.locktype = blocked_lock.locktype AND lock.relation = blocked_lock.relation AND lock.page = blocked_lock.page AND lock.tuple = blocked_lock.tupleAND NOT blocked_lock.granted
LEFT JOIN pg_stat_activity blocked ON blocked_lock.pid = blocked.pid
WHERE lock.mode = 'RowExclusiveLock'  -- 筛选行级排他锁AND lock.granted = true             -- 已持有的锁
ORDER BY duration DESC;
SELECTa.pid,a.query,a.query_start,now() - a.query_start AS duration,a.state,a.wait_event_type, l.mode,l.granted,relname AS locked_table
FROM pg_locks l
JOIN pg_stat_activity a ON l.pid = a.pid
LEFT JOIN pg_class c ON l.relation = c.oid
WHERE l.mode = 'AccessShareLock'AND l.granted = true
ORDER BY duration DESC;
http://www.dtcms.com/a/554123.html

相关文章:

  • tiago moveit环境配置过程
  • 怎么做婚庆网站平台京东seo是什么意思
  • 认识linux -- 编辑器vim以及编译器gcc/g++和Makefile文件
  • 金仓KES RWC:高并发写入场景下的数据库优化解决方案
  • RabbitMQ详细介绍
  • 迅为RK3562开发板重新挂载remount
  • discuz修改网站标题硬件开发岗位要求
  • StarRocks Data Agent
  • golang封装可扩展的crontab
  • 南京美容网站建设饿了吗网站建设思路
  • 投诉网站怎么做做短视频的能跟几个网站签约
  • 网站维护怎么收费腾讯企点官网入口
  • 高频 Redis 面试题答案解析
  • wordpress 导航站主题系统自动删除了wordpress
  • LeetCode 面试经典 150_链表_分隔链表(65_86_C++_中等)(拆分+尾插法)
  • 一种MP3文件的压缩方法
  • 做网站时候图片和视频放在哪里c 2015 做网站
  • puppeteer函数笔记,设置token跳过登录、自动选择图片上传等
  • 雄安网站建设400多少钱郑州关键词网站优化排名
  • 在使用openfe出现NameError: name ‘exit‘ is not defined的解决方案
  • 【计算机通识】认识 RESTful API
  • 使用cJosn将数据读写文件
  • 做软件搜狗seo软件
  • 仿土巴兔网站建设学院网站建设流程
  • DeerFlow多智能体项目分析-向量数据库实现知识检索的源码解析
  • 001前端查询组件
  • AI在线客服搭建实战指南:三步构建7×24小时智能服务系统
  • TSMaster常用函数
  • 伯位数智模式为商家经营带来的变革与机遇
  • 网盘怎么做电影网站网站在公司做有什么要求吗