こんにちは、にいるです。
今回はData Architecture and Management デザイナーの試験範囲である「スキニーテーブル」についてまとめておきます。
1.スキニーテーブルとは
スキニーテーブルは普段使用しているオブジェクト(ベース)とは別にプラットフォーム内に存在しているテーブルです。
ただ、スキニーテーブルは自分で作成や変更したりアクセスすることはできません。
使用する場合は、Salesforceサポートにスキニーテーブルの作成や更新を依頼する必要があります。
スキニーテーブルを有効化すると、レポートやリストビュー、またクエリによる処理を最適化することができます。
これは、他のテーブルと結合する必要がないためです。
なぜなら、参照項目がスキニーテーブル内にあってもその参照先の値を取得することはできないように制限されているため、パフォーマンスが上がる仕組みになっています。
他にも、ベースオブジェクトと違う点は、レコード数が少なくゴミ箱(Isdeleted = True)のレコードが含まれていません。
また、カスタムインデックスもベースオブジェクトから継承されるので、クエリのパフォーマンスも向上します。
2.スキニーテーブルの特徴
次に細かなスキニーテーブルの特徴を見てみます。
2-1.対象オブジェクト
スキニーテーブルを使用できるオブジェクトと使用用途です。
- 取引先
- 取引先責任者
- 商談
- リード
- ケース
- カスタムオブジェクト
- レポート
- リストビュー
- SOQL のパフォーマンス
2-2.使用できる項目のデータ型
スキニーテーブルに使用できる項目のデータ型は以下で最大100列を追加することができます。
- チェックボックス
- 日付
- 日付と時刻
- メール
- 数値
- パーセント
- 電話
- 選択リスト
- 複数選択リスト
- テキスト
- テキストエリア
- ロングテキストエリア
- URL
数式や参照項目は追加できません。
なぜなら、これらを取得するときに再計算が走ってしまうためと、参照先の値を取得することはできないためです。
もし項目を追加したい場合はSalesforceサポートに依頼し、テーブルを再作成する必要があります。
2-3.Sandboxへのコピーについて
スキニーテーブルはFull Sandboxにはコピーされますが、その他のSandboxにコピーされません。
もし環境間で整合性を図りたい場合もSalesforceサポートに依頼する必要があります。
また、ベースオブジェクトのように項目のデータ型変換もできません。
(実際はできますが、これをするとスキニーテーブルではなくなってしまいます。)
3.まとめ
いかがでしたでしょうか。
スキニーテーブルとはなんぞや、ですね。
デフォルトでは目にも見えないし、使用するにもSalesforceサポートに依頼する必要もあるため、大量データが存在しない組織ではあまり馴染みのない機能かなと思います。
ただ、手段の1つとしてちゃんと覚えておきたいです。
僕自身、大量データに対する処理や扱い方の知見がないので、この分野の勉強は本当に助かっています。
皆さんもぜひ見てみてください。
他にも色々と標準機能やSalesforce機能について紹介していますので、ご覧ください。
ではでは!