好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 解決postgresql 數據庫 update更新慢的原因

解決postgresql 數據庫 update更新慢的原因

熱門標簽:地圖標注要花多少錢 400電話申請客服 天津開發區地圖標注app 電話機器人怎么換人工座席 電銷機器人能補救房產中介嗎 移動外呼系統模擬題 廣州電銷機器人公司招聘 江蘇400電話辦理官方 濟南外呼網絡電話線路

;大約140000條數據) 竟然運行了一個小時還沒有完成
下面是我的幾點解決方案
我的update 語句 是從一個臨時表更新值到另一個正式表
因為具體數據需要保密,我就不截圖了 只說說大體思路,與方法

1.查看語句是否有問題

復制倆個一模一樣的表 和數據 手動執行語句 發現不到一分鐘就運行成功了 這樣就可以確認語句沒有問題

2.查找影響updata的因素

我的第一反應是不是有鎖 有鎖的情況會導致等待或者死鎖

查詢鎖

select w1.pid as 等待進程,
w1.mode as 等待鎖模式,
w2.usename as 等待用戶,
w2.query as 等待會話,
b1.pid as 鎖的進程,
b1.mode 鎖的鎖模式,
b2.usename as 鎖的用戶,
b2.query as 鎖的會話,
b2.application_name 鎖的應用,
b2.client_addr 鎖的IP地址,
b2.query_start 鎖的語句執行時間
from pg_locks w1
join pg_stat_activity w2 on w1.pid=w2.pid
join pg_locks b1 on w1.transactionid=b1.transactionid and w1.pid!=b1.pid
join pg_stat_activity b2 on b1.pid=b2.pid
where not w1.granted;
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE pid='62560'

查詢到有鎖 把鎖進程殺掉 重啟服務 繼續跟蹤 發現5分鐘后 又出現鎖了 反復試了幾次發現跟鎖沒有關系

3.查詢參數

首先看的的 是shared_buffers 參數,發現也沒有問題

4.收縮表 VACUUM

查詢數據進程時,發現自動收縮 也執行10分鐘還沒好 就查詢表收縮的情況

用于服務器監控,可查詢進程,時間消耗與鎖相關

SELECT 

C.relname 對象名稱,
l.locktype 可鎖對象的類型,
l.pid 進程id,
l.MODE 持有的鎖模式,
l.GRANTED 是否已經對鎖進行授權,
l.fastpath,
psa.datname 數據庫名稱,
psa.usesysid 用戶id,
psa.usename 用戶名稱,
psa.application_name 應用程序名稱,
psa.client_addr 連接的IP地址,
psa.client_port 連接使用的TCP端口號,
psa.backend_start 進程開始時間,
psa.xact_start 事務開始時間,
psa.query_start 事務執行此語句時間,
psa.state_change 事務狀態改變時間,
psa.wait_event_type 等待事件類型,
psa.wait_event 等待事件,
psa.STATE 查詢狀態,

backend_xid 事務是否有寫入操作,
backend_xmin 是否執事務快照,

psa.query 執行語句,
now( ) - query_start 持續時間

FROM

pg_locks l
INNER JOIN pg_stat_activity psa ON ( psa.pid = l.pid )
LEFT OUTER JOIN pg_class C ON ( l.relation = C.oid )
-- where l.relation = 'tb_base_apparatus'::regclass

where relkind ='r'
ORDER BY query_start asc

查詢是否到達自動清理的表

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;

然后發現死元祖太多
然后我手動收縮了這個表 之后更新的就快了

VACUUM FULL VERBOSE 表名;
VACUUM FULL VERBOSE ANALYZE 表名;

5.總結

遇到這種情況 先需求確保你的sql語句沒有問題,然后查看有沒有鎖 可以EXPLAIN 一下 ,看看數據庫參數,是不是數據庫的性能原因 最后再看看是不是需要收縮表

到此這篇關于解決postgresql 數據庫 update更新慢的原因的文章就介紹到這了,更多相關postgresql 數據庫 update更新慢內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • PostgreSQL實現批量插入、更新與合并操作的方法
  • 基于PostgreSQL和mysql數據類型對比兼容
  • 將MySQL數據庫移植為PostgreSQL
  • PostgreSQL使用MySQL外表的步驟詳解(mysql_fdw)
  • PostgreSQL使用MySQL外表的步驟詳解(mysql_fdw)
  • 實現MySQL + PostgreSQL批量插入更新insertOrUpdate

標簽:榆林 溫州 濮陽 海西 杭州 昭通 寶雞 辛集

巨人網絡通訊聲明:本文標題《解決postgresql 數據庫 update更新慢的原因》,本文關鍵詞  解決,postgresql,數據庫,update,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《解決postgresql 數據庫 update更新慢的原因》相關的同類信息!
  • 本頁收集關于解決postgresql 數據庫 update更新慢的原因的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 女人18毛片一级毛片会员很大| 国产成人调教视频在线观看| 明里柚作品番号| 李知恩三级大尺度电影| 中文字幕视频一区二区三区| 农村黄A三级三级三级| ass少妇浓毛PiCS| 国产精品久久久久久久久久元玛| 日本久久道一区二区三区| 亚洲日产综合欧美一区二区| 欧美一卡2卡三卡4卡无卡免费下载| 国产美女精品视频国产AV| 国产精品秘?黄动漫视频| 日韩在线国产精品| 久久这里一区二区精品| 丝袜足液精子免费视频| 立即播放免费毛片一级| jiZZ日本ZZZ日本护士多水 | 后λ式吃奶动态后λ式视频| yin荡公交车+多人+高cH| 日本黄色免费在线视频| 被主人在教室羞耻调教 | 裙底偷窥网站| 国产三级不卡| 被窝福利视频| 另类视频色综合| 99久re热视频精品98| HEYZO高清国产精品| 尤物国产在线精品三区| 韩国仙女屋19禁韩宝贝| 浪货你夹的我好紧h| 无码中文字幕av毛片不卡一卡二| 侵犯の奶水授乳无码日本动漫| 一区二区美女| 国产精品亚洲精品| GOGO全球高清大尺度电影戏梦巴黎 | 久久久久免费一级毛片蜜臀av| ?国产精品海角社区| 日韩欧免费一区二区三区 | 日本电影一区二区三区| 東京熱大亂交在线AV一区二区 |