# Förbättrade prestandan i en kartapplikation för geodata 10 gånger genom en strategisk databasövergång från MSSQL till PostgreSQL, inklusive själva omställningen av data, och optimerade bearbetningen och datasäkerheten.

2022 – 2024

**Situation.** Organisationens geografiska kartapplikation, som hanterade spatiala databasfrågor i realtid för många användare, led av allvarliga prestandaflaskhalsar. Latensen vid rendering av kartlager och vid frågor mot platsbaserade data påverkade både användarupplevelsen och tillförlitligheten i backendtjänsterna. Systemet byggde på en äldre Microsoft SQL Server‑databas (MSSQL) som saknade inbyggd geospatial indexering.

**Uppgift.** Uppgiften var att förbättra kartapplikationens prestanda, skalbarhet och säkerhet, med det uttalade målet att minska latensen för databasfrågor och öka genomströmningen för spatiala operationer.

**Handling.** Arbetet bestod i att leda en strategisk flytt av databasen från MSSQL till PostgreSQL med tillägget PostGIS, för att få inbyggt stöd för geospatiala data.

- Utformade ett nytt schema optimerat för spatiala data och införde GiST- och SP‑GiST‑index på geometri- och geografikolumner för snabbare frågor.
- Definierade strikta villkor för främmande nycklar och CHECK‑villkor för att säkerställa relationell integritet och upprätthålla valideringsregler för spatiala koordinater.
- Migrerade över 50 miljoner spatiala poster via ETL‑pipelines med transformeringssteg för att anpassa data till nya SRID‑standarder (EPSG:4326).
- Finjusterade konfigurationsparametrarna i PostgreSQL (t.ex. `work_mem`, `effective_cache_size`) för optimal I/O‑prestanda vid samtidig åtkomst.
- Implementerade rollbaserad åtkomstkontroll (RBAC) och säkerhet på radnivå för att upprätthålla dataskyddspolicyer för flera användargrupper.

**Resultat.** Prestandan för spatiala databasfrågor förbättrades 10 gånger, och den genomsnittliga svarstiden sjönk från 2,5 sekunder till under 250 millisekunder. CPU‑belastningen i backend minskade med 65 %, och systemets tillgänglighet förbättrades vid toppbelastning. Säkerheten stärktes också genom finkorniga åtkomstpolicyer och valideringsvillkor för data, vilket minskade risken för korrupta spatiala data.

---

- Roll: Dataingenjör
- Kategorier: [Backendutveckling](https://software.engineer.company/sv/categories/backend/), [Databaser](https://software.engineer.company/sv/categories/databases/), [PostgreSQL](https://software.engineer.company/sv/categories/postgresql/), [SQL](https://software.engineer.company/sv/categories/sql/), [Data engineering](https://software.engineer.company/sv/categories/data-engineering/), [Datapipelines (ETL/ELT)](https://software.engineer.company/sv/categories/data-pipelines/), [Säkerhet](https://software.engineer.company/sv/categories/security/), [Prestandaoptimering](https://software.engineer.company/sv/categories/performance/), [Migrering och modernisering](https://software.engineer.company/sv/categories/migration/), [GIS / geodata](https://software.engineer.company/sv/categories/gis/)
- Tjänster: [GIS- och geodatalösningar](https://software.engineer.company/sv/services/gis-geospatial/), [Optimering av databasprestanda](https://software.engineer.company/sv/services/database-performance/), [Databasmigrering och modernisering](https://software.engineer.company/sv/services/database-migration/)

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