SAP CRM One Order关于索引表CRMD_ORDER_INDEX的一些性能问题的分析
From: Wang, Jerry
Sent: Wednesday, March 19, 2014 11:54 AM
Subject: FW: custom development in IC search for Customer
下面是SAP CRM One Order搜索進入DB層處理的入口。
如果我只按照Service order的creation date搜,在后臺的標準實現還是和我們own的product search類似,最后拼open sql。
拿到guid之后,再從index table里取其他字段:
之所以出現99.7%時間花在DB access on CRMD_ORDER_INDEX上,在于下圖第40行的FOR ALL ENTIRES。后面跟的internal table it_guids_for_update里面entry越多,性能越差。
6259 records during Mar 9th 5-7 o’clock, 1244 during Mar 8th 21-23 o’clock
例如客戶在周日上午5點到7點就有6259個新訂單生成,那么一個月之內的訂單數量是個非常龐大的數字,所以FOR ALL ENTRIES性能非常差。
但是第一個版本就用的For all entries,可能當初寫代碼的時候沒有考慮潛在的性能問題。IBASE和PRODUCT的實現里都用的OPEN CURSOR +PACKAGE SIZE。
即使底層DB是HANA, 在數據庫執行搜索時,FOR ALL ENTRIES IN it_table一樣會把it_table里的所以entry展開成
IN( A, B, C, D, E … )的execution plan然后執行,效率不高。
總結
以上是生活随笔為你收集整理的SAP CRM One Order关于索引表CRMD_ORDER_INDEX的一些性能问题的分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网页Cookie如何获取
- 下一篇: SAP Cloud for Custom