[OSM-Devserver] Fwd: Schnelleres Rendern durch Preprozessing

Jeronimo Wanhoff wanhoff at lat-lon.de
Di Mai 18 10:35:07 CEST 2010


Hallo,

ich habe bei der Moderation der Mailingliste diese Mail versehentlich 
verworfen. Daher bekommt ihr sie jetzt von mir weitergeleitet.

viele Grüße,
	Jeronimo

----------  Weitergeleitete Nachricht  ----------

Betreff: Schnelleres Rendern durch Preprozessing
Datum: Montag, 17. Mai 2010
Von: Klaus Gaßner <k_gassner at web.de>
An: Mailingliste für den Development OSM Server 
<devserver at lists.openstreetmap.de>


Hi!

Ich wollte mal eine Erkenntnis aus der letzten Umstellung meiner Karte 
mit Euch teilen, vielleicht läßt es sich ja für Eure Projekte auch 
einsetzen.

Normalerweise haben die Mapnik Layers eine ziemlich komplizierte 
SELECT-Anweisung, in der ein Haufen Abfragen auf die einzelnen Tags mit 
OR verknüpft werden. Die sind generell ziemlich unhandlich und wurden 
von der DB immer mit einem Table Scan abgehandlet, egal was ich an 
Tricks mit Indexen versucht habe.

Ich mache mit den Daten ja ein Preprocessing, bevor sie in die DB 
kommen. Dabei gibt es einen Moment, wo ich bereits weiß, in welcher 
Layer bestimmte Objekte später angezeigt werden sollen. Also habe ich 
die Nummer dieser Layer mit in die DB geschrieben. Damit vereinfacht 
sich das Statement auf SELECT ... WHERE layer = <nummer>. Auf layer 
liegt natürlich ein Index. Ich habe den Eindruck, daß die DB jetzt den 
Index nutzt und die Tiles so deutlich schneller gerendert werden.

Natürlich ist die Situation in einer universell verwendbaren Datenbank 
etwas komplizierter, aber es könnte Sinn machen, eine Vorauswertung für 
die Renderregeln jedes Projektes laufen zu lassen und das Ergebnis in 
einer Extratabelle zu speichern. Die Vorauswertung müßte für jeden 
Import bzw. Änderung der Regeln nur einmal laufen, dafür sind die 
ständig benutzten Statements beim Rendern schneller.

bye
	Nop
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 197 bytes
Beschreibung: This is a digitally signed message part.
URL         : <https://lists.openstreetmap.de/pipermail/devserver/attachments/20100518/82843773/attachment.pgp>