プロが教える店舗&オフィスのセキュリティ対策術

毎々お世話になっています。yayamamaともうします。
MSDE2000を使用してVisual Basic6.0でデータベースアプリを作成しています。接続はADO(MDAC2.7)です。
ローカルでMSDEに接続する場合と、他マシンからネットワーク経由で接続する場合で処理速度の差異が大きい場合があり、原因を調査しています。
2台のPCで使用するだけのアプリなので、一台をDBServer扱いしていますが2台とも単なるPCです。
OSは両方ともWindowsXPを使用し、ネットワークプロトコルはNetBEUIで、MSDE2000の接続は名前付きパイプで行っています。
接続の設定、あるいはネットワークに問題があるとは思っているのですが、有効な方法を見つけられないのが現状です。出来ましたらご教示お願いしたく投稿させて頂きました。
別のサイトで同じ様な現象があり、MDAC2.8にしたら解決したと言うのがありましたが、この場合、これは有効でしょうか?

A 回答 (2件)

返事遅れました。

すみません。

>遅くなる部分は3000件のデータを無条件で抽出する単純なselect文です。レコードセットオプジェクトのOPENメソッドでOPENするのに、Local端末では1秒ほど、ネットワークを介すると4秒ほどかかります。

本当に単純なSELECT文なら妥当かと思われます。
フィールド数がどのくらいかはわかりませんが、3000件ものデータを
ネットワーク上に流すならそれくらいはかかるでしょう

クライアントで3000件も受け取って何をしているのでしょう。
表示用ですか?画面に全て表示できないなら、データを小分けにしてその都度貰うようにしましょう。

クライアントのループで何か演算するのであれば、サーバー側で処理するようにします。

どうしても、一度で3000件ものデータを取り込むのであれば、速度を上げるのは難しいかもしれません。
    • good
    • 0

NetBEUIで接続したことが無いので速度的にどうか?答えられませんが、一度TCP/IP等で接続してテストしてみてください。



どのプロトコルでもそうですが、ローカルに比べてネットワークを介すると遅くなるのは避けられません。
遅くなる部分は、どのような処理なのでしょうか?

処理が極端に遅い場合はたいていクライアント側で余計な処理を行っていることが多々見受けられます。
高速化する場合は、クライアント側は必要なコマンドをサーバーに送るだけにして、サーバー側で検索、抽出、演算を行い、
結果だけをクライアントに返すようにします。
ネットワーク越しに速度を上げるには、とりあえずネットワークに流れるデータ量を少なくすることが一番です。

見当違いであればごめんなさい。

この回答への補足

回答ありがとうございました。TCP/IPで接続を行ってみましたが、速度はかわらなかったです。
遅くなる部分は3000件のデータを無条件で抽出する単純なselect文です。レコードセットオプジェクトのOPENメソッドでOPENするのに、Local端末では1秒ほど、ネットワークを介すると4秒ほどかかります。

補足日時:2004/12/01 08:57
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A