天天看點

SAP CRM 性能小技巧

導言

本頁面打算收集SAP CRM實施中可以用于避免性能問題的注意事項,重要的事項會由

SAP CRM 性能小技巧

圖示辨別。

如果你有其他的技巧想要說出來,别猶豫!

性能注意事項

通用

SAP CRM 性能小技巧
緩存讀取類通路,特别是在性能關鍵的地方,比如字段檢查,這時要避免資料庫查詢。
SAP CRM 性能小技巧
嘗試把所有的東西放在同一個CRM_ORDER_MAINTAIN調用當中,以避免不必要的開銷。編輯多文檔的時候也是一樣,需要被替換為一個調用。
SAP CRM 性能小技巧
不要無限制地使用SAP内部API,比如,隻讀取需要的資料就可以,而不是整個業務。
SAP CRM 性能小技巧
總是把性能放在心上,特别是在實作經常被調用的代碼的時候。這也包括,要事先預計好代碼被調用的情況。
SAP CRM 性能小技巧
.在維護業務後,不要忘記使用CRM_ORDER_INITIALIZE函數,以釋放緩存占用的記憶體。
SAP CRM 性能小技巧
  ABAP Programming and Performance Notes  要考慮到通用的性能指導方針(避免嵌套循環、資料庫的反複查詢)更多資訊請看:ABAP Programming 和 Performance Notes。
SAP CRM 性能小技巧

處理行項目的時候,不要通過header guid 使用函數CRM_ORDERADM_I_READ_OB(比如行項目層級的事件回調),這對性能來說極為關鍵,特别是在處理大量項目的時候。

在僅僅是讀取目前項目所在層級的時候,應使用函數CRM_ORDERADM_I_STRUCT_READ_OB。

系統設定

SAP CRM 性能小技巧
閱讀note 1162685 以擷取有關CRM WebClient UI設定的通用資訊。
SAP CRM 性能小技巧
SAP CRM 性能小技巧
閱讀note 1162605 ,關于如何改善CRM WebClient UI使用中的網絡性能。
SAP CRM 性能小技巧
閱讀note 1281896 以擷取有關CRM WebClient UI共享記憶體大小設定的資訊。

擴充性

SAP CRM 性能小技巧
不在字段檢查中放置性能昂貴的代碼。
SAP CRM 性能小技巧
SAP CRM 性能小技巧
為增強進行運作時性能評估(考慮到包含API調用的整個運作期間,并不是隻有附加的代碼會導緻性能問題,問題也有可能是不适當的API調用所導緻的)。
SAP CRM 性能小技巧
不使用生成的表擴充處理垃圾資料。
SAP CRM 性能小技巧
在生成擴充時,你可以考慮關閉通用的檢查、實作一個專門的檢查,以提高性能。

事件處理器

SAP CRM 性能小技巧
不要将行項目交叉地放到各個立即執行的回調函數中,而是應該放在文檔處理的結尾處。
SAP CRM 性能小技巧
SAP CRM 性能小技巧

Always keep the concept of secondary

transaction categories ("Nebenbus") in your mind. Make sure that newly

registered EC function modules only run for the desired objects.

SAP CRM 性能小技巧
隻有在真的需要某個值的時候,才應該在事件處理器回調中請求資料。
SAP CRM 性能小技巧
使用CRMD_TRACE來找到事件處理器回調注冊(應當被放置)的正确位置。

報表架構

SAP CRM 性能小技巧
 搜尋使用者指定字段的時候,考慮擴充合适的索引表。閱讀note 1527039.
SAP CRM 性能小技巧
 要考慮到權限檢查也是查詢過程的一部分,并仔細觀察查詢權限檢查對資料庫查詢帶來的影響。

定價, VMC, 産品配置

SAP CRM 性能小技巧
盡可能降低價格處理的複雜性:考察多種情況,檢查不常用的情況類型,限制價格處理的通路數量,使用合适的請求禁止某些在進行中不需要的條件。
SAP CRM 性能小技巧
SAP CRM 性能小技巧
查閱note 1269480 擷取有關配置、VMC和IPC的性能問題。
SAP CRM 性能小技巧
查詢note 1005457 擷取VMC設定(Java 堆).
SAP CRM 性能小技巧
VMC日志隻需要記錄錯誤。
SAP CRM 性能小技巧

CRM IPC定價公式實作的基本準則:

- 不要進行表通路。自建表的讀取不會被IPC緩存,是以應當在CRM服務端實作定價準備步驟。 I

- 在使用者出口(user exit)的實作中,避免運作時錯誤(空指針異常)。

- 在使用者出口處避免使用循環。

CRM功能自定義

SAP CRM 性能小技巧
Actions:保持條件盡可能的簡單,不管它是一個計劃(scheduling condition)或者是初始條件(starting conditions)。這使得Actions條件和報表查詢的速度更快。
SAP CRM 性能小技巧
SAP CRM 性能小技巧
Actions:對複雜的計劃和起始條件使用各自的BAdI EVAL_SCHEDCOND_PPF 或EVAL_STARTCOND_PPF來實作,這樣可以獲得比使用基于工作流的條件更高的性能。基于條件的工作流通常會由一個解釋器來解釋并且通路資料,這會成為性能的瓶頸。
SAP CRM 性能小技巧
SAP CRM 性能小技巧
Actions: 操作:對不同的業務場景使用不同的PPF配置。這可以讓運作時變快,因為檢查的條件和更少,配置的需要加載的Actions也更少。
SAP CRM 性能小技巧

Actions: 狀态檢查應當被視為計劃條件模組化,而不是初始條件。被計劃條件填滿的Actions,會在應用初始化其删除之前持續存在。在某些情況下,這可以導緻不必要的PPF選擇報表的長時間運作。

一個初始條件應該隻是導緻導緻action運作的延遲,條件的其它部分必須是計劃條件的一部分。

SAP CRM 性能小技巧
預約:在日期配置資訊中移除不需要的日期,例如如果你沒有使用賬單計劃的話
SAP CRM 性能小技巧
修改文檔:檢查是否可以無效化某個文檔的修改功能。(可以通過業務類型自定義使其無效,辨別是‘No Change Docunments’)

關于Actions的更多資訊,請參考Action profiles in SAP CRM

Web Client UI 架構

SAP CRM 性能小技巧
隻把需要的視圖/assignment blocks放置在UI上面。如果視圖/assignment blocks不是經常需要的,使用懶加載模式。
SAP CRM 性能小技巧
SAP CRM 性能小技巧
不在元件控制器中的DO_PREPARE_OUTPUT方法中使用性能昂貴的代碼,因為在每次往返過程中,它都要被處理。
SAP CRM 性能小技巧
SAP CRM 性能小技巧
不要隻是為了防止讀取到緩存中未更新的資料而繞過BOL緩存。要尋找資料不一緻的原因,并且修改其中的問題。
SAP CRM 性能小技巧
不使用複雜的綁定(更新一個節點,将引發多個其它節點的更新,以及/或者一串其它節點)。
SAP CRM 性能小技巧
注冊事件時,不要忘記解除注冊(否則,事件處理器将仍然被調用,甚至在不再需要的情況下)。
SAP CRM 性能小技巧
在UI元件中,不使用ALL元件集。否則會消耗不必要的記憶體。

本文連結:http://www.cnblogs.com/hhelibeb/p/6103685.html

英文原文:Performance Tips and Tricks

繼續閱讀