寫了個存盤程序, 傳入的引數是日期, 作用是將一些資料做統計, 再insert到A表, 再update A表幾個欄位, 執行方法如select p_aaa(20200214); p_aaa(20200215); select p_aaa(20200216); p_aaa(20200217);
我第一次執行select p_aaa(20200214); 只花了4秒,
第二次執行select p_aaa(20200215); 等了3分鐘才出結果. 通過top看, cpu跑99%, 通過vmstat看, 沒有io等待.
有種判斷CPU跑100%是沒加索引, 但我為了查找這個問題, 我的select p_aaa(20200214) 和 select p_aaa(20200215) 是處理一樣的資料, 差別只是會新增一行資料而已.
最神奇的是, 我修改了p_aaa的存盤程序, 只是添加了1個空格, 保存修改.
再執行select p_aaa(20200215), 也是只花了4秒左右,
但我再執行select p_aaa(20200216)時, 有時候是執行select p_aaa(20200217)的時候, 又卡住了, 等了很久一直沒出結果. 我實在不理解呀.

也就是說, 要么你重啟db, 要么你修改存盤程序(哪怕就添加個空格), 也能使p_aaa跑1-2次, 然后就卡住了.
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/30006.html
標籤:PostgreSQL
