データローダ:「Too many SOQL queries」のエラーが出たら、バッチサイズを落とす

データローダ:「Too many SOQL queries」のエラーが出たら、バッチサイズを落とす

データローダのエラー対応です。Salesforceで忘れてはいけないガバナ制限のお話です。
データローダ:「Too many SOQL queries」のエラーが出たら、バッチサイズを落とす
4
データローダ:「Too many SOQL queries」のエラーが出たら、バッチサイズを落とす
Admin
2022/05/09 11:47:21
※こちらは過去に公開していたブログ記事を修正、加筆したものです。

夏も終わりですが、データローダにまつわる怖い話をお送りしようと思います。

UPDATEしたら、エラーでどんどん弾かれた

あまり慣れていない Salesforce組織で、データローダを使って1万件ほどのレコードを更新しようとしました。

CSVや入力規則などの設定を確認し、問題なさそうだと思ったのです。
そして、いざ、「Finish」をクリックしたら、「error」の数が目の前で増えていき、処理が終わったときは半分以上がエラーに!なぜ?

慌ててエラーログを確認したところ、

Error: System.Exception: Too many SOQL queries

のメッセージ。

焦っていた私は近くにいた Developerの方に尋ねました。

彼は、「バッチサイズを 1 にしてみてください」と彼は答えました。

半信半疑でデータローダの「setting」でバッチサイズを 1 に変更して、エラーになった分に再挑戦!

バッチサイズ、200だったのを 1にしました!

すると、エラーが起こらず、ゆっくりと着実にデータが更新されていきます。

「自動化か何かの設定が走って、ガバナ制限とかに引っかかったかもしれないですね」と、彼は言いました。

そう、Salesforceのようなマルチテナント環境では忘れてはいけないガバナ制限。
自分だけがサーバリソースを使っていいわけはないんです。他のユーザと共有するために、あんまり大量の処理をすると制限がかかってしまうんですね。

そしてその Salesforce組織は、たくさんのプロセスビルダー、ワークフローが有効化されていて、ひとつの項目を更新すると、それはもうたくさんの処理が実行されるような状態でした。
……忘れてた。忘れてましたよ、すっかり。

教訓

・自動化を張り巡らせている組織では、大量のレコードの更新でエラーになる可能性がある。
・もし「Error: System.Exception: Too many SOQL queries」のエラーになったら、慌てずにバッチサイズを落としてみる。

バッチサイズは調整してね!

「多分ガバナ制限ですかね~」
と少しほっとしていたところ、別の Developer に
「でもそのペースだと、全部終わるのに 3時間位かかるよ」と言われ、慌ててバッチサイズを調整したのはいい思い出です。
根本解決には至っていませんが、とりあえずレコードは更新できました。


関連記事

すべて会員限定記事となっております。会員登録(無料)いただくと閲覧いただけます。
データの一括更新 ① データを一括で登録するには
データの一括更新 ② データインポートウィザードとは
データの一括更新 ③ データローダとは
データの一括更新 ④ データローダをインストールする (Windows編)
データの一括更新 ⑤ データローダをインストールする (Mac編)
データの一括更新 ⑥ データローダを使用してデータを一括登録する
データの一括更新 ⑦ 最新のデータローダに更新する
データの一括更新 ⑧ データローダをアンインストールする (Windows編)
データの一括更新 ⑨ データローダをアンインストールする (Mac編)


gilde tech(for Salesforce)」に入会しませんか?
登録すると、「gilde tech」に掲載されているSalesforceのノウハウを全部閲覧できるだけでなく、自分が知っている知識を発信し、他の会員と交流することもできます。
またSalesforceの知識習得に役立つイベント情報も得ることができます。
是非ここで得た知識を業務に活かしてください!
4
コメント