[PHP-users 20650]Re: pg_free_result呼び出しタイミングについて

Kenji Ono ono @ fjct.fujitsu.com
2004年 3月 4日 (木) 09:20:14 JST


大垣さん、今日は。小野です。

ここでの500とは、回答者の数です。
DBの設計というよりも、SQLを発行するためのアルゴリズムがなってな
いと判明しました。

今は回答者の数分ループしているようです。
アンケートコード+質問コードをSELECTし、その抽出ループ内で質問の
回答候補コード毎にGroup Byすれば、何万人回答されてもループの数は
質問数しかならず、さほど抽出に時間はかからないと思います。

改造後にまた報告致します。

> >>>1重目が500回を超えるあたりから、ガクンと速度が低下します。
> >>
> >>私もPostgreSQLで統計処理を組んだことがありますが、
> >>TableのIndexを適切に設定しておくとquery自体の速度はけっこう改善されます。
> >>そのあたりはいかがでしょうか?
> > 
> > 
> > いまのところ、PG_FREE_RESULTで高速化できなかったので、SQLの
> > チューニングを開始しているところです。
> > ところが、ソースの中を見るとひどくて・・・。
> > 手を付け始めて早速、ねをあげています。
> > 
> > とほほ・・・。
> 
> 本当に500回以上ループしなければならない、とするとDBの設計から
> 見直した方がよいかも...
> 
> SQLでなんとかできるならその方が速いと思います。


PHP-users メーリングリストの案内