Oracle 11g を使用しています。大量のデータをスプールする必要があるため、少なくとも 7 時間以上実行される「スプール オン」の SQL ファイルがあります。しかし、スプール出力はSQL全体が終了したときにのみダンプされますが、SQLの進行状況、またはその時点までスプールされたデータを知る他の方法があることを知りたいので、SQLが期待どおりに正しく実行されています。入力にご協力ください。
質問する
524 次
1 に答える
1
を使用しているように聞こえますがDBMS_OUTPUT
、これは常に、手順が完了した後にのみ実際に結果を出力し始めます。
進捗状況をリアルタイム/ニアタイムで監視したい場合は、次の3つのオプションがあります。
utl_file
OSファイルへの書き込みに使用します。このためには、dbサーバーのOSファイルシステムにアクセスする必要があります。テーブルに書き込んで使用すると
PRAGMA AUTONOMOUS_TRANSACTION
、メインの処理に影響を与えることなくログテーブルのエントリをコミットできます。これは実装が簡単で、簡単にアクセスできます。良い方法で実装すると、これはすべての手順の事実上の標準になる可能性があります。次に、これが大きくなりすぎて扱いにくくなるのを避けるために、ある種のハウスキーピングを実装する必要があるかもしれません。一時的な迅速で汚いオプションは、を使用
DBMS_APPLICATION.SET_CLIENT_INFO
してからクエリを実行することv$session.client_info
です。これはうまく機能し、物事を追跡するのに適しています。かなり目立たず、メモリ構造であるため高速です。
DBMS_OUTPUT
本当に限られています。
于 2013-02-16T14:02:11.047 に答える