2016-09-17 8 views
0

私はいくつかのレイヤーを持つXMLプロジェクトファイルを持っています。その多くは2つ(低/高)または3(低/中/高)レイヤーに分割されています。ズーム範囲。層の全体の数(サブ部門も考慮)は42です。私はmapnik 3.0.12とのpython-mapnikバインディングを使用します。 PostgreSQLのログを見ると、与えられたズームレベルで単一のマップイメージ(一連のタイルではなく単純な静止イメージ)をリクエストするたびに、通常は12個しか必要ありませんMapnik: "LIMIT 0"クエリが多すぎる

「期間:xx.xxx MSの声明:」

が最後にクエリitsefl、プラス「LIMIT 0」の定義が続く42)に実行されるクエリは、私はいつも42回これを参照してください。

「期間:xx.xxx MSが実行:」

実際に実行することが必要とされた12個のクエリについてです は、その後、私は12回これを見つけることができます。 私は、 "LIMIT 0"の末尾にある42個のクエリが "チェッククエリ"であり、どのインデックスが使用するのに最適かを分析するために実行されると仮定しますが、実行する方法があるかどうかを知りたいと思いますこれは、project.xmlファイル内のすべてのクエリ(レイヤー)ではなく、一度に実際に実行する必要のあるクエリに対してのみ有効です。

答えて

0

mapnikプロジェクトファイル(Node.jsバインディングを使用しています)で同様の動作が発生しています。 I Datasource要素にextentsridパラメータを提供することで、データベースへのクエリの数を減らすことができた:私はMAPNIKはSRIDを決定するための機能を取得するために、2つのクエリ先のクエリの実行信じる

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

と層の範囲。これらをデータソースに事前に提供することで、mapnikはこれらのクエリを実行する必要はありません。

+0

私のコードでは、自分のコードで、サーバーを起動するときに一度ではなく、各タイルリクエストで 'mapnik.load_map(...)'メソッドを繰り返し呼び出していました。 – Andrea

関連する問題