[Rumble-jp-dev] テストサイトアップデート

Back to archive index

Naoki Kurosawa naoki_kuros****@ybb*****
2003年 3月 23日 (日) 01:54:05 JST


黒澤です。

L> > 変更しておきました。
L> > ついでにベスト5からベスト10の表示に変更しました。
L> > ご意見などありましたらお願いします。
L> 
L> もしかして、皆さんも全く表示できないんでしょうか…
L> 激重なのか、ランキングはなんど見ても
L> Connection Timed Out
L> になりますね。
L> こちらのサンプルでは表示されてたんですが、
L> データ量が多いとSQLのmax()って厳しいのかな。

BattleManagerBeanのgetRankingScoreにログ出力をはさんで時間を
計ってみました。

23:56:15,334 DEBUG [BattleManagerBean] getRankingScore[total_score] start.
23:56:17,079 DEBUG [BattleManagerBean] max query end.
23:56:25,066 DEBUG [BattleManagerBean] getRankingScore end.
23:56:25,070 DEBUG [BattleManagerBean] getRankingScore[bullet_dmg] start.
23:56:25,487 DEBUG [BattleManagerBean] max query end.
23:56:32,656 DEBUG [BattleManagerBean] getRankingScore end.
23:56:32,658 DEBUG [BattleManagerBean] getRankingScore[bullet_dmg_bonus] start.
23:56:33,077 DEBUG [BattleManagerBean] max query end.
23:56:40,300 DEBUG [BattleManagerBean] getRankingScore end.
23:56:40,303 DEBUG [BattleManagerBean] getRankingScore[ram_dmg] start.
23:56:40,721 DEBUG [BattleManagerBean] max query end.
23:56:47,613 DEBUG [BattleManagerBean] getRankingScore end.
23:56:47,616 DEBUG [BattleManagerBean] getRankingScore[ram_dmg_bonus] start.
23:56:48,033 DEBUG [BattleManagerBean] max query end.
23:56:56,208 DEBUG [BattleManagerBean] getRankingScore end.
ということでクエリで31秒かかってます。
これにプラスしてJSP実行時間、ネットワーク転送時間がかかるわけですね。

「getRankingScore[...] start.」から「max query end」までが、
ランキングを出すクエリの時間で、

「max query end」から「getRankingScore end.」までが、
ランキングに載ったロボットの情報を取得するクエリ群です。

インデックスのないフィールドをWHERE条件にしたり、MAXを取ったりすれば
時間がかかります。
というわけで、
battle_robotsテーブルの
total_score, bullet_dmg, bullet_dmg_bonus, ram_dmg, ram_dmg_bonus
にインデックスを張ってみました。

すると、3秒になりました。
テストサイトもアップデートしておきましたので、
見れるようになったと思います。

00:26:27,722 DEBUG [BattleManagerBean] getRankingScore[total_score] start.
00:26:28,074 DEBUG [BattleManagerBean] max query end.
00:26:28,413 DEBUG [BattleManagerBean] getRankingScore end.
...
00:26:30,843 DEBUG [BattleManagerBean] getRankingScore end.

が、データ量がどーんと増える(27MB→52MB)ので、この手は×です。
あらかじめ計算しておく仕組みが必要ですね。

-- 
Naoki Kurosawa <naoki_kuros****@ybb*****>





Rumble-jp-dev メーリングリストの案内
Back to archive index