Click here to Skip to main content
15,880,427 members
Articles / Productivity Apps and Services / Microsoft Office / Microsoft Access
Tip/Trick

DataTable Merge Performance

Rate me:
Please Sign up or sign in to vote.
5.00/5 (2 votes)
1 Jul 2013CPOL1 min read 16.6K   337   4  
This project measures performance of the DataTable.Merge method.

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

  1. Open the DataTableMerge.vbproj with Visual Studio 2010, build and run it. The following form appears:

    Main form of DataTableMerge project

  2. In the textbox "Step" must be given the number of records by which each test is to be incremented.
  3. In the textbox "Max table size" must be given the total number of records of the last test.
  4. 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:
    1. T1UnchangedT2Unchanged: On both tables, the method AcceptChanges has been called.
    2. T1UnchangedT2Added: On table T1, the method AcceptChanges has been called, records of table T2 are in RowState=Added.
    3. T1AddedT2Unchanged: Records of table T1 are in RowState=Added, on table T2 the method AcceptChanges has been called.
    4. 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

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior) Unisystems
Greece Greece
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
-- There are no messages in this forum --