mssql ビューから一定範囲の行を処理するジョブを実行するアプリケーションがあります。このビューには多くの行が含まれており、追加の列 (dataid) が ID に設定された状態でデータが挿入されます。これは、取得したデータセットの範囲を知るために使用するためのものです。
少し前に、y より大きいデータ ID (y は、処理した最後の最大データ ID) を持つ上位 n 行を取得するときに、いくつかの問題が発生しました。行が正しい順序で返されていないように見えました。つまり、ある範囲の行を取得したときに、一部の行のデータ ID が間違って配置されたように見えました。 95までしか来なかった。
例
ウィンドウ/範囲は、各クランチで 100 行です。ただし、行のデータ ID が連続していない場合、次の 100 行を取得するクエリには、実際には次のクランチに配置されているはずのデータ ID が含まれている可能性があります。そして、次のクランチが実行されると、行がスキップされます。
dataid を使用して注文すると問題は解決しますが、それでは処理が遅くなります。これをより良い/機能する方法で行う方法について何か提案はありますか?
行数が多いと言うときは、数十億行を意味します。そうです、それが絶対に狂っていると思うなら、あなたは完全に正しいです!
Dapper を使用して、行をオブジェクトにマップします。これは完全に読み取り専用です。
この質問があいまいすぎないことを願っています。前もって感謝します!