プログラマ38の日記

主にプログラムメモです。

Salesforce: ディスクストレージの考慮事項

1レコード2KBだとずっと認識していました。大枠は正しいのですが、細かな部分が違っていたのであらためてまとめておこうと思います。
内容は以下のヘルプに記載の通りで、基本1レコード2KBですが、キャンペーンや記事などが例外となっています。(キャンペーンが8KB、キャンペーンメンバーが1KB、記事が4KB、メールメッセージはメールのサイズに応じて変化)

 

Salesforce ヘルプ [各種レコードサイズを教えてください]
https://help.salesforce.com/articleView?id=000318951&language=ja&type=1&mode=1

Salesforceヘルプ [データおよびストレージリソースの監視]

https://help.salesforce.com/articleView?id=admin_monitorresources.htm&type=5


そして、見落としがちなのが [データおよびストレージリソースの監視]の一番下に記載されている
有効またはアーカイブ済みの商品、価格表、価格表エントリ、および納入商品は、ストレージ使用量には含まれません。
という記載です。

 

商品、価格表、価格表エントリは商品情報を登録するものでそこまでストレージに影響はしませんが、納入商品は万能なオブジェクトなので使いやすくストレージへの貢献度を大きくあげることができます。最初から取引先、取引先責任者、商品への参照関係項目が用意されていて納入商品の中で階層構造になるように親、および階層のルートへの参照関係項目があります。

パレートの法則はストレージの容量にも当てはまり(例外もあると思いますが)、「使用ストレージの8割は利用オブジェクトの2割で占めている」となります。
利用オブジェクトの2割の中の1オブジェクトを納入商品にすることで大きくストレージの消費を抑えることができます。1オブジェクトだけ突出して件数が多い場合、ストレージを考慮して納入商品を使うメリットは最大化されます。
ただし、納入商品ではプロファイルの「レコードの作成時に監査項目を設定」をチェックしても作成者、作成日、更新者、更新日は設定できない/主従関係は作成できない/共有設定は取引先で設定する(納入商品設定:納入商品の共有の有効化をチェックいれることにより所有者での制御が可能になります)など、他オブジェクトとの違いはあるので使い方がはまるかは事前の検証は必要です。(逆に個人的にはこれ以外で他オブジェクトとの違いは把握していませんが・・)

 

最後に

ストレージを消費しない標準オブジェクトでは、他に商談商品(商談の子オブジェクト)、品目名スケジュール(商談商品の子オブジェクト)、注文商品(注文の子オブジェクト)があり階層を持つオブジェクトでは子オブジェクトはストレージを消費しない傾向があります。

ただし見積の子オブジェクトの見積品目名はストレージを消費しますので都度調査は必要です。見積だけ特殊なのかもしれませんが。