MS SQL espacial como armazenamento de dados central?

9

Eu tenho trabalhado na abertura de nossos dados espaciais de um sistema proprietário para um que possa ser lido por mais produtos (MapGuide, ESRI, gvSIG, Map3D etc.)

Decidi usar o SQL Spatial, pois temos um servidor interno disponível para nós e podemos conectar-se a outros sistemas com bastante facilidade por meio dele.

Antes de começar a usá-lo como nosso armazenamento de dados central, há algo que eu deva estar ciente de que poderia diminuir significativamente o desempenho?

Jamo
fonte

Respostas:

6

Minha resposta não é sobre desempenho, mas esteja ciente de que você está limitado a Recursos Simples e a um conjunto limitado de consultas SQL Espaciais. Não que isso seja necessariamente uma coisa ruim, embora eu tenha me encontrado rapidamente com algumas das consultas SQL disponíveis no Postgres ou Oracle. Os recursos simples que eu realmente gosto, mantendo-o simples, permitem seguir boas práticas de banco de dados e transformar seus dados em linhas, polígonos, relacionamentos, o que você quiser.

westyvw
fonte
2
A versão mais recente permite curvas / arcos circulares e o tipo de geografia agora possui todas as funções espaciais que a geometria possui
geographika
5

Usa indexação de várias grades em vez de R-Tree como PostGIS e Oracle.

Não relacionado ao desempenho, mas talvez importante:

Não suporta transformações de coordenadas.

Há uma pequena diferença na sintaxe do SQL. Exemplo:

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

Provavelmente existem mais alguns, mas atualmente não consigo me lembrar deles :)

Mario Miler
fonte
5

Alguns negativos:

  • como mencionado por Mario mencionado, nenhuma ferramenta de projeção embutida significa que software adicional (FME ou GDAL são úteis) são necessários para reprojetar dados

  • o desempenho está faltando para algumas consultas espaciais (interseções / dentro) e os índices espaciais precisam ser criados manualmente, embora no próximo lançamento do Denali aparentemente tenha havido grandes melhorias no desempenho e nos índices espaciais "automáticos"

  • nenhuma referência linear (mas pode ser adicionada com o código .NET - veja abaixo)

  • falta de comunidade - há um projeto de código-fonte relacionado em http://sqlspatialtools.codeplex.com/ com pouca atividade para que drivers e ferramentas estejam à mercê dos lançamentos da Microsoft. Não há muitos exemplos de SQL.

  • Agora, o MapServer e o GDAL possuem drivers do SQL Server 2008, mas foram lançados recentemente - vários anos após outros bancos de dados espaciais.

Do lado positivo:

  • integração com o .NET. Como o SQL Server permite que o código .NET seja executado no banco de dados, permite que a funcionalidade nas DLLs e bibliotecas do .NET seja incluída em visualizações, procedimentos armazenados, gatilhos, etc. Bibliotecas como http://projnet.codeplex.com/ podem ser incluído para permitir reprojeções no banco de dados.

  • todos os sistemas proprietários incluem drivers / carregadores do SQL Server etc.

  • muitas organizações já possuem DBAs, servidores e processos de backup do SQL Server

  • o SQL Server Management Studio é uma ferramenta muito boa e inclui visualizações espaciais

  • Padrões OGC para métodos espaciais e recursos simples

geographika
fonte
3

Se seus dados são armazenados como tipo de geografia em escala global, você precisa estar ciente da Limitação do Hemisfério .

Kirk Kuykendall
fonte
Graças a Kirk, os dados serão armazenados como geometria, portanto, isso não deve ser um problema, os limites da área do projeto são relativamente pequenos, até agora consegui trazer com êxito 36.000 recursos para o sql (utilitários, cadastro e outros vários artistas)
Jamo
A última versão Denali do SQL Server inclui suporte para objetos espaciais completa globo - aparentemente "estreias da indústria para sistemas de banco de dados relacionais"
geographika