sql >> Database teknologi >  >> RDS >> Sqlserver

Hvor god er geografidatatypen i sql server 2008?

Hvis du kun håndterer et standard Lat/Lng-par, som du beskriver, og alt hvad du gør er et simpelt opslag, så vil du formentlig ikke vinde meget i vejen for en hastighedsforøgelse ved at bruge Geometry Type.

Men hvis du ønsker at blive mere eventyrlysten, som du siger, så vil bytte til brug af geometrityperne åbne en hel verden af ​​nye muligheder for dig og ikke kun for søgninger.

For eksempel (Baseret på et projekt, jeg arbejder på) kan du (hvis det er britiske data) downloade polygondefinitionerne for alle byer/landsbyer/byer for et givet område, og derefter lave krydsreferencer for at søge i en bestemt by, eller hvis du havde et kørekort, kunne du finde ud af, hvilke kunder der boede ved siden af ​​større leveringsruter, motorveje, primære veje alt muligt.

Du kan også lave nogle meget smarte rapporter, forestille dig et kort over byer, hvor hver omrids blev plottet på et kort, derefter skygget ind med en farve for at vise tætheden af ​​kunder i et område, en simpel geometri SQL vil nemt give dig en tælle lige fra databasen for at tegne denne form for information.

Så er der sporing, jeg ved ikke, hvilke data du håndterer, eller hvorfor du har kunder, men hvis du leverer noget, ved at indlæse koordinaterne for en varevogn, fortæller dig, hvor tæt den er på en given kunde.

Hvad angår spørgsmålet, er STDistance hurtig? jamen det er virkelig svært at sige, jeg synes et bedre spørgsmål er "Er det hurtigt i forhold til.....", det er svært at sige ja eller nej, medmindre du har noget at sammenligne det med.

Spatiale indekser er en af ​​de primære årsager til at flytte dine data til en geografisk bevidst database, de er optimeret til at give de bedste resultater for en given opgave, men som enhver database, hvis du opretter dårlige indekser, vil du få dårlig ydeevne.

Generelt bør du helt sikkert se en hastighedsforøgelse af en eller anden art, fordi matematikken i sorteringen og indekseringen er mere bevidst om dataens formål i modsætning til blot at være ret lineær i drift, som et normalt indeks er.

Husk også, at jo mere kraftig SQL-servermaskinen er, jo bedre resultater får du.

Et sidste punkt at nævne er håndtering af data, hvis du bruger en GIS-bevidst database, så åbner det mulighed for, at du kan bruge en GIS-pakke såsom ArcMap eller MapInfo til at administrere, rette og visualisere dine data, hvilket betyder, at rettelser er meget nemme at gøre ved at pege, klikke og trække.

Mit råd ville være at oprette en side om side tabel til din eksisterende, der er formateret til rumlige operationer, og derefter skrive et par lagrede procs og lave nogle timing tests, se hvilken der kommer bedst ud. Hvis du har en markant stigning kun på de grundlæggende operationer, du laver, så er det alene begrundelse, hvis det er omtrent lige så afhænger din beslutning virkelig af, hvilken ny funktionalitet du faktisk ønsker at opnå.




  1. Foretag nogle beregninger af værdierne i to tabel og gem det i tredje tabel mysql

  2. Tæl og vis hvor mange af specifikke kolonneresultater

  3. PostgreSQL FEJL:INSERT har flere målkolonner end udtryk, når det ikke gør det

  4. Fejlkontrol for PDO-forberedte erklæringer