• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PL SQL のループ)

PL SQL のループでセレクト文のパフォーマンスを測定する方法

このQ&Aのポイント
  • PL SQL のループを使用してセレクト文を複数回実行し、パフォーマンスを測定する方法について教えてください。
  • select 変数 into を使用しないとコンパイルできず実行できない場合、同じセレクト文を複数回実行し時間を測定する方法はありますか?
  • CREATE OR REPLACE PROCEDURE を使用して、ループ内でセレクト文を実行し時間を測定する方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • entree
  • ベストアンサー率55% (405/735)
回答No.1

PL/SQL では INTO が必要なので、なければコンパイルできないのは当然です。INTO を使用したくないのであれば、現実的ではないですが、JDBC とか・・・。 それはさておき、SQL のパフォーマンスを正確に測定するためには SQL トレースを仕掛ける必要があります。ただし、PL/SQL だと PL/SQL ブロック自体のトレースしか取得されない場合があるので、JDBC や Pro*C を使うことがたびたびあります。 トレースの結果は tkprof をデフォルトで実行すると自動的に累計値を計算してくれます。 $ tkprof orcl_ora_8962.trc orcl_ora_8962.prf あと、SQL 文は1回実行するとキャッシュされてしまうので、毎回共有プールをフラッシュしないと正確な時間を取得することができません。 SQL> connecct / as sysdba SQL> alter system flush shared_pool;

totmon
質問者

お礼

ありがとうございました。 調べてみます。

関連するQ&A