友人宅に遊びに行ってたとき。
ひょんなことから、とあるサイトのソースをみせてもらった。
なんでも「Topページの表示が重い」とか「使っているとだんだん重くなってくる」とか
そんな理由の追求のためだった。


状況を簡単に聞いてみた。
だいたいな状況は以下の通り
 ・データ数は多くない。
 ・現在あるデータを検索して表示するのが主目的なので、複雑なことはしてない。はず。


これだけの条件下で疑うべきこと。
 ・DBへのセッション数が残りつづけてはいないか?
 ・Select文でへんなことしていないか?
 ・表領域にゆとりはあるか
などなど、基本的なことである。


DBは流石に見れないので、
ソースを追っかけ調べることしばらく。
こんなSQLがみつかりますた。

Select
 ・・・・・・(略)・・・・・・
from
 tableA
 inner join tableB on tableA.id = tableB.id
 inner join tableC on tableB.id = tableC.id
 inner join tableD on tableC.id = tableD.id
 inner join tableE on tableD.id = tableE.id
where
 ・・・・・・(略)・・・・・・

( ゜д゜)ポカーン
また別のところでは

Select
 ・・・・・・(略)・・・・・・
from
 tableA
 join tableB on tableA.id = tableB.id
 join tableC on tableB.id = tableC.id
 join tableD on tableC.id = tableD.id
 join tableE on tableD.id = tableE.id
where
 ・・・・・・(略)・・・・・・

( ゜д゜)ポカカーン


なんてゆーか。
だめSQLにもほどがあるっ。(゜Д゜)!!
何個JOINしてんねん! っつかこれをTOP画面開かれたときに毎回流してるってアホか!!
もちろんメインである、tableAのデータのごく一部をSelectしたいという要件でこれである。


ついでにこのソースたち。
ページ遷移するたびにDBにコネクションをはりに行き。
コネクションの解放はみあたらず。
Selectしてきたデータオブジェクト達の解放も一部しかみあたらず。


なんてゆーか。
だめソースにもほどがあるっ。(゜Д゜)!!


phpはよく知らないけれども、ソースの記述内容でだいたいの実行内容は想像できる。
他の言語達と比較すれば、こいつだけすんげー特別って所は滅多にあるもんじゃない。
という前提をもって。
久しぶりにソース見て笑わせていただいた。
( ´∀`)げらげらげら


・・・・・・
(..゜Д゜)<ネコも杓子もプログラマで通用する世の中なくさねぇか?
       こんなクサレソースがまかり通るから後のメンテナンスが死ぬほど大変になんねん。


笑うと同時にそんなきもちになった一時でした。ヽ(´ー`)ノ