GeneXusで開発したWebシステムのパフォーマンス

ツールが生成するシステムということでパフォーマンスに不安を感じる方は少なくないと思いますが、テーブル構造が正規化されていれば一般的なWebシステムに求められるレベルのパフォーマンスは実現可能です。

インデックスの追加

例えば、数百万レコードの中から数レコードをグリッドに表示するといった場面では、適切なインデックスが追加されていれば、遅いと感じることはありません。

インデックスとはDBのテーブルに索引をつけて、レコードの検索を高速化するDBの機能です。

インデックスの追加はGeneXus上で定義することができます。
複合インデックスにも対応しているので、検索条件が複数ある場合にも高速化できます。

インデックスの定義画面

パフォーマンスチューニングのポイント

ツールなのでパフォーマンスチューニングできる箇所は少ないのですが、インデックス以外に下記の2点に着目します。

  • 適切な実装になっているか
  • 複雑な条件でのデータの集計/取得処理

前者はGeneXusに限らず一般的な開発にも言えることですが、例えば、ループ文が何重にも入れ子になっていないか、適切なタイミングでループ文を抜ける処理が含まれているか、などの実装面での改善を検討します。

後者の場合、適切な処理を記述していても遅い場合がありえます。
複雑な条件でデータを集計/取得する場合、Select文一発で集計/取得できなくなり、APサーバでのデータ加工処理が発生する上、APサーバとDBサーバ間でのN/Wのオーバーヘッドも増えるため、処理に時間がかかるようになります。
このような場合には、DB上にストアドプロシージャを作成し、GeneXusで作成したアプリケーションから呼び出すことで改善が期待できます。
ただし、ストアドプロシージャはDB固有になりますので、移植性低下とのトレードオフを検討する必要があります。

 

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


コメントを残す

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