非同期 SOQL
| 使用可能なインターフェース: Salesforce Classic および Lightning Experience の両方 |
| 使用可能なエディション: Enterprise Edition、Performance Edition、Unlimited Edition、および Developer Edition (最大 100 万件のレコード) 追加のレコード容量および非同期 SOQL クエリは、アドオンライセンスとして使用できます。 |
非同期 SOQL は RESTful API として実装され、慣れ親しんだ SOQL の構文でクエリを実行できます。非同期操作のため、複雑なクエリをサブセット化、結合、および作成でき、タイムアウト制限は適用されません。このような状況は、数百万や数十億件のレコードがあり、同期 SOQL よりもパフォーマンスの高い処理が必要な場合に最適です。各クエリの結果は、指定したオブジェクト (標準オブジェクト、カスタムオブジェクト、または Big Object) に格納されます。
非同期 SOQL クエリには、一度に 1 個の同時クエリ数という制限があります。
非同期 SOQL と SOQL
SOQL と非同期 SOQL には、多くの同じ機能があります。では、どのような場合に標準 SOQL ではなく非同期 SOQL クエリを使用するのですか?
- ユーザを待たせずに結果を UI に表示する。
- Apex コードのブロック内の操作のためにすぐに結果を返す。
- クエリが少量のデータを返すことがわかっている。
- 何百万ものレコードに対して照会する。
- 確実にクエリが完了するようにする。
- 集計クエリやインデックス以外の絞り込みを実行する必要がない。
使用事例: 絞り込みによる作業データの作成

たとえば、Salesforce によって収集された長年の商談履歴を分析するとします。この結果により、成立する可能性の高い現在および将来の商談を特定し、売上予測の全容を把握しやすくなります。商談履歴データはアプリケーション全体のすべての項目履歴データと共に保存されているため、データ量が大きすぎて直接照会できません。その場合は非同期 SOQL を使用します。非同期 SOQL を使用して、関心のあるデータのより小さい代表的なサブセットを抽出するクエリを作成できます。この作業データセットをカスタムオブジェクトに保存し、レポート、ダッシュボード、または他の Lightning Platform 機能で使用できます。
使用事例: 粒度の粗い集計による作業データの作成

Big Object では、既存のデータを使用してアプリケーションでより詳細なレベルを把握できるようになりました。たとえば、個人とマーケティングキャンペーンの各インタラクションが、利用可能だが扱いにくい未加工の形式のデータとして保存されているとします。非同期 SOQL により、そのデータをキャンペーンや日別に集計でき、完全なデータセットの関連する詳細を利便性の高いより小さなデータセットに抽出できます。前の例のように、より小さな作業セットをカスタムオブジェクトに保存して、レポートやダッシュボードで使用できます。