150 likes | 166 Views
ESRI User Conference 2004. ArcSDE. Some Nuggets. Setup Performance Distribution Geodatabase History. Setup. Initial Database Create as large as possible to avoid fragmenting indexes Set growth rate to a large value for same reason Fillfactor Set very high for read only environments
E N D
ESRI User Conference 2004 ArcSDE
Some Nuggets • Setup • Performance • Distribution • Geodatabase History
Setup • Initial Database • Create as large as possible to avoid fragmenting indexes • Set growth rate to a large value for same reason • Fillfactor • Set very high for read only environments • 95-100% • Set midrange for editing environments • 75% default • Users • 9.0 supports Windows groups but they can not own data • Windows groups are more efficient than individual logins • ArcGIS checks sysprotects table for permissions
Setup (cont’d) • Permissions • Data Loader • Create Table • Create View • Create Procedure • Data Editor • Select • Insert • Update • Delete • Execute • Use ArcCatalog to assign permissions • Associated tables may be missed if using DBMS to assign permissions
Setup (cont’d) • Logfiles • User logfiles • An individual logfile table is created once for each user • Session logfiles (recommended for SQL Server) • An individual logfile table is created and destroyed for each login session • Maxlog = 0 • Allowsessionlog = true • Logfilepoolsize = 0 • Pooled logfiles • A series of logfile tables are created once • Each login uses one of the pooled logfiles • Need to provide enough tables for all logins
Setup (cont’d) • Upgrading • Backup • Uninstall 8.3 • Install 9 • run checkschema.exe – 25 errors at a time max. • run custom post-installation – don’t create new dbase or SDE user if upgrading • run migratory sample utility – to convert each spatial database to a series of single standalone spatial databases • Create new service for each single spatial database • Recommended storing rasters in a separate database • Only store separately if they are completely separate (no cross database queries supported) • Follow up migration with sp_change_users_login to synchronize ID’s
Performance • Memory • Initially set SQL Server memory to 50% RAM and move up from there • Setting SQL Server memory too high will restrict gsrvr.exe • 1 giomgr.exe is spawned at runtime • 1 gsrvr.exe is spawned for each connection • Make sure dbinit.sde is empty unless debugging • Stores detailed initialization information • Set TCPKeepAlive to ON to close orphaned gsrvr.exe processes
Performance (cont’d) • Reference Classes • Only use during editing • All reference classes need to be loaded when used and this sucks up memory • Excess number of privileges will slow things down • Servers start queuing SQL statements when they hit 65% CPU usage • Index Tuning Wizard • Use to check often used queries for performance
Performance (cont’d) • Loading • Set the recovery model to simple • Avoids tracking everything when you don’t need to rollback • Turn off the transaction logfile when loading • Bottlenecks • Server processor should never exceed 80-90% capacity • Memory buffer cache hit rate should always be below 90% • Average disk queue length should not exceed 2
Performance (cont’d) • Logfiles (check these) • Giomgr.log – client connection information • Sde.log – detailed error logs • Sdedc.log – direct connect information • Upgrade.log – patch information • Compress the database at least once a week • The single most important thing that will effect performance of your geodatabase is: The # of states for a version (Lineage)
Distribution • Geodatabase Replication • Single Generation (9.0) (a.k.a. Disconnected Editing) • Check out from one versioned GDB to another • Check changes back into original • Multi Generation (9.1) • 1 way replication • Used to replicate read only data (mirror) • Only pumps changes to the child database • 2 way replication • Changes can be sent both ways • Allows to independent sites to edit data and exchange edits • Uses a Global ID (GUID) on each feature • Works on specific versions • Synchronization Process (Parent wins, Child wins, Manually Reconcile)
Distribution (cont’d) • Replica Agent (9.1) • Allows setting up a scheduled task to determine when changes move between the databases • They are developing a web service based way of automating change movement • Enables disconnected synchronization
Geodatabase History • Store changes over time using versions (9.0) • History of the DEFAULT version of the database • Developer sample for inspecting the history of an individual feature (“a feature’s lineage”) • (-) Historical versions cannot be edited • (-) Significant performance hit if require fine-grained history (i.e., OK for snapshot archiving, not OK for transaction level archiving) • (-) If schema changes, history is lost.
Geodatabase History (cont’d) • A Transaction Level History Solution (9.1) • Each feature class (FC) has an associated history table (e.g., Parcel_history) …identical to business table (except includes “in date” and “out date”) • (+) History not lost with schema change. • (?) Performance • (-) Does not capture change in related tables
Geodatabase History (cont’d) • Version Log (9.1) • Compare two versions and show me the differences. • Useful for situation where workflow dictates that another person review the edits before committing them to the database.