MS SQL Spatial jako centralny magazyn danych?

9

Pracowałem nad otwarciem naszych danych przestrzennych z systemu własności na taki, który może być odczytany przez więcej produktów (MapGuide, ESRI, gvSIG, Map3D itp ...)

Zdecydowałem się na użycie SQL Spatial, ponieważ mamy dostępny serwer w domu i możemy za jego pośrednictwem łatwo łączyć się z innymi systemami.

Czy zanim zacznę używać go jako naszego centralnego magazynu danych, czy jest coś, o czym powinienem wiedzieć, co może znacznie obniżyć wydajność?

Jamo
źródło

Odpowiedzi:

6

Moja odpowiedź nie dotyczy wydajności, ale pamiętaj, że jesteś ograniczony do prostych funkcji i ograniczonego zestawu zapytań SQL Spatial. Nie znaczy to, że jest to zła rzecz, chociaż szybko odkryłem, że nie chcę zapytań SQL dostępnych w powiedzmy Postgres lub Oracle. Proste funkcje, które naprawdę lubię, upraszczając, pozwalają postępować zgodnie z dobrymi praktykami baz danych i przekształcać dane w linie, wielokąty, relacje, co tylko chcesz.

westyvw
źródło
2
Najnowsza wersja dopuszcza łuki / łuki kołowe, a typ geograficzny ma teraz wszystkie funkcje przestrzenne, które ma geometria
geographika
5

Używa indeksowania wielosiatkowego zamiast R-Tree jako PostGIS i Oracle.

Nie związane z wydajnością, ale może ważne:

Nie obsługuje przekształceń współrzędnych.

Istnieje niewielka różnica w składni SQL. Przykład:

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

Prawdopodobnie jest ich więcej, ale obecnie ich nie pamiętam :)

Mario Miler
źródło
5

Kilka negatywów:

  • jak wspomniany przez Mario wspomniany brak wbudowanych narzędzi do projekcji oznacza, że ​​dodatkowe oprogramowanie (FME lub GDAL są przydatne) jest wymagane do zmiany danych

  • w przypadku niektórych zapytań przestrzennych (przecięcia / wewnątrz) brakuje wydajności, a indeksy przestrzenne muszą być tworzone ręcznie, chociaż w następnej wersji Denali najwyraźniej nastąpiła znaczna poprawa wydajności oraz „auto” indeksy przestrzenne

  • brak odniesienia liniowego (ale można go dodać za pomocą kodu .NET - patrz poniżej)

  • brak społeczności - istnieje jeden powiązany projekt typu open source pod adresem http://sqlspatialtools.codeplex.com/ z niewielką aktywnością, więc sterowniki i narzędzia są na łasce wydań Microsoft. Nie za dużo przykładów SQL.

  • MapServer i GDAL mają teraz sterowniki SQL Server 2008, ale pojawiły się dopiero niedawno - kilka lat po innych przestrzennych bazach danych.

Na plus:

  • integracja z .NET. Ponieważ SQL Server pozwala na uruchamianie kodu .NET w bazie danych, pozwala na włączenie funkcjonalności bibliotek DLL i bibliotek .NET do widoków, procedur przechowywanych, wyzwalaczy itp. Biblioteki takie jak http://projnet.codeplex.com/ mogą być dołączone, aby umożliwić ponowne odrzucenie bazy danych.

  • wszystkie zastrzeżone systemy obejmują sterowniki / programy ładujące SQL Server itp.

  • wiele organizacji ma już SQL Server DBA, serwery, procesy tworzenia kopii zapasowych

  • SQL Server Management Studio to bardzo ładne narzędzie, które zawiera wizualizacje przestrzenne

  • Standardy OGC dla metod przestrzennych i prostych funkcji

geografia
źródło
3

Jeśli Twoje dane są przechowywane jako typ geograficzny w skali globalnej, musisz pamiętać o ograniczeniu półkuli .

Kirk Kuykendall
źródło
Dzięki Kirk dane będą przechowywane jako geometria, więc nie powinno to stanowić problemu, granice obszaru projektu są stosunkowo niewielkie, do tej pory z powodzeniem wprowadziłem około 36 000 funkcji do sql (narzędzia, katastry i inne różne funkcje)
Jamo,
Najnowsza wersja SQL Server firmy Denali obejmuje obsługę obiektów przestrzennych z pełną kulą ziemską - najwyraźniej „pierwsze w branży systemy relacyjnych baz danych”
geographika