這是一個找table bloat原因的case |
哈哈...如果你想知道來龍去脈 |
事件的起源如這篇Po文 : |
Tuning Example IV: EDB(Postgres) DB 主機 CPU 滿載 |
不想知道的話 |
我直接告訴你原因 |
因為MVCC的設計 |
有session正參照到已經被delete的資料 |
因此vacuum不管跑幾次 |
表格就是一直長大 |
大到了影響效能 |
這是Vacuum執行所出現的關鍵字串 |
DETAIL: 42427 dead row versions cannot be removed yet. |
這是我覺得可能造成dead row無法移除的session |
當然也得感謝某人在今天不斷地追問 |
我也只好鍥而不捨地把真正地原因找出來 |
不然我也只是看到前人用drop table來解決 |
而且還得把AP停掉... |
前兩天我聽到的時候 |
還在納悶...為什麼要停AP |
哈.......................... |
參考資料如下 : |
THREE REASONS WHY VACUUM WON’T REMOVE DEAD ROWS FROM A TABLE |
VACUUM VERBOSE outputs, nonremovable “dead row versions cannot be removed yet”? |