Memos About Salesforce

Salesforceにハマってたこと!

SOQL パワー項目で 検索を高速させる

SOQLを使用し、検索する時に
少数レコードなら、OKで気にしないですが
大型案件になると
検索が遅くなり、画面の反応が
遅いのがもちろん、エラーでることも
ありえます。

そこで、今回、
検索する時にパワー項目を使うことによって
検索が非常に高速になるケースを紹介します。

パワー項目とはインデックス項目のことです。
salesforceのオブジェクト定義画面で

インデックスの列にチェックがついているものとなります。

そのような項目を検索条件で使うと高速になります

trailhead.salesforce.com

help.salesforce.com

インデックス付き項目をクエリで使用しても必ずうまくいくわけではありません。
クエリ内の操作によってクエリが非セレクティブになり、
テーブルの完全スキャンが行われてしまう可能性があります。
クエリで避けるべきな検索は下記になります。

null 行に対するクエリ

SELECT Id, Name FROM Account WHERE Custom_Field__c = null;

否定的な絞り込み演算子

SELECT CaseNumber FROM Case WHERE Status != ‘New’;

先頭のワイルドカード

SELECT Id, LastName, FirstName FROM Contact WHERE LastName LIKE ‘%smi%’;

比較演算子を使用したテキスト項目

SELECT AccountId, Amount FROM Opportunity WHERE Order_Number__c > 10;

書いたクエリが高速かどうかについて
調べる方法もありますので、
次回に紹介します。
※この記事にも提示したかも