postgresql 死锁/进程/主键/常用sql查询

-- 查询被锁住的表
(SELECT pid FROM pg_stat_activity where query ~ 'fzqh_3_fzqhjg_1_45947')
-- 中止进程
select pg_terminate_backend((SELECT pid FROM pg_stat_activity where query ~ 'fzqh_3_fzqhjg_1_45947' LIMIT 1));

  

查询被锁的语句

select T.PID, T.STATE, T.QUERY, T.WAIT_EVENT_TYPE, T.WAIT_EVENT, T.QUERY_START 
from PG_STAT_ACTIVITY T
where T.DATNAME = 'postgres' and T.WAIT_EVENT_TYPE = 'Lock';

  

删除时终止语句

select pg_terminate_backend(pid),query from pg_stat_activity
where  query ~* 'tablename' and pid <> pg_backend_pid();

  

 

ps -ef |grep postgres |wc -l  -- 进程统计相当于连接数

SELECT count(*) FROM pg_stat_activity;  -- 连接数查询

-- 根据进程号查询sql
SELECT procpid, START, now()-START AS lap, current_query FROM (
    SELECT backendid, pg_stat_get_backend_pid (S.backendid) AS procpid,
    pg_stat_get_backend_activity_start (S.backendid) AS START,pg_stat_get_backend_activity (S.backendid) AS current_query  
FROM (SELECT pg_stat_get_backend_idset () AS backendid) AS S) AS S WHERE current_query <> '<IDLE>' and procpid=205542
ORDER BY lap DESC;

  

表主键查询

select pg_constraint.conname as pk_name,pg_attribute.attname as colname,pg_type.typname as typename from 
pg_constraint  inner join pg_class 
on pg_constraint.conrelid = pg_class.oid 
inner join pg_attribute on pg_attribute.attrelid = pg_class.oid 
and  pg_attribute.attnum = pg_constraint.conkey[1]
inner join pg_type on pg_type.oid = pg_attribute.atttypid
where pg_class.relname = 'pre_country_house_crx_data_country_dl_partition_44' 
and pg_constraint.contype='p'

   

大表count查询

Select reltuples::bigint as estimate_rows from pg_class where relnamespace = 'public'::regnamespace and relname='zh_ls_4_fzztj_sum'

 空间索引创建

 索引查询

-- 查询
select * from pg_indexes where tablename = 'l_jcsj_view_11_1';
-- 删除
DROP INDEX test_index;
-- 创建空间索引
CREATE INDEX l_zhpg_nzw_jcsj_view_11_1_gis_index ON l_jcsj_view_11_1 USING GIST (geom);

  对已存在的表添加列 和注释

alter table tableName add COLUMN columnName varchar(50);
comment on column tableName.columnName is '注释';

  对已存在的列设置主键

ALTER TABLE tableName ADD CONSTRAINT xxx_xxx_primary_pk PRIMARY KEY (列);

  创建自增

DROP SEQUENCE IF EXISTS {table_name}_nid_seq;
CREATE SEQUENCE {table_name}_nid_seq
START WITH 1
INCREMENT BY 1 NO MINVALUE NO MAXVALUE
CACHE 1;
alter table trans.{table_name} alter column nid set default nextval('{table_name}_nid_seq');

  

posted @ 2021-12-01 13:05  qukaige  阅读(273)  评论(0编辑  收藏  举报