4270 オーバーフロー はくぶん 2012-03-19 01:21:36
この掲示板の左欄に"ドメイン別アクセス状況"というのがある。
今までの全アクセスをドメイン別に集計したページである。

日頃、このページを開く人はほとんどいないと思うので、
気付いていた人は多分いないだろうが、
開く度にスクリプトが動作途中でエラーになっていた。

スクリプトの構文自体に間違いはない。
現に対象レコード数を減らせば結果はちゃんと返って来る。
となると、原因はオーバーフロー。
確かに200万レコードを超えるヘビーな集計なので、
オーバーフローしたとしても不思議ではない。

少し前から改善しようと何パターンも処理方法を試してはみたのだが、
どう対処しても一向にオーバーフローは回避できなかった。

で、ついさっき、ようやく対処に成功。
ふと思い付いたパターンを試してみたら、あっさり結果を返して来た。
が、なぜそれでオーバーフローが回避されたかのかはわからない。
しかし、一応オーバーフローは解消されたということで、
今日は納得して寝るとしよう。

ただ、今後レコード数が増えていくと、
今の構文でもいつかオーバーフローする時が来るのかもしれない。
もし、そうなったら、その時は対処のしようがないかも。
今でも40秒以上かかる重い集計なんだから。

ちなみに、この対処を試みている際に発見したのだが、
リモートホスト名無し(空白)のアクセスが257件あった。
リモートホスト無しって、一体どうやったらそんなことが出来るの?
メッセージ文字数:591/620