Novosti, Digitalizacija, Poslovna rešenja, Opšte teme
Optimizacija u PANTHEON-u
Redovno vršimo optimizacije u PANTHEON-u. Čistimo i pregledamo kod i dodajemo nove funkcije. Ovim postižemo bolji i brži rad PANTHEON-a. U nastavku objavljujemo intervju na ovu temu sa Domenom Lukačičem, konsultantom za PANTHEON iz kompanije Datalab SI d.o.o.
Koje smo optimizacije implementirali u PANTHEON-u ove godine?
Prošle godine smo prešli na MS SQL 2016, a ove godine prelaskom na MS SQL 2017, kao najnižu verziju servera podataka, dobili smo dodatne nove sistemske funkcije. Oni su nekoliko puta brži u radu i koriste se tokom celog programa. Dozvolite mi da predstavim neke optimizacije;
- Dodali smo novi argument PERSISTED. Ovo omogućava fizičko skladištenje izračunatih vrednosti u tabelama.
- Takođe smo pojednostavili kodove tako što smo uklonili funkcije formatiranja ključeva.
Da sumiramo, u praksi to znači ubrzanje, jer više nema preračunavanja polja u hodu, prema podešavanjima u parametrima. A sada idemo na upite. Ako želimo da dobijemo velike količine podataka, to može potrajati. Šta smo uradili u ovoj oblasti?
Prvo, hajde da se dotaknemo optimizacije svih upita za izračunavanje dnevnih stopa. Tabelu smo popunili podacima za 5 narednih godina, tako da smo se oslobodili implementacije sporih funkcija i left-join-a i na taj način ubrzali rad sa podacima i prikaz podataka na dokumentima.
Što se tiče performansi, sam upit se izvršava 84% brže.
Da ostanemo na upitima. Skalarne funkcije su zamenjene tabelarnim funkcijama. Šta nam ovo donosi?
Skalarne funkcije preračunavaju podatke jedan po jedan, dok tabelarne funkcije preračunavaju sve podatke odjednom.
Ovim smo postigli mnogo brže izvršavanje SQL upita i manje opterećenje servera.
Takođe smo promenili naše funkcije za razdvajanje nizova znakova ili stringove i modifikovao ih da koriste MS SQL funkciju za koju se ispostavilo da je mnogo brža.
Pored toga, uklonili smo skoro 50 linija koda za razdvajanje stringova.