PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
1502 | 98/05/15 20:36:58 | RE(3):トレース機能ってどうするの? By Taka |
1494 | 98/05/15 17:42:00 | RE(2):トレース機能ってどうするの? By HIDENORI |
1490 | 98/05/15 17:02:27 | RE(1):PB5.0.02: スプリクトに記述したSQL文が止まる?? By Taka |
1479 | 98/05/15 12:46:29 | PB5.0.02: スプリクトに記述したSQL文が止まる?? By HIDENORI |
カテゴリ:旧電子会議室
日付:1998年05月15日 17:02 発信者:Taka
題名:RE(1):PB5.0.02: スプリクトに記述したSQL文が止まる??
HIDENORIさん こんにちは。 Takaです。
(久々の登場です。皆様おかわりありませんか?)
>DECLARE カーソル名 Cursor for
> select文;
>
>open カーソル名; <=== ここで止まる
主な原因として、以下のものが考えられると思います。
1. SELECT文に FOR UPDATE を付けていませんか?
同一行が他のセッションでロック中の可能性があります。
2.SELECT文の重さは?
OPEN文の実行中は、サーバー内でSELECT文を実行し結果集合を作成しています。
最後まで結果集合が作成されたら FETCHで取り出すわけですが、
そのSELECT文が重たいと、サーバーの性能や諸条件によっては、なかなか返って
こないケースが考えられます。この場合、結果の件数の多さよりも、むしろ
件数の多いテーブルやVIEWを複雑に結合しているなどの方がパフォーマンスに
大きく影響します(ほったらかしておけば、いずれ返ってくる)。
3.循環参照の危険性
ここは私もあまり知識がありません。ごめんなさい。
(ORACLEなら、きちんと検出し中断してくれると思いましたが)
4.ネットワーク負荷
ざっと、こんなとこでしょうか。
SQL*Plusなど、他のアプリケーションから同一のSELECT文を実行し、
その結果を見てみると良いと思います(PBの問題かどうか判ります)。
PBの問題なら、トレース機能で何か出るかもしれません。
( SQLCA.DBMS = \"trace O73\" で CONNECT する)
では、お試しあれ。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows95
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Oracle 7.3
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.