[Croatia] Baze testiranje - nastavak
Dražen Odobašić
dodobas at geoinfo.geof.hr
Thu Mar 17 03:38:24 EDT 2011
Pozdrav,
dakle imao sam zanimljiv problem...
Treba napraviti tzv. heatmapu za područja pretraživanja za cijeli svijet
(korisnik unosi geometriju po kojoj pretražuje). U svemu tome je i
vremenska komponenta, odnosno svako pretraživanje ima datum, pa se onda
treba omogućiti generiranje heatmape za prošli tjedan/mjesec/...
Nakon više ideja kako to riješiti odlučih složiti grid i onda brojati
koliko poligona pretraživanja siječe pojedini grid element i te
rezultate spremati u bazu kako bi se kasnije mogli pretraživati.
Grid za cijeli svijet (WGS84), ako se uzme stupanjska podjela ima
360*180 = 64800 ćelija, odnosno poligona, ako se uzme četvrtina stupnja
onda se broj ćelija povećava ma 360*180*16 = 1036800 (mnogo poligona).
Iako je broj pretraživanja relativno malen (550) rezultat presjeka
pretraživanja i grida je ~700000 zapisa u bazi.
U ovom slučaju koristio sam jednostavni ST_Intersects te se upit na
postgresql9/postgis1.5 bazi izvrti za ~8.5 sek (s indeksima) ili ~9 sek
ako se ne koriste indeksi.
Tzv. test case je - određivanje presjeka relativno velikog broja
poligona s malim setom poligona.
E sad, upit se vrtio na laptopu i5 M450 (Linux), s nekim osnovnim
'tuningom' baze. Ako vas zanima mogu pripremiti podatke i funkcije pa
isprobajte...
Dražen
More information about the Croatia
mailing list