Oracle9iでのストアドファンクション(PL/SQL)内のSQL文をprepareしておく方法を教えてください。

ストアド内でカーソルを使用してほかテーブルをCURSORでselectした値を使用しているのですが、これを最適化したいと考えています。
ストアド内で使用するSQL文はあらかじめprepareされているんのでしょうか?
そうでないならそうする方法はありますか? VIEWをあらかじめ作成しておくことで高速化される可能性はありますか?
【現状のソース例】
( pid in number ) return number is
CURSOR C1 is
select num from table1 wrehe id = pid;
R1 C1%ROWTYPE;
ret number(8.0);
begin
OPEN C1;
FETCH C1 INTO R1;
ret = num;
CLOSE C1:
return ret;
end;

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2007/03/02 21:02:26
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:samejima No.1

回答回数92ベストアンサー獲得回数8

ポイント60pt

ストアド内で使用するSQL文はあらかじめprepareされているんのでしょうか?
静的SQLや、バインド変数を使った動的SQLならprepareされています。

VIEWをあらかじめ作成しておくことで高速化される可能性はありますか?
VIEWは最適化を妨げるので、速くなる事は無いのでは。
MATERIALIZED VIEWなら、使い方によっては速くなります。

id:fslasht

回答ありがとうございます。

prepareされているとわかり安心しました。

VIEWについてはただ使えばよいというわけではなさそうですね。

高速化についてはほかの手段を検討してみます。

2007/03/02 21:02:00

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません