プロが教えるわが家の防犯対策術!

DBMS_STATS.GATHER_DATABASE_STATSの使い方がわかりません。

PLSQLで下記のように入力して実行しましたが、1時間経っても結果が返ってきません。

 BEGIN
  DBMS_STATS.GATHER_DATABASE_STATS (
    OPTIONS => 'GATHER'
   ,CASCADE => TRUE
  ) ;
 END;

記述が間違っているのでしょうか?
DBMS_STATSの使い方がわかっていないのですが、プロシージャに埋め込まないとダメなものなのでしょうか?

A 回答 (2件)

まず、回答としては、実行の仕方は合っています。


わざわざプロシージャを作る必要はありません。

質問者様の習熟度合いがわからないので一応書きますが、上記の無名PL/SQLブロックをSQL*Plus上にペーストした、と言う事でよろしいでしょうか?

この状態だとバッファに読み込まれただけで実行はされていないので、最後にスラッシュが無いと実行されません。

BEGEN

END;
/

そうではなくて、既に実行したのが結果が返って来ないと言う意味でしたら、GATHER_DATABASE_STATSで、GATHER CASCADE だと、相当時間が掛かるはずです。

普通は、cronかタスクスケジューラで仕掛けて夜間に走らせるような処理ですので
    • good
    • 0

記載の記述内容で間違っていないです。

プロシージャに埋め込む必要もありません。
記載内容をコピペして全角スペースを消したら当方の環境(10.2.0.1)で正常に処理できました。
4分くらいで完了しましたが。

DBの規模がわからないのですが、ただ純粋に処理に時間がかかっているだけなのではないしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す