¿MS SQL espacial como almacén de datos central?

9

He estado trabajando para abrir nuestros datos espaciales de un sistema propietario a uno que pueda ser leído por más productos (MapGuide, ESRI, gvSIG, Map3D, etc.)

Decidí usar SQL Spatial ya que tenemos un servidor interno disponible para nosotros y podemos vincularnos a otros sistemas fácilmente a través de él.

Antes de hacer todo lo posible para usarlo realmente como nuestro almacén de datos central, ¿hay algo que deba tener en cuenta que pueda disminuir en gran medida el rendimiento?

Jamo
fuente

Respuestas:

6

Mi respuesta no es sobre el rendimiento, pero tenga en cuenta que está limitado a Características simples y a un conjunto limitado de consultas de SQL espacial. No es que esto sea necesariamente algo malo, aunque rápidamente me he encontrado con algunas de las consultas SQL disponibles en Postgres u Oracle. Las características simples que realmente me gustan, al mantenerlo simple, le permiten seguir buenas prácticas en la base de datos y transformar sus datos en líneas, polígonos, relaciones, lo que quiera.

westyvw
fuente
2
La última versión permite curvas / arcos circulares y el tipo de geografía ahora tiene todas las funciones espaciales que tiene la geometría
geographika
5

Utiliza la indexación de múltiples cuadrículas en lugar de R-Tree como PostGIS y Oracle.

No relacionado con el rendimiento, pero tal vez importante:

No admite transformaciones de coordenadas.

Hay una ligera diferencia en la sintaxis de SQL. Ejemplo:

SELECT * FROM table1 WHERE the_geom.STIntersects(geometry::STGeomFromText('POINT(100 100)',0));

Probablemente hay algunos más, pero actualmente no puedo recordarlos :)

Mario Miler
fuente
5

Algunas cosas negativas:

  • Como mencionó Mario, no mencionó que las herramientas de proyección incorporadas significan que se requiere software adicional (FME o GDAL) para reproyectar datos

  • falta el rendimiento para algunas consultas espaciales (intersecciones / dentro), y los índices espaciales deben crearse manualmente, aunque en la próxima versión de Denali aparentemente ha habido grandes mejoras en el rendimiento y los índices espaciales "automáticos"

  • sin referencias lineales (pero se puede agregar con código .NET - ver más abajo)

  • falta de comunidad: hay un proyecto de código abierto relacionado en http://sqlspatialtools.codeplex.com/ con poca actividad, por lo que los controladores y las herramientas están a merced de los lanzamientos de Microsoft. No hay muchos ejemplos de SQL.

  • MapServer y GDAL ahora tienen controladores de SQL Server 2008, pero estos solo han salido recientemente, varios años después de otras bases de datos espaciales.

En el lado positivo:

  • integración con .NET. Como SQL Server permite que el código .NET se ejecute en la base de datos, permite que la funcionalidad en .NET DLL y bibliotecas se incluyan en vistas, procedimientos almacenados, desencadenantes, etc. Las bibliotecas como http://projnet.codeplex.com/ pueden ser incluido para permitir reproyecciones en la base de datos.

  • todos los sistemas propietarios incluyen controladores / cargadores de SQL Server, etc.

  • muchas organizaciones ya tienen DBA de SQL Server, servidores, procesos de respaldo

  • SQL Server Management Studio es una herramienta muy agradable e incluye visualizaciones espaciales

  • Estándares OGC para métodos espaciales y características simples.

geographika
fuente
3

Si sus datos se almacenan como tipo de geografía a escala global, debe tener en cuenta la limitación del hemisferio .

Kirk Kuykendall
fuente
Gracias Kirk, los datos se almacenarán como geometría, por lo que esto no debería ser un problema, los límites del área del proyecto son relativamente pequeños, hasta ahora he traído con éxito unas 36,000 características en sql (utilidades, catastro y otras características diferentes)
Jamo
La última versión de Denali de SQL Server incluye soporte para objetos espaciales de globo completo - aparentemente "primeros en la industria para sistemas de bases de datos relacionales"
geographika