Solved! Go to Solution.
How can ArcSDE performance be improved?
Compress a versioned database to state 0 can be done only after deleting the versions (excluding the sde.DEFAULT version).
First you have to Reconcile and post all versions which are ready to be applied to the DEFAULT version. Alternatively, delete the versions and Compress the database.
And if you are wondering how other organizations are handling all this, and how you could organize your maintenance, I think William's good remarks in the below linked post of another thread should give you some idea:
Re: ArcSDE/SQL Server/weekly maintenance workflow question
This is typically the way in which people achieve state 0, yes. However, as I eluded to above, it is possible to go to state 0 without deleting child versions of SDE.DEFAULT. We've done it with replica versions and with other versions. As long as the state ID of your child versions match the state ID of your SDE.DEFAULT version, compressing will achieve state 0 without having to delete those versions. For our replica versions, this has typically involved a sequencing of compress followed by replica synchronization followed by compress again. Doing this allows us to avoid the lengthy task of dropping and rebuilding our replicas when state 0 is needed. As long as everything is reconciled and posted, this works. While certainly not the most common workflow, it has proved technically feasible.
Do you refer to versions as replica? And �??reconcile�?� as �??synchronize�?�?
Well�?�what might be the best sequence in applying the tools that enhance the performance? Don�??t you agree with the sequence in the screenshot below?
The ordered steps you show in your model are fine, in my opinion. Reconcile is the mechanism of resolving any conflicts that may arise between versions just before posting edits to the parent version (which, in may cases, is SDE.DEFAULT). You must reconcile your child version with its parent before being able to post the edits to the parent version; even if no conflicts are detected this is still required. Synchronizing is different and is intended to apply to the concept of replication specifically. Synchronizing is the process of transferring changes (edits or some very basic schema changes) from one replica to another in in effort to make one geodatabase match the other; it applies for both one-way (parent to child, or child to parent) and two-way replication. Synchronization can occur in a connected or disconnected fashion.
On a slightly-related note, replicas ARE versions themselves and they are built from a version in the geodatabase to begin with. For example, you might have a replica called MyReplica which is built off of SDE.DEFAULT. When querying the versions table in ArcSDE via SQL, you will see the SDE.DEFAULT version listed as well as the replica version itself which will look something like this: SYNC_SEND_102_2. The "102" is the replica ID and the "2" represents the generation number of the replica. The generation number increases sequentially each time your synchronize your replica.
Hope this helps...