次のようなクエリがあります。
SELECT TOP(1000) UserId, Key, Value
FROM MyTable
WHERE Processed = 'false' ORDER BY TimeStamp"
結果を繰り返し処理し、データを外部システムにインポートしています。これはかなり遅いので、結果セット内の 1000 項目すべてに対してこれらの操作を並行して実行したいと考えています。これは、結果セットに重複する UserId がない場合にのみ可能です。
クライアントでフィルタリングを試みましたが、最初の 1000 から 400 のメンバーを持つセットになってしまいました。これにより、多数のデータがさまざまな反復で何度もネットワーク経由で送信されます。
UserId ごとに 1 行のみを取得して、最初の 1000 行を返すようにクエリを構成する方法はありますか? 少し新しいレコードが返される可能性がありますが、結果セットには正確に 1000 個の一意の userId が必要です。これには構文がありますか?