摘要:創建測試表會話一備注會話一在事務里更新的記錄,并不提交。會話二備注會話二刪除的記錄,此時由于這條記錄之前被并沒有提交,這句仍然處于等待狀態。
PosttgreSQL 的SQL被鎖情況在數據庫維護過程中非常常見,之前博客 PostgreSQL 鎖分析 演示了 PostgreSQL 鎖的一些場景,在開始本文的介紹之前特做以下說明,假如會話A堵住會話B,我們稱會話B為 blocked 會話,會話A為 blokcing 會話,后續介紹時都用這兩個詞;當數據庫出現鎖時,如果對應用有影響,DBA應該在最短的時間內找到 blocking 會話并快速處理,在 9.6 版本前查找 blocking SQL 通常需要查詢 pg_stat_activity、 pg_locks 等一系列視圖,增加了故障分析的時間,9.6 版本新增 pg_blocking_pids() 函數,能夠快速找到 blocking SQL,下面模擬一個簡單的場景介紹這個函數的使用。
--創建測試表
francs=> create table test_lock(id int4,name text); CREATE TABLE francs=> insert into test_lock values(1,"a"),(2,"b"),(3,"c"); INSERT 0 3
--會話一
francs=> select pg_backend_pid(); pg_backend_pid ---------------- 22814 francs=> begin; BEGIN francs=> update test_lock set name="cc" where id=3; UPDATE 1
備注:會話一在事務里更新 ID=3 的記錄,并不提交。
--會話二
francs=> select pg_backend_pid(); pg_backend_pid ---------------- 22845 (1 row) francs=> delete from test_lock where id=3;
備注:會話二刪除ID=3的記錄,此時由于這條記錄之前被UPDATE并沒有提交,這句DELETE仍然處于等待狀態。
--監控
備注:從圖中看到之前操作的兩條 SQL,為什么 22845 會話處于等待狀態呢,運行 pg_blocking_pids 函數可以找到 blocking 會話,如下:
--查找 blocking SQL
postgres=# select pg_blocking_pids(22845); pg_blocking_pids ------------------ {22814} (1 row)
備注:22814 正是 blocking SQL, 22845 為 blocked SQL。
--總結
這篇博客僅模擬了一個簡單場景,并通過 pg_blocking_pids 函數查找 blocking
SQL,真實生產環境鎖的案例遠比這復雜,具體情況具體分析。
--參考
PostgreSQL 鎖分析
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/38976.html
摘要:數據清洗大家好,這一期我將為大家帶來我的學習心得第二期數據清理。這一期我會和大家分享一些比較好用常見的清洗方法。首先還是讓我們來簡單看一下本文將會用到的數據源這是一個超小型的房地產行業的數據集,大家會在文章最后找到下載地址。 數據清洗 大家好,這一期我將為大家帶來我的pandas學習心得第二期:數據清理。這一步非常重要,一般在獲取數據源之后,我們緊接著就要開始這一步,以便為了之后的各種...
摘要:一關于參數這個參數配置決定了每個并行操作允許的最大后臺進程數,這個值的設置受后臺進程數參數限制。查看并行順序掃描進程備注圖中可看到出現了四個進程。三測試測試之前先把的數據庫關了,在確保相等情況下進行測試。 Oracle 支持強大的并行功能,創建索引,表分析,數據加載時可以開啟并行,這項功能讓很多數據庫產品垂涎, 作為開源數據庫 PostgreSQL 在并行方面也在努力嘗試,很早之前 P...
摘要:以上出自發行說明,這段指出版本支持自動查殺超過指定時間的空閑事務連接,下面演示下。修改以下參數備注參數單位為毫秒,這里設置超時空閑事務時間為秒。數據庫日志備注數據庫日志里清晰地記錄了進程的連接由于空閑事務超時被斷開連接。 熟悉 PostgreSQL 的朋友應該知道 idle in transaction 進程,引發 idle in transaction 的原因很多,例如應用代碼中忘記...
摘要:何況不影響我們提取評論內容,只需分類出來考慮就行黑體注意下面余弦相似度這個是我開始的時候想多了大部分情況就是日期評論用戶名,后來我沒有考慮余弦相似度分類,代碼少了,精度也沒有下降。 背景 參加泰迪杯數據挖掘競賽,這次真的學習到了不少東西,最后差不多可以完成要求的內容,準確率也還行。總共的代碼,算上中間的過程處理也不超過500行,代碼思想也還比較簡單,主要是根據論壇的短文本特性和樓層之間...
閱讀 1619·2021-11-11 10:59
閱讀 2625·2021-09-04 16:40
閱讀 3650·2021-09-04 16:40
閱讀 2979·2021-07-30 15:30
閱讀 1615·2021-07-26 22:03
閱讀 3164·2019-08-30 13:20
閱讀 2225·2019-08-29 18:31
閱讀 439·2019-08-29 12:21