1 Reply Latest reply: Nov 19, 2012 7:38 PM by ydysk RSS

    StatsPackスナップショットの自動削除(7日間保存)について

    user12879870
      OS:HP-UX Oracle:9.2.0.6

      StatsPackスナップショットをdbms_job.submitで組み込んだJOBで定期的に削除したいと考えております。
      保存期間は7日間です。
      10g 以降であればstatspack.purge(7);を組み込めば簡単に実現できるのですが
      9iではsppurge.sqlを使用したプログラム(PL/SQL)を作る必要があると思っているのですが
      簡単に出来る方法はあるでしょうか?

      宜しくお願い致します。
        • 1. Re: StatsPackスナップショットの自動削除(7日間保存)について
          ydysk
          supurge.sqlの中を見れば分かりますが、Oracle9.2のsppurge.sqlで入力が
          必要となる項目(引数)は以下の通りです。

          <引数>
          dbid
          inst_num
          inst_name
          db_name
          lo_snap
          hi_snap

          特に保存期間にかかってくる引数は、lo_snapとhi_snapです。
          この値をstats$snapshotのsnap_id列とsnap_time列を使用して、
          保存期間に適したsnap_idをそれぞれの引数に代入して、
          sppurge.sqlを実行するしかないように思えます。

          こんな感じのselect文でlo_snapとhi_snapに値を代入して、sppurge.qlを
          実行すればいいのではないでしょうか。

          [lo_snap]
          SQL> select min(snap_id) from stats$snapshot where snap_time < (sysdate-7);
          [hi_snap]
          SQL> select max(snap_id) from stats$snapshot where snap_time < (sysdate-7);


          以上です。