Defaults of EngineDataCompareOptions and Performance

zagatozagato Posts: 5
edited April 4, 2007 1:24PM in SQL Toolkit Previous Versions
Hello,

I have a question on the EngineDataCompareOptions -Enumarations as SessionSettings, ComparisonOptions and SqlOptions:

Is there a description, what the "Default"-set means? Which setting or option is included in it?


I've written an application with the SQLToolkit which makes something like a merge-replication between two databases. For example, I use the SelectionDelegates to exclude records from synchronization based on a certain criteria (ie date in db1 is older than date in the same column in db2).

It works well, but now I've to optimize it. The master-database is 2,5GB with 430 tables. Some tables have 1million rows in it. The time to replicate a local database against the master-database is now min about 10 minutes - max several hours... :-(
I wonder now, if its possible to optimize the whole process with the EngineDataCompareOptions ...?

Any accistance would make me happy! :)

Roland

Comments

  • Brian DonahueBrian Donahue Posts: 6,590 Bronze 1
    Hi Roland,

    It sounds like you're using an older implementation of the selectiondelegate class to filter rows. I think if you have a look at the example 'FilterSQLExample.cs' in the SQL Toolkit sample files, this should point you in the right direction. There is a new ResultsReader class, and as I understand it the performance is much better than using a simple loop through the resultsstore. You can also retrieve row values from right there inside of the delegate method. Anyway, do have a look at the new examples; I think this way will perform much better for you.

    Since the default enumeration values are subject to change, I think this is why they are undocumented. But you can use a function to check the current settings:
    Console.WriteLine("SessionSettings:");
    			foreach (int b in Enum.GetValues(typeof(SessionSettings))) 
    			{				if ((b & (int) SessionSettings.Default)==b && b!=(int) SessionSettings.Default)
    				Console.WriteLine(Enum.GetName(typeof(SessionSettings), b));
    			}
    
    Here are the defaults as far as I can see:
    SessionSettings:
    IncludeIdenticalRecords
    IncludeDifferentRecords
    IncludeRecordsInOne
    IncludeRecordsInTwo
    ComparisonOptions:
    SqlOptions:
    None
    DisableKeys
    OutputCommentHeader
    UseTransactions
    OutputComments
Sign In or Register to comment.