PostgreSQL數據庫鎖表查詢


 

--執行時間超過 10s 的語句
select * from pg_stat_activity where state<>'idle' and now()-query_start > interval '10 s'
--鎖表
SELECT * FROM pg_stat_activity where datname='bms' and wait_event_type='Lock'--limit 10

 

--將進程殺掉
select pg_cancel_backend("死鎖那條數據的pid值")
--運行完后,再次刷新這個表,sql就可順利執行。
select pg_cancel_backend(27280);

 

--數據庫 整理 查詢(查詢死元組情況)
SELECT
c.relname 表名,
(current_setting('autovacuum_analyze_threshold')::NUMERIC(12,4))+(current_setting('autovacuum_analyze_scale_factor')::NUMERIC(12,4))*reltuples AS 自動分析閾值,
(current_setting('autovacuum_vacuum_threshold')::NUMERIC(12,4))+(current_setting('autovacuum_vacuum_scale_factor')::NUMERIC(12,4))*reltuples AS 自動清理閾值,
reltuples::DECIMAL(19,0) 活元組數,
n_dead_tup::DECIMAL(19,0) 死元組數
FROM
pg_class c

LEFT JOIN pg_stat_all_tables d

ON C.relname = d.relname
WHERE
c.relname LIKE'tb%' AND reltuples > 0
AND n_dead_tup > (current_setting('autovacuum_analyze_threshold')::NUMERIC(12,4))+(current_setting('autovacuum_analyze_scale_factor')::NUMERIC(12,4))*reltuples;

 

--修改密碼--重建索引
alter user bms_select with password 'QD6eXed6'
alter user bms_report with password 'Ucj1UW3BriA2KlW'
REINDEX INDEX idx_business_time

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM