クエリプランナが…

問題は解決していませんでしたので、クエリの挙動を確認することにしました。
まずは前提について。問題になっているクエリは、ある属性が特定の条件にある場合のみを抜き出すものです。もちろん空間での抜き出しもあります。
問題のHTTPリクエストをHTTPのログから抜き出して、別のブラウザから実行。任意のタイミングで実行できるようになるので楽になると。
pglogを覗いて、SQLクエリ(SELECT)を抜き出して、頭に "EXPLAIN ANALYZE " を付けて実行。こうすることで、コストが計算できます。
すると、なんとまあ、空間の絞り込みより前に属性の絞り込みを行っていたことが判明。つまり、全国のデータを北から南までずっとなめていって、全国各地の条件にあった行を抜き出して、そこから特定の空間内にある行を抜き出すというもの。
逆ですこれ。1:30000 程度の縮尺でやってるんだから、相当に無駄でした。モルモット機では同じSQLクエリを実行しても、空間の絞り込みから先にやってました。
面倒くさいので、属性条件にあう行を全て抜き出して別のテーブルに叩き込みました。このテーブルから空間での抜き出しをやれば同等の結果が得られるというわけです。
で、今度こそ成功。
今回はたまたま、リードオンリーな使い方なのでどうにかなるけど、読み書きするのが目的のテーブルだったら呆然と立ち尽くすしかないような気がします。