您位於此處:
關於 Salesforce Spiff 中的資料最佳化和效能
設計師與佣金引擎共用相同的基礎邏輯,這表示您在組態期間所做的決策會直接影響大規模的陳述式效能。
設計師與佣金引擎
設計師與佣金引擎在基礎上類似,但用途不同。設計師使用佣金引擎即時顯示計算結果,如同試算表一般。佣金引擎會隔離計算陳述式,並將固定數量的記憶體和時間分配給每個陳述式。
此表格顯示每個項目的主要特性。
| 設計師 | 佣金引擎 |
|---|---|
| 在您建立時即時顯示計算結果,類似試算表。 | 產生完成的佣金對帳單,每個帳單會與其他帳單分開計算。 |
| 在主控台下使用佣金引擎,因此其行為會反映引擎在生產環境中執行的動作。 | 以無保證順序處理陳述式—一個代表的陳述式不會封鎖或影響另一個代表的陳述式。 |
| 「設計師」中的逾時錯誤表示相同的邏輯會在生產環境中造成效能壓力。 | 每個陳述式都會收到記憶體與處理時間的固定配置。 |
| 「設計師」中的逾時或記憶體錯誤是要最佳化的訊號,但並非一律表示對陳述式計算發生問題。由於「設計師」限制較低,因此您可能會在「設計師」中看到錯誤,這些錯誤不會在與陳述式相同的邏輯執行時顯示。 | 如果陳述式超出其配置,請連絡 Salesforce 支援以要求增加記憶體或時間限制。 |
| 適合生產效能的早期 Proxy,如果在 Designer 中逾時,則在引擎中會遇到困難。針對較大且更複雜的計畫,可能無法避免 Designer 錯誤。在這些情況下,成功的陳述式計算是適當的目標,因為「設計師」的成功並非永遠可達成或必要。 | 只有儲存在「捕捉追蹤」中的資料可用於報告。關閉欄位的追蹤會將其從報告和匯出中移除。 |
由於「設計師」的記憶體與處理限制低於佣金引擎,因此「設計師」中的逾時是調查和最佳化的有用訊號,但這並不一定表示陳述式計算會失敗。針對較小的組態,Designer 中的逾時通常表示相同的邏輯在陳述式規模上會遇到困難。針對較大的或更複雜的計畫,即使相等陳述式成功計算,也可能會發生 Designer 逾時。
當陳述式超過其記憶體或時間配置時,有兩個路徑可供使用:連絡 Salesforce 支援以要求增加資源,或最佳化計畫邏輯和資料篩選條件。在實際上,當在接近薪資執行時發現問題時,資源增加通常是最快的解決方法。最佳化可解決基本原因,如果資源增加無法解決問題,或作為減少對帳單資源耗用的長期策略,則為建議的後續動作。
例如,假設您在「機會」物件上建立一個計算欄位,該欄位使用 sum() 函數彙總代表所有已結束機會的年度經常性收入 (ARR)。當您針對擁有兩年歷程記錄的單一代表在 Designer 中預覽陳述式時,計算會逾時。如果在「設計師」中發生逾時,當其在單一執行中處理整個代表族群的對帳單時,佣金會遇到相同的問題,而且可能在較大的規模。解決方法是在移至生產環境前最佳化計算:關閉 sum() 欄位上的追蹤、將其壓縮為個別工作表計算,或以篩選後的資料範圍取代完整歷程記錄掃描。
將最佳化工作的焦點放在何處
Spiff 的效能改善來自以下三個領域:資料如何進入系統、計畫邏輯如何處理資料,以及設定要在對帳單頁面上顯示的欄位。將全部三個項目一起處理可產生最佳結果。
將最佳化工作專注在這三個層級。
- 資料層。最佳化資料篩選、透過上游篩選減少記錄量 (在來源系統中),並瞭解物件之間的結構描述和關係。請參閱 最佳化 Salesforce Spiff 中的資料篩選效能 和 使用上游資料變更減少佣金引擎負載。
- 計畫邏輯層。壓縮計算、在不需要追蹤時停用追蹤,並使用對應表格和動態邏輯,而非硬式編碼值或複雜巢狀公式。請參閱在 Salesforce Spiff 計算中使用壓縮和在 Salesforce Spiff 中使用對應表格和動態邏輯。
- 對帳單頁面組態。將對帳單頁面上的欄位限制為代表主動需要查看的欄位,並將中繼計算和診斷欄位從面向代表的檢視中移除。佣金引擎會針對每個陳述式執行每個可見欄位,即使是引擎在計算路徑中不會遇到的欄位也是如此。
效能原則
在整個實作期間,請記住這些指導原則。
- 在第一天開始最佳化,並定期重新造訪。將效能改善改為現有組態比從頭開始建立更難。計畫邏輯與資料量隨著時間變化,因此請將效能檢閱建立在一般計畫維護週期中,而不只是初始實作。
- 在資料到達引擎前,請先合併與彙總資料。將您的資料結構化,以便代表使用有意義且可管理的義務集,而不是數百或數千個個別記錄。在資料同步至 Spiff 之前,向上彙總和合併資料,可減少代表和佣金引擎的複雜性。如需控制哪些資料同步至 Spiff 的特定技術,請參閱 最佳化 Salesforce Spiff 中的資料篩選效能。
- 瞭解隨時間的資料量。在啟動時表現良好的組態會隨著記錄數量增加而降低。與您的資料小組計畫歸檔並檢閱預測量。
- 將陳述式頁面欄位限制為代表需要的欄位。無論計算路徑是否會以其他方式到達該欄位,每個對帳單頁面上選取的每個欄位都會由引擎針對每個帳單執行。從代表面向的檢視中移除中介計算和內部追蹤欄位。
- 僅在追蹤服務用途時開啟追蹤。追蹤會儲存資料,並耗用記憶體與計算時間。針對代表必須在其對帳單上看見的欄位或代表管理員報告所需的欄位開啟此功能。針對中介計算、關係周遊和任何不需要顯示在代表檢視或匯出中的欄位,請將其關閉。
- 避免使用硬式編碼值。將變數金額儲存在工作表欄位中,並使用對應表格,讓邏輯在業務規則變更時保持可維護。

