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に増加したので注意が必要。