STATSPACKの少し便利な機能を使ってみよう。(レベル7編)


◆レベル7:セグメント単位のアクセス状況表示


デフォルトのレベルでは、表領域レベルのI/O状況は確認できますが、
セグメント単位では分かりませんでした。


9iR2(9.2.0)からの新機能で、レベル7でのスナップショット取得により、
これがみれるようになったらしいです。

では、こちらも確認してみましょう。


取得方法はレベル6の時と同様で、指定値を「7」にするだけ。


SQL> conn perfstat/password
SQL> execute statspack.snap (i_snap_level => 7);


あとは同様にレポートを作成するだけ。
セグメントの状況は、こんな感じで出てきました。


********************************************************************************

Top 5 Logical Reads per Segment for DB
-> End Segment Logical Reads Threshold:     10000

                                           Subobject  Obj.       Logical
Owner      Tablespace Object Name          Name       Type         Reads  %Total
---------- ---------- -------------------- ---------- ----- ------------ -------
SCOTT      USERS      EMP                             TABLE       21,280   49.13
SCOTT      USERS      DEPT                            TABLE       11,920   27.52
SCOTT      INDX       EMP_PK                          INDEX        4,848   11.19
SCOTT      USERS      DEPT_PK                         INDEX        4,544   10.49
SYS        SYSTEM     FILE$                           TABLE          320     .74
          -------------------------------------------------------------

********************************************************************************


同じような内容で、「op 5 Physical Reads per Segment」や
「Top 5 Buf. Busy Waits per Segment」などが出力されます。


これらを参考にして、負荷の高いオブジェクトを別表領域に作成して、
別の物理ディスクへ分散するなどが検討できそうです。


また、RAC(Real Application Clusters)環境の場合は、
「Top 5 CU Blocks Served (RAC) per Segment」をいうセクションも
出力され、セグメント単位のGlobal Cache発生状況が確認できるので、
これも便利ですね。


最後にSTATSPACKが使用する領域のお話。


9iR1の時には、インストール時点で約64MBを使用するという事でした。
9iR2では、機能追加により、約100MBになったらしい。


これを知らずに、100MBのワーク用表領域にインストールしたところ、
一気に空き領域が無くなって焦りました。。。


新機能の情報は定期的に確認しないといけないな、と反省。


尚、インストール後は、スナップショットのレベル、保存数によって、
容量が少しずつ増加していきます。


<今日のおさらい>


9iR2(9.2.0)からは、レベル7の指定によって、セグメント単位の
アクセス状況(上位5つ)が確認できるようになった。


9iR2(9.2.0)からは、インストール時点での使用領域が100MBに増加したので注意が必要。