よくある質問ですが、これまでのところ説得力のある答えが見つかりませんでした。ビジネス層またはデータベース層のページングによるデータのソートのベストプラクティスは何ですか?
私のプロジェクトでは、複数のテーブルからの結合結果である約20,000以上のレコードのセットに対してページングを行う必要があり、異なるシナリオで別々にソートする必要があります。
1データベース層ie. where dl.[row_number] between @index*@size+1 and @index*@[email protected]
にストアプロシージャを使用してそれを行う、:
は現在、私の目の前にある2つのオプションがあります。 これを行う問題は、ソートごとにStore Procsを別々に書かなければならないことです。
2、ビジネスロジック層で行い、結果の上にページングとソートを行います。 (ie. skip(), take())
しかし、理想的ではありません.20,000レコードを取得することになる可能性がありますが、そのうちの10個だけが使用されます。
標準的なベストプラクティスはありますか?事前に感謝
"where句"ごとに別のストアドプロシージャを実行する必要はありません。caseやorステートメントのようなことができるからです。 – jcolebrand