2016-09-17 3 views
0

Ich habe eine XML-Projektdatei mit mehreren Ebenen, von denen viele wiederum in 2 (low/high) oder 3 (low/mid/high) Layer unterteilt sind, die jeweils unterschiedliche Bereiche abdecken Zoombereiche. Die gesamte Anzahl der Schichten (unter Berücksichtigung von Unterteilungen) ist 42. Ich verwende die Python-Mapnik-Bindung mit mapnik 3.0.12. Nun, wenn ich mir die PostgreSQL-Logs anschaue, würde ich jedes Mal, wenn ich ein einzelnes Kartenbild (ein einfaches statisches Bild, nicht eine Reihe von Kacheln) bei einer bestimmten Zoomstufe anfordere, normalerweise nur 12 (von 42) Abfragen ausgeführt werden, ich sehe immer 42 mal diese:Mapnik: zu viele Abfragen "LIMIT 0"

"Dauer: xx.xxx ms Aussage:"

durch die Definition der Abfrage itsefl gefolgt, plus "LIMIT 0" am Ende. Dann kann ich 12 Mal findet diese:

„Dauer: xx.xxx ms ausführen:“

, die über die 12-Abfragen, die tatsächlich ausgeführt werden soll, benötigt wurden. Ich vermute, dass die 42 Abfragen mit dem abschließenden "LIMIT 0" sind "check Abfragen" durchgeführt, um zu analysieren, welcher Index wäre der beste zu verwenden, etc ... aber ich würde gerne wissen, ob es einen Weg zu tun ist Dies gilt nur für die Abfragen, die zur gleichen Zeit ausgeführt werden müssen, nicht für alle Abfragen (Ebenen) in der Datei project.xml.

Antwort

0

Ich habe ähnliches Verhalten in meiner Mapnik-Projektdatei festgestellt (ich arbeite mit den Node.js Bindungen). Ich war in der Lage, die Anzahl der Anfragen an die Datenbank zu verringern, indem extent und srid Parameter im Datasource Elemente bereitstellt:

<Datasource> 
    <Parameter name="extent">-180 -90,180 90</Parameter> 
    <Parameter name="srid">4326</Parameter> 
</Datasource> 

Ich glaube Mapnik zwei Abfragen vor der Abfrage führt die Funktionen zum Abrufen des SRID zu bestimmen und das Ausmaß der Schicht. Durch die Bereitstellung dieser Daten in der Datenquelle muss mapnik diese Abfragen nicht ausführen.

+0

Ich erkannte, dass es meine Schuld war: In meinem Code rief ich immer die Methode mapnik.load_map (...) bei jeder Kachelanforderung auf, anstatt nur einmal beim Starten des Servers. – Andrea

Verwandte Themen