Skip to main content

 

 

 

 
Language:
 
Service Studioバージョン :
 
 
OutSystems

データベースから取得されるレコード数を制御する

アプリで情報をリスト表示する場合、通常は一定数の行のみが返されます。追加のレコードを取得するには、ページネーションや無限スクロールのメカニズムを使用します。AggregateやSQLクエリでは、必要なレコード数を常に考慮する必要があります。

影響

クエリで行数を制限しなかった場合、CPUやデータベースのI/Oが浪費されるだけでなく、Webサーバー上のメモリがクエリ全体の結果の保持のためだけに無駄に占有されます。必要なレコードは最初の10個のレコードだけであるにもかかわらず、呼び出しのたびに1,000個のレコードを取得していると考えるとわかりやすいでしょう。

ベストプラクティス

高度なデータクエリ:

  • AggregateのMax. Recordsプロパティを必要な数に設定します。

  • 必要な場合、Max. Recordsでの制限を使用せず、<Aggregate>.Countにレコード総数を保持することができます。

SQLクエリ:

SQLクエリの行数を必要な数に制限するには、Max. Recordsを設定するだけでは不十分です。クエリ自体で行数が制限されるよう変更を加えるわけではないためです(制限されるのは出力レコードリストにコピーされる行数であり、データベースへの不要な読み込みは引き続き行われます)。

解決するには、以下のようにしてクエリ内の行数を制御します。

この変更によって、<Query>.Countプロパティを利用しなくても、元のクエリ条件や結合に従い、適切な行数を取得することができます。

  • Was this article helpful?