- PR -

処理レスポンスに関して

1
投稿者投稿内容
BB
ベテラン
会議室デビュー日: 2005/05/08
投稿数: 52
投稿日時: 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するタイミングでループ毎で一瞬止まってしまいます。

こういった場合なにが 推測される要因なのでしょうか?
確認方法等がございましたら教えていただけませんでしょうか?
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2007-06-23 22:39
一瞬止まるというのは、デバッガで実行中という事ですか?
パフォーマンスを計測するのにデバッガをつなげちゃいかんと思いますが。
普通に処理時間を出力す領にしてどこにボトルネックがあるかプロファイルしてください。
_________________
囚人のジレンマな日々
七味唐辛子
ぬし
会議室デビュー日: 2001/12/25
投稿数: 660
投稿日時: 2007-06-23 23:03
一瞬止まります。と言われても?

普通に考えるとテーブル2取得のSQlが遅いとなりますが?
単純すぎ?

というかそれぐらい切り分けないと回答はできない
BB
ベテラン
会議室デビュー日: 2005/05/08
投稿数: 52
投稿日時: 2007-06-24 12:36
>囚人さん
デバッカ実行中もなんですが、
処理実行中にプログレスバーのようにDebug.Printしている箇所を
ユーザに見えるようにラベルで表示しています。
その表示が一瞬止まります。

>七味唐辛子さん
はじめテーブル4の取得で止まらなかったのに
テーブル2の取得をコメントアウトしたから
テーブル4の取得で止まるようになったため、
SQLが遅いと 思えなくて。。。
実際直ぐにレスポンスのあるSQLなので。。。


かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2007-06-24 13:46
引用:

BBさんの書き込み (2007-06-24 12:36) より:

はじめテーブル4の取得で止まらなかったのに
テーブル2の取得をコメントアウトしたから
テーブル4の取得で止まるようになったため、
SQLが遅いと 思えなくて。。。
実際直ぐにレスポンスのあるSQLなので。。。


データベースに何を使っているかわかりませんが、
SQL が遅いかどうかはBBさんのプログラムからではなく、SQL*Plus などから SQL を単体で実行してみてどうかを調べたほうがいいですね。

どこが悪いかわからないときは一度すべてコメントした後に、少しずつコメントを解除していくなど地道に見ていったほうが案外すぐに原因が見つかったりしますよ。

Pooling が無効になっていたりしませんよね。
_________________
かるあ のメモスニペット
1

スキルアップ/キャリアアップ(JOB@IT)