GeneXusでの大量レコード更新時のパフォーマンス改善

GeneXusが生成したアプリケーションで数千、数万件のレコードを一括で更新する実装時に、パフォーマンスが悪いということがありました。

問題のコード

よく見かけるようなコードだと思いますが、どこが悪いかお分かりでしょうか。

改善後のコード

違いとしては変数に現在日時に代入し、変数を項目属性に代入しています。
コードとしてはほとんど違いがありませんが、パフォーマンスは大きく改善しました。

改善後のコードでは実行されるUpdate文は1回のみですが、問題のコードでは更新対象のレコードの数だけ実行されます。
これは問題のコードでは、1レコードの更新毎に現在日時をアプリケーションが取得する、というプログラムが生成されてしまうからです。

まとめ

更新対象のレコード数が多い場合には、普段の実装方法でパフォーマンスが悪くないかを検討し、場合によっては実装方法を変更する必要があります。

 

システム開発のご相談はこちらからお気軽にお問合せください。


コメントを残す

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