DataTable处理大数据量时的效率问题
现在有两个个DataTable,分别为tbA,tbB
tbA中有六万条数据,tbB中数据忽略不计。
其中,tbA中定义了主键 tbA.PrimaryKey={tbA.a,tbA.b}
对tbA执行循环操作,从第一条数据开始,直到最后一条数据
For i=0 To DataTableA.Rows.Count
drCurrent=dtB.Rows.Find(tbA.Rows(i).a,tbA.Rows(i).b) '该数据在tbB中是否存在
IF drCurrent=NULL '该数据不存在的情况下,向tbB中追加一条记录
dtB.Rows.Add(...)
dtB.AcceptChanges()
END IF
NEXT
以一万次循环为单位,通过对时间的计算,发现随着tbB中的数据越来越多,循环一万次花的时间比前一次一成倍的速度在增长。
问题是:
1.有没有什么好的方法,可以调高效率。
2.当我把dtB.AcceptChanges提到循环外面时,效率明显得到提高。但是,在循环体内,需要用到更改后了的dtB。这样做的话会影响到程序的正确性么。
谢谢。