[PHP-users 21562]Re: 全件取得時のレスポンス改善
Nobuyuki Tsuruta
tsuruta @ qnote.co.jp
2004年 5月 10日 (月) 23:49:20 JST
鶴田@qnoteと申します。
whileループの中で、毎回取得件数をoci_num_rowsとかで見てたり
すると遅くなるかも。(PEAR DB使った場合の経験なのでPEAR特有
の動きかもしれませんが。)
こんなの↓
while ($i < oci_num_rows($result)) {
:
}
改善策↓
$j = oci_num_rows($result);
while ($i < $j) {
:
}
At 11:32 PM +0900 04.5.10, yamamoto wrote:
>山本と申します。
>
>現在php4.3.4,oracle8.1.7で開発を行っております。
>
>検索結果を表示する際に以下の順序で行っていますが、
>時間がかかり困っています。
>
>1.検索条件でSQL文作成
>2.SQL文のセット(OCIParse)
>3.SQL文の実行(OCIExecute)
>4.取得した結果をwhile Loopでセッション配列にセット
> (一度に全件取得にしたのは再ソートを行う必要があるからです。)
>
>
>の順で処理を行っています。
>
>条件:ページ表示件数100件、検索結果最大2000件(10ページまで)
>
>以下に実行例を示します。
>
>(実行例.A 検索結果件数292件)
> 1 = 2004/05/10 18:02:16
> 2 = 2004/05/10 18:02:16
> 3 = 2004/05/10 18:02:16
> 4(開始) = 2004/05/10 18:02:36
> 4(終了) = 2004/05/10 18:03:31
>
>(実行例.B 検索結果件数2000件以上)
> 1 = 2004/05/10 18:05:28
> 2 = 2004/05/10 18:05:28
> 3 = 2004/05/10 18:05:28
> 4(開始) = 2004/05/10 18:09:51
> 4(終了) = 2004/05/10 18:19:20
>
>処理時間を検証してみると3(SQL文の実行)より4(取得した結果を
>セッション配列にセット)に時間がかかっています。
>
>このようなケースの場合レスポンスの改善策はないのでしょうか?
>よろしくお願いします。
--
^---------^---------^---------^---------^---------^---------^---------^
Nobuyuki Tsuruta <tsuruta @ qnote.co.jp>
Corporate Officer
Column "Yet Another Business Tool" http://pcweb.mycom.co.jp/
qnote, inc.
Maison Bunkyosekiguchi. 206, 1-7-5 Sekiguchi Bunkyo-ku, Tokyo
TEL/FAX 03-3260-1941
http://www.qnote.co.jp/
^---------^---------^---------^---------^---------^---------^---------^
PHP-users メーリングリストの案内