Moi! Rajaa voisi kyllä nostaa, mutta tuo kymmenen tuntui minusta jo aika korkealta.
Mielenkiinnosta, kuinka monta sinulla on maksimissaan ja mitkä kentät siinä kyselyssä on mukana?
Tämä muutos liittyy siihen, että yritämme jotenkin saada suorituskykyongelmia kuriin. Ryhmittely kovin monella tekijällä on raskaampaa kuin vain parilla.
Kentät tarvitaan jotta listassa voidaan näyttää haettujen havaintojen perustiedot ja kartalla havaintopisteet. Taksonomiatietoja tarvitsen, jotta voin näyttää havainnon kohdalla oikean ikonin. Sovelluksen koodi on muutaman vuoden vanhaa ja nykyään varmaan toteuttaisin monta asiaa toisin, jotta kenttiä ei tarvitasi noin paljon, mutta tällä hetkellä tämä oli ikävä yhtäkkinen muutos. Jos pystytte muuttamaan rajoja accessToken-kohtaisesti, niin pyytäisin, että nostatte kohdallani rajaa. Luontotilastot-sovelluksen käyttäjämäärät / käyttö on niin pientä, että se tuskin vaikuttaa ratkaisevasti suorituskykyynne.
Silmään pisti tuo unitId-sarakkeen käyttö aggregointisarakkeena kyselyssä. Jokainen unitId on uniikki, joten todellisuudessa tämä kysely ei edes ole aggregointi vaan listakysely.
Sovelluksen käyttöliittymästä en löydä mitään syytä käyttää noin suurta määrää aggregointisarakkeita samanaikaisesti.
Joo, kuten Tapani kirjoitti, listakysely on tähän asiallisempi. Millä rajauksilla se on hidas?
Kokeile myös laittaa jokin orderBy mukaan… Oletus on havaintoajan mukaan laskeva järjestys, ja se on hidastava tekijä. Jos järjestyksellä ei ole väliä, sorttaa vaikka unit.unitId mukaan
En ole kovin tyytyväinen tapaan, jossa API:in tuodaan ilman mitään ennakkovaroitusta muutoksia, jotka voivat rikkoa ja tässä tapuksessa rikkoivatkin tuotannossa olevan sovelluksen.
Mä en mun koodia rupea juuri nyt sen enempää testaamatta kommentoimaan, koska en muista tarkalleen muutaman vuoden takaista päätöstä käyttää aggregointia listakyselyn sijasta. Molempia tapoja kyllä testasin silloin.
Ajattelin, että tämä on enemmän sellainen safety-measure kuin konkreettinen breaking change. Kymmenen tekijää kuulosti minusta siltä, ettei se varmaankaan aiheuta konkreettista muutosta yhdessäkään sovelluksessa. Tarkoitus oli lähinnä estää esimeriksi vahingossa aggregointi kaikilla kentillä, joka pistäisi tietokannan melko juntturaan.
Ikävää, että sovelluksesi meni rikki!
On varmaan totta, että tiettyyn rajaan asti /aggregate voi olla suorituskykyisempi kuin /list ja olen tätä ehkä joskus joillekkin – ehkä myös sinulle – ehdottanut vaihtoehtona. Jos kenttiä tarvitaan esim 30, niin /list alkaa varmasti olla nopeampi.
Kiitos paljon! Näissä mobiilisovelluksissa on se hankala puoli, että mä en pysty lennosta tuomaan nopeaa korjausta, koska ne joutuu aina menemään Applen/Googlen -tarkastuksen läpi. Ja yleensä tarkastukseen pääsy myös kestää niissä sovelluksissa kauemmin missä päivityksiä tehdään harvoin / keräävät vähän latauksia.
Tuosta suorityskyvystä vielä, niin tuossa mun kyselyssä voidaan ladata max parikin tuhatta havaintoa kerralla tietyltä ajanjaksolta valitusta taksonista ja näköjään käytän myös orderBy=gathering.eventDate.begin. Jos vastauksena saatavien havaintojen määrä jää pieneksi ne tulevat kyllä ihan parin sekunnin sisällä. Hidastuminen alkaa kun havaintojen määrä kasvaa suureksi ja siinä tuo list/aggregate-valinta teki muistaakseni merkittävän eron.
Foorumi on osaksi toteutettu VieKas LIFE -hankkeen osana (Finvasive LIFE, LIFE17 NAT/FI/000528).
Viekas on haitallisten vieraslajien kartoitukseen, torjuntaan ja tietoisuuden kasvattamiseen
keskittyvä hanke, joka on osittain rahoitettu EU Life-ympäristöohjelman tuella. Life
on Euroopan unionin rahoitusjärjestelmä, jonka tarkoituksena on kehittää yhteistä
ympäristöpolitiikkaa ja lainsäädäntöä
tukemalla luonnonsuojelu- ja ympäristöhankkeita eri puolilla Eurooppaa.