- - PR -
処理レスポンスに関して
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-06-23 20:01
お世話になっております。
VB2005にてWINDOWSアプリケーションを開発しておりまして 処理途中でどうしても処理レスポンスが遅くなってしまうところがあり 皆さんのアドバイスをいただきたく思いました。 処理の内容としては ある100件のコードがあり ボタンクリックにて そのコードを基にしてDBの複数テーブルにアクセスをして コードに対するDBの複数テーブルの情報を表示するというものです。 (結果サンプルは以下のようなものです) コード テーブル1 テーブル2 テーブル3 ・・・ テーブル50 000001 A1 B1 C1 D1 000002 A2 B2 C2 D2 内部ロジックとしては for index as integer = 1 to 50 Debug.print ("テーブル1取得") getテーブル1 Debug.print ("テーブル2取得") getテーブル2 ・ ・ ・ Debug.print ("テーブル50取得") getテーブル50 next のような感じなのですが、なぜかテーブル2取得をDebug.Printすると そのタイミングでループ毎で一瞬止まります。 (このタイミングでは テーブル4取得ではとまらず) そこがネックになっているかと思い コメントアウトすると今度は テーブル4取得をDebug.Printするタイミングでループ毎で一瞬止まってしまいます。 こういった場合なにが 推測される要因なのでしょうか? 確認方法等がございましたら教えていただけませんでしょうか? | ||||
|
投稿日時: 2007-06-23 22:39
一瞬止まるというのは、デバッガで実行中という事ですか?
パフォーマンスを計測するのにデバッガをつなげちゃいかんと思いますが。 普通に処理時間を出力す領にしてどこにボトルネックがあるかプロファイルしてください。 _________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2007-06-23 23:03
一瞬止まります。と言われても?
普通に考えるとテーブル2取得のSQlが遅いとなりますが? 単純すぎ? というかそれぐらい切り分けないと回答はできない | ||||
|
投稿日時: 2007-06-24 12:36
>囚人さん
デバッカ実行中もなんですが、 処理実行中にプログレスバーのようにDebug.Printしている箇所を ユーザに見えるようにラベルで表示しています。 その表示が一瞬止まります。 >七味唐辛子さん はじめテーブル4の取得で止まらなかったのに テーブル2の取得をコメントアウトしたから テーブル4の取得で止まるようになったため、 SQLが遅いと 思えなくて。。。 実際直ぐにレスポンスのあるSQLなので。。。 | ||||
|
投稿日時: 2007-06-24 13:46
データベースに何を使っているかわかりませんが、 SQL が遅いかどうかはBBさんのプログラムからではなく、SQL*Plus などから SQL を単体で実行してみてどうかを調べたほうがいいですね。 どこが悪いかわからないときは一度すべてコメントした後に、少しずつコメントを解除していくなど地道に見ていったほうが案外すぐに原因が見つかったりしますよ。 Pooling が無効になっていたりしませんよね。 _________________ かるあ のメモ と スニペット |
1