Friday, December 08, 2006
Posted on Friday, December 08, 2006 10:30:04 AM (Mountain Standard Time, UTC-07:00)  Comments [4] | 
Categories: ArcSDE

I needed to investigate the various setup options for using ArcSDE 9.2 with SQL Server 2005. These are condensed notes that I made while checking things out and setting up a few instances.

SDE Setup Options

There are really three sets of questions which you need to think about when setting up ArcSDE 9.2:

  • where will the SDE schema tables reside?
  • how will the users connect?
  • how will users be authenticated?

SDE Schema Location

For the last few releases (possibly since 9.0?), you could setup SDE in two ways - with the SDE schema, or "stand-alone" databases. At 9.2, this is up front and a choice during the post-install, and they are formally named  "dbo-schema" or "sde-schema".  This is really referring to the location of the sde_* and gdb_* tables which hold the "sde metadata" (i.e. domains, metadata, relationship definitions etc).


DBO Schema

In this option, all the SDE repository information is stored in the target database. You need to run the post-install for each spatial database you want to create. If you use "dbo-schema" with SDE services, you will need a separate service for each database - which is somewhat more complex to setup, but should be workable once you get layerfiles/templates setup. I see this setup as a better option if you are using direct connect. In that scenario, there are no extra services to setup, and since everything required for your spatial database in one place, you only have to backup\restore that one database - which really helps if you store a lot of static data in ArcSDE (i.e. rasters)

SDE Schema

This is the traditional model where the SDE schema information is in a separate SDE database. The only downside to this model is managing a mix of static and dynamic databases. In order to keep all your backups in synch, you need to back up the SDE database, as well as all of the databases containing spatial data. That said, this is certainly workable, as this is how most users have things setup.

Connection Type

As with 9.1, there are two connection types: SDE Service or Direct Connection. With the SDE service connection, the client connects to a running process on the ArcSDE server (giomgr.exe), which communicates with the database. Using Direct Connect, there is no running "SDE" process on the database server, and the client handles the details of interacting with the tables. Although direct connect was slower in previous releases, ESRI has done a lot of work to reduce the network "chatter", so the performance is close to being on-par with the SDE Service.

The really big upside of direct connect is the off-loading of the "SDE" work to the client. On a fully loaded SDE Server, approximately 1/2 of the load is the ArcSDE process (according to the ESRI System Architecture document & class). By moving this load to the client, the database server can handle almost twice the number of connections. When I heard this, my initial thought was - "that just makes the client slower". While this is true to some extent, as a percentage of the entire transaction, the SDE communcations is just a tiny percent as comparte to the rest of the client (ArcMap for example) Another way to put it is that the load gets big on the SDE box because it's the focal point for a lot of little processes from all the clients. Re-distributing that load out to the clients has little noticable impact, and your database scales way better. Which is good because DBMS licensing is not cheap.

It's worth noting that while Direct Connect has many upsides,  it does add complexity to upgrades. The version of the client dlls (installed with Desktop/IMS/Server etc) must exactly match ArcSDE. Thus, to do any upgrade you must upgrade all the software at once. As I understand it (and I'm still waiting for confirmation of this) this includes service packs. Conversely, if you use an ArcSDE service, this acts as a version proxy between the client and the underlying database, and thus you have more flexibility with mixing software versions when deploying an updated. Just something to keep in mind when designing your system.

Database Authentication vs Windows Authentication

Regardless of how you have setup the schema or the connection, you can now use either Windows or Database authentication. Windows Authentication is convenient in that you do not need to create additional logins in the database, and you can assign privileges to groups of Windows Logins from within ArcCatalog - thus simplifying the database managment.

Quick note on Performance...

In my experience, direct connect seemed slower during the inital connecting to the spatial database. Once connected, there was no noticable difference. Not sure if this is a function of my setup (I set up ArcSDE to use services, then I stopped the service and specified direct connect in ArcCatalog), but connections via ArcSDE were almost instant. Both were using Windows Authentication. My suggestion is to try it out and see what works best for you.


Friday, December 08, 2006 11:20:32 AM (Mountain Standard Time, UTC-07:00)
Dave,

I don't believe the SDE vs. DBO setting is related to the 'single' vs. 'multiple' SDE database configuration as you suggest. Using the Post Install wizard, only GDBs of the 'single' variety are created. The SDE vs. DBO schema setting, I think, is geared more towards configuring your SDE adminstration to fit your MSSQL security model.

Derek Swingley (from the SDE team?) summarizes it succinctly in this recent thread on the forums: http://tinyurl.com/y665sa.

BTW, thanks for the great Word AutoText tip, that'll come in handy.

Ron
ron.bruder AT adc4gis DOT com
Ron Bruder
Friday, December 08, 2006 8:14:02 PM (Mountain Standard Time, UTC-07:00)
Dave,

Nice post. This is one of the biggest new 9.2 options to sort out for SQL Server users.

Ron is correct -- SDE vs. DBO schema and single vs. multiple database model are not related. You can mix and match but single database model(SDE repository and user data in the same SQL Server database) is the default/recommended way to go. If you do a complete post-installation you're going to get a single database model regardless of whether or not you choose SDE or DBO owned schema.

You are correct about direct connect. For it to work, client and server need to be the exact same version/patch level. This is not necessarily a bad thing and actually ends up being kind of a safety net. It's always a good idea to keep client and server at the same version so you don't run into unforeseen issues and weird errors.
Derek Swingley
Saturday, December 09, 2006 10:17:34 AM (Mountain Standard Time, UTC-07:00)
Ah... the links into the docs are great - I'm going to add another post with those links and clarifications on this point.

One thing this cleared up for me was the the "single" vs "multiple". I had it mixed up by thinking in terms of single and multiple ArcSDE repositories. By my logic, the traditional model is "single" and the new model is "multiple".

One suggestion (albeit a little late!) would be to put little diagrams on the installer UI to help clarify what you are setting up

Thanks!


Dave
Saturday, December 09, 2006 10:21:55 AM (Mountain Standard Time, UTC-07:00)
Dave
I confirm you that from 9.0 this option (to keep schema totally in a SQL database) is available.
I believe this option is much better, you need to backup and/or replicate only one db, without affecting the others.
Comments are closed.