# 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.

2022 – 2024

**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.

---

- Rolle: Dataingeniør
- Kategorier: [Backend‑utvikling](https://engineer.company/nb/categories/backend/), [Databaser](https://engineer.company/nb/categories/databases/), [PostgreSQL](https://engineer.company/nb/categories/postgresql/), [SQL](https://engineer.company/nb/categories/sql/), [Data engineering](https://engineer.company/nb/categories/data-engineering/), [Datapipelines (ETL/ELT)](https://engineer.company/nb/categories/data-pipelines/), [Sikkerhet](https://engineer.company/nb/categories/security/), [Ytelsesoptimalisering](https://engineer.company/nb/categories/performance/), [Migrering og modernisering](https://engineer.company/nb/categories/migration/), [GIS / geodata](https://engineer.company/nb/categories/gis/)
- Tjenester: [GIS- og geodataløsninger](https://engineer.company/nb/services/gis-geospatial/), [Optimalisering av databaseytelse](https://engineer.company/nb/services/database-performance/), [Databasemigrering og modernisering](https://engineer.company/nb/services/database-migration/)

<https://engineer.company/nb/portfolio/improved-geographical-map-application-performance-by-10x-through-6/>
