【Salesforce】System.LimitException: Too many query rows: 50001

【Salesforce】System.LimitException: Too many query rows: 50001

Visualforceのページを製造して、データ量が多いSandboxで確認作業を行っていると、エラーが発生しました。

System.LimitException: Too many query rows: 50001

ガバナ制限に引っかかっていました。

1トランザクションで取得できるレコードの数が合計で50000レコードを超えるとエラーになります。

https://developer.salesforce.com/docs/atlas.ja-jp.salesforce_app_limits_cheatsheet.meta/salesforce_app_limits_cheatsheet/salesforce_app_limits_platform_apexgov.htm

そんなにレコードを取得しないように作ったはずと思い、デバッグログを確認すると原因が分かりました。

Visualforce側に記述されているカスタムコンポーネントが何度も大量のレコードを取得していました。

1トランザクションは、Visualforceページだけでなくコンポーネントで動くコントローラも含まれているため、このようなことが起きていました。

このコンポーネントは別のページでも使用されていましたが、案の定そのページも同じエラーで落ちていました。

大量のデータを扱うときには気を付けなければいけませんね。

現象を確認して偉い人に伝えたら自分が修正することになりました。

コンポーネントを作った人にやってもらった方が早いのでは。。

No comments.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です