' P '

whatever I will forget

Salesforce SOSLと効率的なクエリとは

SOQLとの使い分け

  • SOSL が最も役に立つのは、データがどの項目やオブジェクトに存在しているかが正確にわかっておらず、複数のオブジェクトにわたって検索する必要がある場合
  • SOQL は関連オブジェクトにのみ使用できる

  • 検索語は中括弧.
FIND {jos*} IN ALL FIELDS RETURNING Account(Name), Contact(LastName, FirstName), ContentVersion(Title)

SOQL効率的なクエリ

  • 開発者コンソール → Help → Preference → Enable Query Plan
    • 上記を行なうと、Query EditorからQuery Planが確認できる
    • 実行するSOQLが TableScanになってしまうと効率が悪い

TableScanになる悪い例

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

Indexになる良い例

SELECT Id, CaseNumber FROM Case WHERE IsClosed = true