• ベストアンサー

DBMS_STATS.GATHER_DATABASE_STATSの使い

DBMS_STATS.GATHER_DATABASE_STATSの使い方がわかりません。 PLSQLで下記のように入力して実行しましたが、1時間経っても結果が返ってきません。  BEGIN   DBMS_STATS.GATHER_DATABASE_STATS (     OPTIONS => 'GATHER'    ,CASCADE => TRUE   ) ;  END; 記述が間違っているのでしょうか? DBMS_STATSの使い方がわかっていないのですが、プロシージャに埋め込まないとダメなものなのでしょうか?

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

  • ベストアンサー
  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.1

まず、回答としては、実行の仕方は合っています。 わざわざプロシージャを作る必要はありません。 質問者様の習熟度合いがわからないので一応書きますが、上記の無名PL/SQLブロックをSQL*Plus上にペーストした、と言う事でよろしいでしょうか? この状態だとバッファに読み込まれただけで実行はされていないので、最後にスラッシュが無いと実行されません。 BEGEN … END; / そうではなくて、既に実行したのが結果が返って来ないと言う意味でしたら、GATHER_DATABASE_STATSで、GATHER CASCADE だと、相当時間が掛かるはずです。 普通は、cronかタスクスケジューラで仕掛けて夜間に走らせるような処理ですので

その他の回答 (1)

  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.2

記載の記述内容で間違っていないです。プロシージャに埋め込む必要もありません。 記載内容をコピペして全角スペースを消したら当方の環境(10.2.0.1)で正常に処理できました。 4分くらいで完了しましたが。 DBの規模がわからないのですが、ただ純粋に処理に時間がかかっているだけなのではないしょうか?

関連するQ&A