現在のUIの開発でパフォーマンスの問題が発生しました。しかし、この問題は一般的だと思います。asp.netグリッドのページデータを取得する際のパフォーマンスが向上
単純なasp.netグリッドのページがあります。グリッドは、特定の検索条件に基づいてテーブルのデータを表示します。さらに、グリッドは固定ページサイズ(例えば10)を有する。下部にページャがあり、ページを移動するために使用できます。バックエンドでは、検索ボタンが押されるたびに、目的のデータを返すストアドプロシージャが呼び出されます。
ストアドプロシージャはここなどcurrentpageIndex、ページサイズなどのパラメータを、他の検索条件を、持っているSPのための擬似コードです:
-- SP begins
-- calculate the page index range to return required using current page index and page size
-- query the table in a CTE and do all filtering. Also calculate row numbers so that
-- correct record range can be returned.
-- use the cte to return the correct record based on the row number calculated in CTE
-- SP ends
私は
- 場合は、このアプローチで問題/クエリを次のようしていますDbテーブルのサイズが大きい(たとえば1,000万レコード)と、パフォーマンスが低下し、このアプローチは実用的ではありません。
- テーブル変数またはテンポラリテーブルを使用する方が便利ですか?
- ページングされたデータをデータベースから取得する他の効率的な方法はありますか?
こんにちはダン、記事は、合計行の計算のための新しい洞察力を提供しました。本当に役に立ちました。ありがとう。
しかし、データが大きい場合でもCTEを使用するよりも良い方法はありますか?
更新:効率的にページングされたレコードを取得するために、他のパフォーマーであるapproachesはほとんど見つかりませんでした。