MS SQL Spatial как центральное хранилище данных?

9

Я работал над открытием наших пространственных данных из проприетарной системы в систему, которая может быть прочитана другими продуктами (MapGuide, ESRI, gvSIG, Map3D и т. Д ....)

Я решил использовать SQL Spatial, так как у нас есть собственный сервер, и через него мы можем легко связываться с другими системами.

Прежде чем полностью использовать его в качестве нашего центрального хранилища данных, есть ли что-то, о чем я должен знать, что может значительно снизить производительность?

Jamo
источник

Ответы:

6

Мой ответ не о производительности, но помните, что вы ограничены простыми функциями и ограниченным набором запросов Spatial SQL. Не то чтобы это обязательно было плохо, хотя я быстро обнаружил, что сам желаю некоторых SQL-запросов, доступных, скажем, в Postgres или Oracle. Простые функции, которые мне действительно нравятся, простота позволяет вам следовать хорошим правилам работы с базами данных и позволяет преобразовывать ваши данные в линии, многоугольники, отношения, что вы когда-нибудь захотите.

westyvw
источник
2
В последнем выпуске предусмотрены кривые / дуги окружности, а тип географии теперь имеет все пространственные функции, которые имеет геометрия
geographika
5

Использует Multi-grid индексацию, а не R-Tree, как PostGIS и Oracle.

Не связано с производительностью, но, возможно, важно:

Не поддерживает преобразования координат.

Существует небольшая разница в синтаксисе SQL. Пример:

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

Есть, вероятно, еще немного, но в настоящее время я не могу вспомнить их :)

Марио Милер
источник
5

Несколько минусов:

  • как упомянуто Марио, упомянутое отсутствие встроенных инструментов проектирования означает, что для перепроектирования данных требуется дополнительное программное обеспечение (FME или GDAL)

  • Производительность не хватает для некоторых пространственных запросов (пересекает / внутри), и пространственные индексы должны быть созданы вручную, хотя в следующем выпуске Denali, очевидно, были значительные улучшения в производительности, и «автоматические» пространственные индексы

  • нет линейных ссылок (но может быть добавлено с помощью кода .NET - см. ниже)

  • недостаток сообщества - на http://sqlspatialtools.codeplex.com/ есть один связанный проект с открытым исходным кодом, в котором мало активности, поэтому драйверы и инструменты зависят от выпусков Microsoft. Не слишком много примеров SQL.

  • Оба MapServer и GDAL теперь имеют драйверы SQL Server 2008, но они появились только недавно - спустя несколько лет после других пространственных баз данных.

С положительной стороны:

  • интеграция с .NET. Поскольку SQL Server позволяет запускать код .NET в базе данных, он обеспечивает функциональность в библиотеках и библиотеках .NET, включаемых в представления, хранимые процедуры, триггеры и т. Д. Такие библиотеки, как http://projnet.codeplex.com/, могут быть включены, чтобы позволить репроекции в базе данных.

  • все проприетарные системы включают в себя драйверы / загрузчики SQL Server и т. д.

  • во многих организациях уже есть администраторы баз данных SQL Server, серверы, процессы резервного копирования

  • SQL Server Management Studio - очень хороший инструмент, включающий пространственную визуализацию

  • Стандарты OGC для пространственных методов и простых функций

geographika
источник
3

Если ваши данные хранятся в виде географического типа в глобальном масштабе, вам необходимо знать об ограничении полушария .

Кирк Куйкендалл
источник
Благодаря Кирку, данные будут храниться в виде геометрии, так что это не должно быть проблемой, ограничения области проекта относительно невелики, поэтому я успешно перенес в sql около 36 000 объектов (утилиты, кадастр и другие различные функции)
Джамо
Последний выпуск SQL Server для Denali включает поддержку полных глобальных пространственных объектов - очевидно, «первых в отрасли для систем реляционных баз данных»
география