LoginSignup
13
13

More than 3 years have passed since last update.

Salesforce インデックス について

Last updated at Posted at 2019-06-28

1.インデックスの種類

image.png

2.標準インデックス項目

Salesforce から自動的に作成される
image.png

3.カスタムインデックスの2つ作成方法

①項目を「外部ID」または「ユニーク」として定義
外部ID項目とユニーク項目には自動的にカスタムインデックスが作成される
image.png
②Salesforce カスタマーサポート
image.png
※詳細は ここ までご参照ください。

4.非決定性数式項目について

時間の経過に伴って値が変化したり、トランザクションにより関連エンティティが更新されたときに値が変更されること

  • 直接、間接に他オブジェクトの項目
  • 常に同じ値を返すとは限らない関数 (TODAY や NOW など)
  • 所有者、自動採番、ディビジョン、監査項目 (CreatedDate および CreatedByID 項目は除く)
  • インデックス付けできない項目(複数選択リストなど)
  • 特殊な機能を持つ標準項目

    • 商談: Amount、TotalOpportunityQuantity、ExpectedRevenue、IsClosed、IsWon
    • ケース: ClosedDate、IsClosed
    • 商品: ProductFamily、IsActive、IsArchived
    • ソリューション: Status
    • リード: Status
    • 活動: Subject、TaskStatus、TaskPriority

5. 2 列カスタムインデックス

2 列のカスタムインデックスは、Salesforce プラットフォームの特殊機能です。
インデックスは単一の項目だけでなく、2つの項目の組合せに対しても作成することができる。

適用パータンは下記の通りです。

  • 1つ目の項目で絞り込み(WHERE句)、2つ目の項目でソート(ORDER BY)する
  • 先頭項目のみの単一項目インデックスとしても利用できる
  • Field1_c(選択リスト)とField2_c(数値)の2カラムカスタムインデックス が有効な例
    • SELECT … FROM MyObject_c WHERE Field1c IN (‘Foo’, ‘Baa’) AND Field2_c > 0
    • SELECT … FROM MyObject_c WHERE Field1c IN (‘Foo’, ‘Baa’) ORDER BY Field2_c
    • SELECT … FROM MyObject_c WHERE Field1_c = ‘Foo’ image.png

6.インデックスが使用されない条件

  • 照会された値がシステム定義のしきい値を超える
  • 検索条件の演算子が、NOT EQUAL TO (または !=)、NOT CONTAINS、NOT STARTS WITH などの否定演算子である
    • 『一致しない』は全件検索をしないとわかりません。可能であれば存在するもののような逆の記述に変えましょう。
  • 部分一致でスキャンされる行数がしきい値を超える
  • 数値、日付、日付/時間以外の項目での範囲検索や大小比較
  • 空の値と比較している場合 (Name != '')
    • 基本的にはNull検索はインデックスを使いませんが、カスタムインデックス はSFDCサポートに依頼すればNullをインデックスに含めることは可能にな ります。その場合はNullもインデックス検索で使用出来ます。

7.しきい値の算出

image.png
image.png
image.png
image.png

8.インデックスが使われているかを確認する方法

image.png

9.Resources

13
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
13