PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
10432 | 00/02/23 17:28:15 | RE(9):PB6.5: \"DisableBind=1\"を使用するケース By Kasi |
10415 | 00/02/22 18:30:46 | RE(8):PB6.5: \"DisableBind=1\"を使用するケース By M.M |
10410 | 00/02/22 17:40:10 | RE(7):PB6.5: \"DisableBind=1\"を使用するケース By Mika★ |
10408 | 00/02/22 18:06:49 | RE(6):PB6.5: \"DisableBind=1\"を使用するケース By こてちゅ |
10403 | 00/02/22 16:41:25 | RE(5):PB6.5: \"DisableBind=1\"を使用するケース By M.M |
10394 | 00/02/22 14:08:13 | RE(4):PB6.5: By スナフキン将軍 |
10393 | 00/02/22 13:43:59 | RE(3):PB6.5: Update文のwhere句について By Mika★ |
10392 | 00/02/22 12:40:13 | RE(2):PB6.5: Update文のwhere句について By スナフキン将軍 |
10388 | 00/02/22 11:15:33 | RE(1):PB6.5: Update文のwhere句について By こてちゅ |
10384 | 00/02/22 10:32:30 | PB6.5: Update文のwhere句について By スナフキン将軍 |
カテゴリ:データウィンドウ
日付:2000年02月22日 18:30 発信者:M.M
題名:RE(8):PB6.5: \"DisableBind=1\"を使用するケース
こてちゅさん、Mika★さん、こんばんは。
こてちゅさん:
>バインド変数を使ったほうがレスポンスが早いのは、
>Oracleのパフォーマンスチューニングの例にもあったかと思います。
原則論としてはそうです。しかしそうでないケースがあるのですよ。
ヘルプ見ていて、ようやく思い出してきた。
Mika★さん
>その辺は、ちょっとうろ覚えなのですが
>Oracleは、1度発行したSQL文はキャッシュに入り
>キャッシュに保存されてる間は、全く同じSQL文(大文字小文字なども区別します。)を発行するときに
>少し実行が早くなります。
はい、そのとおりです。しかし、続きがあるのです。
[PB7.0 HELPより抜粋]
|バインド変数を使用する SQL 文を最初に実行する際に、PowerBuilder によって
|以下の順序で処理がされます。
|1 SQL 文を解析します。
|2 SQL SELECT 文に対して適切なデータベース関数を呼び出し、結果集合の情報を取得します。
|3 バインド変数に対してメモリ バッファを割り当てます。
|4 割り当てられたメモリ バッファを解析された SQL 文にバインドします。
|
|SQL 文をキャッシュすると、解析された SQL 文、結果集合の情報、メモリバッファの割り当て
|とバインド情報が、SQL キャッシュに格納されます。次回以降、このSQL 文を実行すると、
|PowerBuilder がキャッシュからこの SQL 文を見つけるので、前述の処理を繰り返す必要が
|ありません。
同じSQL文を繰り返す場合、バインド変数の効果は絶大です。
しかし、異なるSQL文を続けて発行する場合、1.のSQL文解析でバインド変数を使用していると
わずかですがタイムラグが発生します。
特殊なケースですが、異なるSQL文を続けて発行するとバインド変数を使用しない方が速く
なるのです。
...でも、ベンチマークテストのために用意した特殊な環境で確認した事例ですので、通常の
開発ではそれほど役にはたちませんけどね。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows98
DBMS Oracle SQL*Net 8
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Oracle 8.0
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.