Introduction
Two DataTables
may be merged with the DataTable.Merge
method. The performance of this method is very slow when the destination table has added rows. It is therefore recommended to call the method DataTable.AcceptChanges
when the destination DataTable
has added rows.
The Solution
- Open the DataTableMerge.vbproj with Visual Studio 2010, build and run it. The following form appears:
- In the textbox "Step" must be given the number of records by which each test is to be incremented.
- In the textbox "Max table size" must be given the total number of records of the last test.
- Press the button "Start". This will run the tests. Each test, times the merge operation of two
DataTables
(table T2
is merged into table T1
, in VB.NET: T1.Merge(T2)
). 4 combinations are tested:
T1UnchangedT2Unchanged
: On both tables, the method AcceptChanges
has been called. T1UnchangedT2Added
: On table T1
, the method AcceptChanges
has been called, records of table T2
are in RowState=Added
. T1AddedT2Unchanged
: Records of table T1
are in RowState=Added
, on table T2
the method AcceptChanges
has been called. T1AddedT2Added
: Records of tables T1
and T2
are in RowState=Added
.
The third case (T1AddedT2Unchanged
) is very slow, for 10000 records, it takes more than 2 minutes. All other cases seem to perform equally fast.
History
- 28th June, 2013: Initial version