2026年6月4日 星期四

SAP HANA DB indexserver.trc 出現 Reason for shrink訊息

 之前是 CPU 持續使用率變高的問題,但根本的原因可能是其他問題,比如記憶體被用爆了,造成系統強制啟用 GC讓 connection 一直在排隊, CPU一直在忙錄,使用者一直在等待,如果你跑了 performance script 檢示相關資訊也調整了相關參數還是沒有用的話,可以檢示 indexserver.trc

 indexserver.trc 出現 Reason for shrink訊息,可能是單一 sql 的效率問題,可以利用 StatementHash or StatementExecutionID 去 DB 查詢 sys view M_EXPENSIVE_STATEMENTS 找到對應的 sql並利用 explain plan 去檢示寫法是否有問題並修正。

 以這一次經驗來說,發現系統導入顧問的一個 view 寫法很有問題,原本可以用 max + group by 的方式找出最新一筆的資料,但他徧徧用 row_number  + where rownum =1 的方式寫,這種寫法就是把 db 給搞掛了的元兇,而且是開了好幾次 case 請顧問查看此問題但卻一直沒有發現。   

 

沒有留言:

張貼留言