以下のエラーは、SOQL クエリの Apex 実行ガバナ制限を超過した場合に表示されます。
System.LimitException: Too many SOQL queries: 101
Salesforce プラットフォームにおける Apex は、すべてのお客様が同じコンピューティングリソースを共有する、共有のマルチテナントプラットフォーム上で動作します。単一のお客様のコードが共有リソースを独占しないようにするため、Salesforce はガバナ制限を適用します。
SOQL クエリのガバナ制限は、1 つのトランザクションコンテキストにつき 100 クエリまでに制限されています。これには、その単一コンテキスト内のトリガー、クラス、フロー、API 呼び出しによって実行されるすべての SOQL クエリが含まれます。この制限を超過すると、Salesforce は上記のような LimitException のエラーを返します。
例:
取引先 (Account) オブジェクトの Apex トリガーが、バッチ内の各取引先に関連する取引先責任者 (Contact) をクエリします。このとき、もし 1 回のトランザクションで 101 個の取引先が処理され、トリガーが取引先レコードごとに (FOR ループ内で) 1 つの SOQL クエリを実行すると、101 個目の取引先で制限を超過し、トランザクションは失敗します。
注意点:
1 つの呼び出し、またはコンテキストから実行されたトリガー内のすべての SOQL クエリは、100 回の制限にカウントされます。
Salesforce ではガバナ制限を引き上げたり、無効にすることはできません。
@future アノテーションを使用します。これにより、独自のガバナ制限の割り当てを持つ、独立した非同期トランザクションでコードが実行されます。Apex はマルチテナントプラットフォーム上で動作するため、Apex ランタイムエンジンはコードが共有リソースを独占しないように制限を厳密に適用します。100 クエリの制限内に収まるように、以下のベストプラクティスに従ってください。
FOR ループ内での SOQL クエリの実行を避ける: レコードを反復処理するループ内に SOQL クエリを配置しないでください。代わりに、まずレコード ID を収集し、ループの外で 1 つの SOQL クエリを実行して、IN 句を使用してすべての ID を指定します。
Apex コードをバルク化 (一括処理化) する: レコードを 1 つずつ処理するのではなく、1 回のトランザクションで複数のレコードを処理 (一括処理) できるようにトリガーとクラスを設計します。
Apex コードのベストプラクティスを確認する: Salesforce Apex 開発者ガイドの主要なコーディング原則に従っていることを確認します。
トリガーと一括要求に関するベストプラクティスを確認する: トリガーと Bulk API リクエストのベストプラクティスに関する Salesforce ドキュメントを確認します。
000386220

We use three kinds of cookies on our websites: required, functional, and advertising. You can choose whether functional and advertising cookies apply. Click on the different cookie categories to find out more about each category and to change the default settings.
Privacy Statement
Required cookies are necessary for basic website functionality. Some examples include: session cookies needed to transmit the website, authentication cookies, and security cookies.
Functional cookies enhance functions, performance, and services on the website. Some examples include: cookies used to analyze site traffic, cookies used for market research, and cookies used to display advertising that is not directed to a particular individual.
Advertising cookies track activity across websites in order to understand a viewer’s interests, and direct them specific marketing. Some examples include: cookies used for remarketing, or interest-based advertising.