Skip to main content
OutSystems

パフォーマンスに関する10のルール

優れたアプリケーションには1つの共通点があります。それは高速であるということです。OutSystemsプラットフォームのビルトインの最適化に加え、これらのベストプラクティスを考慮します。 

エンティティのインデックスを作成する

よく使用されるエンティティアトリビュートのインデックスを作成することにより、selectクエリのパフォーマンスが大幅に向上します。ただし、insertオペレーションとupdateオペレーションでわずかなオーバーヘッドが発生します。

データベースの保守計画を立てる

インデックスの再編成と統計の更新のメンテナンスを計画することにより、データベースエンジンでクエリを最適化し、既存のエンティティインデックスを活用できるようになります。社内のデータベース管理者が参加するようにしてください。

Service Centerのレポートを使用する

すべてのアプリケーション調整作業の開始点として、Service Centerのレポートを使用します。これらのレポートは低速になっているオペレーションの全体像を示し、アプリケーション画面、Webサービス、タイマー、クエリ、拡張機能に分かれています。

リンクされた複数のサーバーにまたがる結合を実行しない

複数のサーバーにまたがる結合は非常に非効率です。これは、リンクされたサーバー内のテーブルがローカルDBサーバーに完全に読み込まれた後、結合が実行されるためです。複数のサーバーにまたがる結合は、テーブルが小さく、やむを得ない場合は許容できますが、原則としてできるだけ避ける必要があります。

Webサーバーのメモリ設定を構成する

チェックリストのベストプラクティスに基づき、Webサーバーの調整設定を適用してメモリ使用とアプリケーションサーバーのパフォーマンスを最適化します。.NETスタックを使用する場合は、パフォーマンスに影響を及ぼすためプロセスのリサイクルを最小限にする必要があります。Javaスタックの場合は、仮想マシンメモリの設定を微調整して可用性を高める必要があります。

大きいテキストデータやバイナリデータを分離する

テキストフィールドで2,000文字を超えるテキストを使用することは避けます。2,000バイトを超えるデータフィールドはTextデータ型に変換されるため、処理が非常に遅くなり、全体的なパフォーマンスが低下します。原則として、バイナリフィールドや大きいテキストフィールドは別のエンティティに分離し、本当に必要なときにのみ取得します。

タイマーおよびバッチジョブの長期実行を避ける

タイマーとバッチジョブを作成する場合は、部分処理機能と自動タイムアウトメカニズムを組み込みます。これらの機能により、ジョブの暴走、エンドレスなデータの再処理、データの不整合を防ぐことができます。

画面のPreparationを簡素化する

画面のPreparation処理はユーザーエクスペリエンスに影響を及ぼすため、簡素化し、高速に実行されるようにする必要があります。これは、トップページのようにアクセスの多いWeb画面では特に重要です。

画面アクションでPreparationデータを使用することは避ける

画面アクションではPreparationデータを使用しないようにします。これは、サーバーとブラウザ間のネットワークトラフィックが増えるためです。その結果、ネットワーク使用量が増え、サーバーのリクエスト処理パフォーマンスが低下します。

データベースから取得するフィールドの数を最小限にする

データベースエンティティ全体をアクションのI/Oパラメータとして返すのではなく、必要なアトリビュートを含む特定のストラクチャを使用します。これにより、プラットフォームはクエリを最適化し、データベースパフォーマンスを向上できます。