Defaults of EngineDataCompareOptions and Performance
zagato
Posts: 5
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
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
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: Here are the defaults as far as I can see:
SessionSettings:
IncludeIdenticalRecords
IncludeDifferentRecords
IncludeRecordsInOne
IncludeRecordsInTwo
ComparisonOptions:
SqlOptions:
None
DisableKeys
OutputCommentHeader
UseTransactions
OutputComments