OutSystems Advanced SQL最適化:ページングとCOUNTのベストプラクティス

OutSystemsでアプリを開発していると、「大量データを効率よく扱う」ことが課題になります。特に一覧画面では、すべてのレコードを一度に読み込むのは非効率。そこで登場するのが ページング処理 です。

従来のやり方とその問題点

一般的には次のように2つのクエリを用意します。

  • ページングされたデータを取得するクエリ
  • 全件数を取得するクエリ

しかし、この方法には弱点があります。

  • データベースに余計な負荷がかかる
  • クエリが二重管理となり、修正時に手間が増える
1クエリで完結させる新しいアプローチ

そこで活用したいのが COUNT(*) OVER() です。これを使えば、1つのクエリで「データ」と「全件数」を同時に取得できます。

SELECT *, COUNT(*) OVER() AS FullCount
FROM Entity
WHERE …
ORDER BY …
OFFSET @StartIndex ROWS
FETCH NEXT @MaxRecords ROWS ONLY

この構文を使うことで、結果セットに全件数を含めることができます。つまり、1つのクエリで「データ」と「件数」を同時に取得できるため、レスポンス時間を半分に短縮でき、保守性も向上します。

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x