C# sqldatareader 特别慢!蜗牛的速度 SQL大概只有五十多条,SQL2 大概1-200条不等 运行一次大概需要10秒 10
C#sqldatareader特别慢代码如下://///////////////SqlDataReadersdr1=SqlDal.ExecuteReader(SQL1);...
C# sqldatareader 特别慢
代码如下:
/////////////////
SqlDataReader sdr1 = SqlDal.ExecuteReader(SQL1);
List<srobject> srlist;
while (sdr1.Read())
{
srobject sr= new srobject ();
// sr 取值
//构造SQL2
SqlDataReader sdr2 = SqlDal.ExecuteReader(SQL2);
while (sdr2.Read())
{
srPart vp = new srPart ();
// vp 取值
sr.PartList.Add(vp) ;
}
srlist.Add(sr);
}
///////////////////// 展开
代码如下:
/////////////////
SqlDataReader sdr1 = SqlDal.ExecuteReader(SQL1);
List<srobject> srlist;
while (sdr1.Read())
{
srobject sr= new srobject ();
// sr 取值
//构造SQL2
SqlDataReader sdr2 = SqlDal.ExecuteReader(SQL2);
while (sdr2.Read())
{
srPart vp = new srPart ();
// vp 取值
sr.PartList.Add(vp) ;
}
srlist.Add(sr);
}
///////////////////// 展开
1个回答
展开全部
由于你没有提供数据库结构、SQL语句和大概的数据量,因此无法判断是否真的不正常。
建议你做几个测试,以验证是哪里的问题。
比如:
新建一个简单空表后,循环执行 插入新条目、Select该条目,1000遍,计时。
(具体多少遍,可以根据你设备的性能自行调整。)
将此数据与其他环境的执行结果进行比较,以确定是否硬件或数据库设置方面存在问题。
假如上面没问题,运行速度接近,那么你可以逐渐增加SQL语句的复杂度。
找出其中最耗时的部分,然后有针对性的加以优化。
比如:库结构是否已经优化至第三范式? 主键、外键是否正确?该做的索引做了吗?等等
建议你做几个测试,以验证是哪里的问题。
比如:
新建一个简单空表后,循环执行 插入新条目、Select该条目,1000遍,计时。
(具体多少遍,可以根据你设备的性能自行调整。)
将此数据与其他环境的执行结果进行比较,以确定是否硬件或数据库设置方面存在问题。
假如上面没问题,运行速度接近,那么你可以逐渐增加SQL语句的复杂度。
找出其中最耗时的部分,然后有针对性的加以优化。
比如:库结构是否已经优化至第三范式? 主键、外键是否正确?该做的索引做了吗?等等
追问
数量并不算大的 外循环 不超过十条数据
内循环 最大不超过200条
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询