function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
DoppoDoppo 

Apex CPU time limit exceeded

はじめまして。

 

ある検索画面を作り、検索処理を行ったところ、

「Apex CPU time limit exceeded」というエラーが表示されました。

 

 

見慣れないエラーだったのでWebで調べてもよく分かりませんでした。

 

 

ご存知の方がおられましたらどういった場合にでるエラーなのか

ご教授いただけないでしょうか。

 

ue123ue123

ガバナ制限にはなさそうでしたが、Limits MethodsにgetLimitCpuTime(戻り値は60,000ミリ秒でした)なるものが

あったので、1トランザクション内で60,000ミリ秒を超える負荷がQuery等でかかってしまったため発生したのでは

ないでしょうか。

 

http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_methods_system_limits.htm

YoshiomsYoshioms

クエリで時間がかかっているようであれば、インデックスを張ることでパフォーマンスが向上するかもしれません。

ご参考までに貼っておきます。

 

SOQLクエリのパフォーマンスチューニング

DoppoDoppo

お二方ご回答ありがとうございました。

 

 

インデックスも検討しましたが、貼る対象の検索項目が多いため

実現は厳しい状況です。

(セールスフォースは3つまでしか許可していないようです。)

 

 

検証していた環境(sandbox)では意図的に膨大なテストデータを作り負荷試験をしてました。

運用環境では想定ですが、データ量的に負荷が小さい状況ですので、

一旦は様子を見るという判断にしました。

 

 

恒久的な解決にはなってないので引き続き解決策を考えて見ます。

YoshiomsYoshioms

複数のカラムにインデックスを張りたいのであれば、複数のカラムの内容(文字列)を結合したカラムをひとつ作って、そこにインデックスを張るという手もあります。

カラム数が多いと、インデックスが有効になってくると思われますので、そちらも検討してみてはいかがでしょうか。

DoppoDoppo

ありがとうございます。

 

 

その手法は思いつきませんでした。

 

 

是非試してみてみます。