質問: command.ExecuteReader() If reader.HasRows Then Do While reader.Read() Loop End If reader.Close() connection.close()
回答: 要件次第ではありますが、一般的なwebアプリケーションの実装としては、 後者の方法で実装し、その間の更新による順番の入れ替わりについては許容する というケースが多いと思います。 前者の方法は試された通り、リアルタイムに検索をするときは件数が増えるとリニアに処理時間が増えてしまうため、滅多に採用されることは無いかと思います。 例えば検索対象を想定する一定期間(例えば1時間以内)に絞っておいて、ハードウェア的に1時間以内に想定するレコードの最大増加数が来た場合でもパフォーマンスが保てるようなケースであれば、全件読み込んでしまうというケースもあるかもしれません。