Being relatively new to ESRI ArcGIS Server I have a question regarding the storage of ESRI SDE Databases - AGS 10.0 Enterprise and ArcSDE 9.3.

Firstly the naming of the whole structure gets confusing. SDE as far as I know, is only the software which "spatially enables" a Database (in my case MS SQL 2008 R2). So when I create a geodatabase in MSSQL I have to do this through the post install program. Only then will I have the ability to view/update/delete in the geodatabase either with ArcEditor/Info.

Im my "inherited" system that I have to now continue using, I have some data coming from MSSQL Server and some from Geodatabases which are on another PC.

Question 1: What type of connection is that on the pc? Is that a so called "direct" sde connection?

Question 2: Some other colleagues have told me, that Rasters are delivered quicker in AGS Services if they are not in the MSSQL DB. Is this true?

Thanks for any help,


  • 1
    I think this should be split into two questions to better fit the Q&A format of Stack Exchange sites.
    – PolyGeo
    Commented Jun 19, 2013 at 12:45

2 Answers 2


SDE is a middle tier software that translates calls from ESRI, or other, clients into SQL that is appropriate for a certain database. If you are connecting to a geodatabase, then SDE also manages a certain amount of metadata that is stored in that database's SDE or dbo schema. What is ArcSDE

For Vector data on SQL Server 2008, there are actually spatial types provided by Microsoft which you can be used to store your data. But by default, SDE will create tables using a storage type called SDEBinary or just Binary. This is basically storing the geometry as binary data in a side table (F-Table), and maintaining a pseudo-index table to improve performance (S-Table). I call it a pseudo-index table because it isn't an index at the database level.

I don't think Microsoft has provided a type that can store rasters in the database (other then a BLOB). SDE can add an ST_Raster type, but that type will not be added by default.

When you run the post-install program, or the enable or create geodatabase GP tools at later releases, you are adding the tables in the SDE or dbo schema that track feature classes and tables, along with other functionality such as versioning and archiving. Additional tables are added by the Geodatabase to track feature database, subtypes, topologies, etc.

The difference between direct connect(2-tier) and application service connection(3-tier) is where the SDE process is running. That is, where the translation between the SDE calls from the client and the DBMS calls from SDE are actually being translated. With a direct connection, that process is running within the client application (ArcMap, ArcCatalog, ArcIMS, etc). With an application service connection, that same process is started by a separate service called the giomanager. This giomanager can run on any machine, but is commonly run on the same machine that is hosting the database. An Overview of ArcSDE Geodatabase Connections

So, to answer your questions:

Question1: It depends on how you are connecting. If in your connection dialog box you are entering a port number into the instance field, you are running application service connection. If you are entering something like 'sde:sqlserver:myHostName', then you are running a direct connection. Creating spatial database connections - Scroll down to 'Adding a direct connection to a geodatabase in SQL Server'.

Question2: It depends. There are many things that can cause performance issues for both SQLServer, DBMS and file based rasters. But in general, file based rasters outperform those stored in databases. This is because the architecture of a database, and ArcSDE, isn't really designed to store and retrieve giant chunks of binary data. Similarly, large and externally complex vector data does not perform well either. Rasters stored locally will outperform those stored remotely. But all else being equal, I would expect that a raster stored in a remote file geodatabase to perform more slowly then one stored in an SDE instance, which would perform slower then one stored as a tiff in a remote directory, which would be slower than one stored in Image Server. Geodatabase and ArcSDE Raster Basics


Spatial databases have been growing in demand in the last few years which drew major databases like Oracle and MSSQL to develop their own Spatial functions and data types in their native products (i.e SDO_GEOMETRY and SpatialData)..
These packages allow you to store and query geographic data and answer much of the requirements a common GIS system asks for.
The idea behind an SDE is a geographic database which "sits" upon another existing database (MSSQL in your case) and stores geographic data in it's own classes and types (ST_GEOMETRY) to query and insert geographic data.
That said, the real advantage in using an SDE in the present is querying vector data.
The SDE performance on rasters is slower then using other raster storage methods (like ESRI File Geo Databse)
As for direct connection, this is now the default in ArcGIS and you should definitely use it in 9.3 as well.
And for the other question, I don't know about specific problems with MSSQL. How do you store the raster data? in binary columns on the DB?

  • The Rasters are simply imported into the GDB through ArcCatalog - I can´t tell you more than that. What is confusing for me is that I didn´t install the system, so I can´t tell what all the parts do. You say SDE sits on the DBS, but does that mean it is installed into MSSQL or simply on the same server or even somewhere else and simply organises the spatial data? Commented Jun 19, 2013 at 13:17
  • Yes- SDE is "on the same server or even somewhere else and simply organises the spatial data" Commented Jun 19, 2013 at 13:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.