私は、2000万を超えるレコードを持つデータベースをクエリしているプロジェクトの途中で、いくつかのフィルタセットを適用して約200レコードを返します1.30分)。私はそれがDataReaderの問題だと思うので、データベースを照会した後、この特定のデータウェアハウスからオブジェクトを作成しようとしますが、15または16レコードごとにasp.netプロセスがハングします(デバッガでハングします)。レコードをオブジェクトにマッピングするときにDataReaderがハングする
これは私を夢中にしています。
ここで私は、 "DataReaderの問題" を
using (IDataReader reader = cmd.ExecuteReader())
{
List<Project> projects = new List<Project>();
while(reader.Read()) projects.Add(GetMappedRecord(reader));
}
private Project GetMappedRecord(DataRow reader)
{
Project project = new Project();
project.PropertyA = reader["FieldA"] as string;
// and so on and so forth...
return project;
}
15件ごとに16件...ハングアップします。最初の15の後にのみハングアップすることができます。または、15ごとに遅延させることができます。最後のオプションでは、パッケージに15,16レコードが収まるように臭いがあり、クエリは1:30後に_first_レコードのみを配信します。いくつかのクエリは遅れて実行される可能性があります。 –