Skip to main content

 

 

 

 

Template:OutSystems/Documentation_KB/Breadcrumb_New_Layout

 

 

Template:OutSystems/OSLanguageSwitcher

 

 

 

OutSystems

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

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

影響

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

ベストプラクティス

Aggregate:

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

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

SQLクエリ:

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

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

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

  • Was this article helpful?