[pgsql-jp: 36944] Re: VBからの検索が異様に遅い

NANBA Toshiaki nanba @ crest-cs.co.jp
2006年 3月 28日 (火) 14:18:38 JST


南波と申します。

On 2006/03/28 10:27:12
"[pgsql-jp: 36934] VBからの検索が異様に遅い" taira wrote:

>     rs_query.CursorLocation = adUseClient
>     rs_query.CursorType = adOpenStatic

この設定はすなわち「検索に該当したレコードの静的コピーををすべてク
ライアントに持ってくる」という意味になります。インターネット越しと
いうことですので、検索該当レコード件数に比例して時間がかかるのでは
ないかと思われます。

# 10分というのはかかりすぎの気もしますが

対策としては、鎌田さんの意見と同じでなるべくクライアント側にデータ
を持ってこないことだとは思います。

ただしこの場合、最初の検索処理の応答は早くなるかもしれませんが、レ
コードの走査処理に時間がかかることが予想されます(サーバから取って
くるので)

検索該当レコードのすべてを走査する必要があるのだとすれば、結局最初
に全部コピーしたほうが効率的になるような気もします。

サーバサイドカーソルを使った状態で多少効率を上げる場合は、Recordset
のCacheSizeプロパティが使えるかもしれないです。これを設定すると、
指定レコード数だけまとめてサーバからコピーしてくれると思います。
(使ったことないので断定はできませんが)


あとはコピーする量を減らすためにクエリを見直すか、ストアドプロシー
ジャなどを使ってコピーを避ける方向にもって行く等が考えられます。

-- 
南波 利明 <nanba @ crest-cs.co.jp>



pgsql-jp メーリングリストの案内