Apex Too many SOQL queries: xxxエラーの解決方法
環境
Salesforce
エラー
Too many SOQL queries: xxx
原因
Salesforceではガバナ制限が設けられており、1トランザクションで発行される SOQL クエリの
合計数の上限が100と定められています。(非同期処理では200)
Apex はマルチテナント環境で実行するため、Apex ランタイムエンジンは、
回避 Apex コードまたはプロセスが共有リソースを独占しないよう制限事項を強制します。
一部の Apex コードが制限を超える場合、関連付けられたガバナは、
処理できない実行時例外を発行します。
修正前コード
for(Integer i = 0; i < 112; i++){ List<Account> accList = [SELECT Id FROM Account]; }
対策
SOQLをforループ内で使用しない
修正後コード
for(Account accs : [SELECT Id FROM Account]){ //処理コード }