ORM alapú lekérdezés-generálási stratégiák hatása az SQL Server erőforrás-gazdálkodására
Fájlok
Dátum
Authors
Folyóirat címe
Folyóirat ISSN
Kötet címe (évfolyam száma)
Kiadó
DOI
Absztrakt
A kutatásomban a modern webes szoftverfejlesztésben alkalmazott UI-komponenskönyvtárak (pl. DevExtreme) és az Entity Framework Core ORM együttes használatának teljesítményre gyakorolt hatását vizsgáltam. Bár ez a kényelmes, low-code megközelítés felgyorsítja a fejlesztést azáltal, hogy a kliensoldali szűréseket automatikusan SQL-kódra fordítja, arra voltam kíváncsi, hogy milyen rejtett „kényelmi adót” ró a rendszerre nagy adatmennyiség esetén. Ennek feltárására egy több millió rekordos telemetriai adatbázison hasonlítottam össze a paraméterezett LINQ lekérdezéseket a DevExtreme által generált, literál-alapú lekérdezésekkel. A méréseim egyértelműen megmutatták, hogy a dinamikusan generált lekérdezések szignifikánsan lassabbak. Az adatbázis-szintű elemzésem során a lassulás fő okaként az SQL Server Plan Cache (tervgyorsítótár) szennyeződését azonosítottam: míg a LINQ lekérdezések végrehajtási terveit a rendszer tökéletesen újrahasznosította, a literál-alapú kereséseknél minden futáshoz új tervet kellett gyártani. Ez a folyamatos újragenerálás az iterációk növekedésével komoly memóriapazarlást, processzor-többletterhelést és ezáltal skálázhatósági korlátokat eredményezett. A dolgozatomban nem vetem el teljesen a dinamikus megoldásokat, de erősen felhívom a figyelmet a tudatos tervezés fontosságára. Meglátásom szerint míg alacsony forgalmú adminisztrációs felületeken érdemes kihasználni a fejlesztést gyorsító előnyeit, addig a kritikus, nagy terhelésű végpontokon a paraméterezett stratégiák alkalmazását javaslom a skálázhatóság megőrzése érdekében.