Hopp til innhold

Forbedret ytelsen i en geografisk kartapplikasjon 10 ganger gjennom et strategisk databaseskifte fra MSSQL til PostgreSQL, inkludert omleggingen av dataene, og optimaliserte samtidig behandlingen og datasikkerheten.

10x raskere kart etter overgangen fra MSSQL

Situasjon. Organisasjonens geografiske kartapplikasjon, som støttet romlige spørringer i sanntid for mange brukere, slet med alvorlige ytelsesflaskehalser. Latens i gjengivelsen av kartlag og i spørringer mot stedsbaserte data gikk ut over både brukeropplevelsen og påliteligheten til backend‑tjenesten. Systemet bygde på en eldre Microsoft SQL Server‑database (MSSQL) som manglet innebygd geospatial indeksering.

Oppgave. Forbedre ytelsen, skalerbarheten og sikkerheten i kartapplikasjonen, med et konkret mål om å redusere spørringslatensen og øke gjennomstrømningen for romlige operasjoner.

Handling. Ledet en strategisk migrering fra MSSQL til PostgreSQL med PostGIS‑utvidelsen for å få innebygd geospatial støtte.

  • Designet et nytt skjema optimalisert for romlige data, med GiST- og SP‑GiST‑indekser på geometri- og geografikolonner for raskere spørringer.
  • Definerte strenge fremmednøkler og CHECK‑regler for å sikre relasjonell integritet og håndheve valideringsregler for romlige koordinater.
  • Migrerte over 50 millioner romlige poster via ETL‑pipelines med transformasjonssteg for å oppfylle nye SRID‑standarder (EPSG:4326).
  • Justerte konfigurasjonsparametere i PostgreSQL (f.eks. work_mem, effective_cache_size) for optimal I/O‑ytelse ved samtidig tilgang.
  • Implementerte rollebasert tilgangskontroll (RBAC) og sikkerhet på radnivå for å håndheve retningslinjer for databeskyttelse på tvers av flere brukergrupper.

Resultat. Oppnådde 10 ganger bedre ytelse for romlige spørringer, med en reduksjon i gjennomsnittlig svartid fra 2,5 sekunder til under 250 millisekunder. CPU‑belastningen i backend falt med 65 %, og systemets tilgjengelighet ble bedre i perioder med høy belastning. Sikkerheten ble også styrket med detaljerte tilgangsregler og valideringsregler for data, noe som reduserte risikoen for korrupte romlige data.

Ett stykke av en lengre oversikt — og den ligger i sin helhet her.

Hver oppføring er skrevet på samme måte: situasjonen, oppgaven, hva vi gjorde, og hva som endret seg.

Se hele oversikten