2006年7月13日

[PHP-users 29748]DBからの値取得が遅すぎる。

寺尾です。

処理速度について問題が出てきましたので、ご質問させて下さい。
もしかしたらDB2のことなので、
ML違いかも知れませんが、よろしくお願い致します。

環境は
PHP 4.3.8

Apache 1.3.31
DB2 Express-C
MySQL 12.22
DB.php 1.58
です。


$result = $db->query("SELECT * FROM TABLE WHERE a=1000 order by b");
for($i=0;$i<$result->NumRows();$i++){
$data[] = $result->fetchRow(DB_FETCHMODE_ASSOC);
}
を実行させております。

※環境の各バージョンに関しては変更することが出来ません。
※SQLの結果は1000件程度です。
※for文の中には他にも処理が入っていますが、関係ないので消してあります。

これを実行すると、MySQL接続時の時は1秒かからず表示されますが、
DB2で実行すると10秒ぐらいかかってしまいます。
また、処理をgetAllに変更してみても、まったく同じ結果でした。

time()を使い明らかにfetchRowが遅いと言うのは分かっています。
DB2が遅いのかと思い同じSQLをコマンドで打ってみましたが、
1秒ぐらいで結果を取得できます。

PHP、PEARが悪い場合は、対処方法をご教授下さい。
DB2が悪い場合は、違うところで聞いてみます。

よろしくお願いします。

_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ns1.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://www.php.gr.jp/php/novice.php3

投稿者 xml-rpc : 2006年7月13日 10:57
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/39474
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。