Oracle/Statspack

Last-modified: 2009-03-18 (水) 17:31:09

ORACLE/メモ

Statspackのインストール

・SYSユーザで、インストール

メモ
USER_TABLESのLAST_NALYZEカラムでアナライズのタイミングを確認できる!?

Statspackの使い方

perfstatユーザーで実行
スナップショットを取得する
SQL> execute statspack.snap;
Statspackレポートを作成する
SQL> @?/rdbms/admin/spreport.sql
開始snapidを入力
終了snapidを入力
出力レポートファイル名を入力
遅いSQL文のSQLレポートを作成する
SQL> @?/rdbms/admin/sprepsql.sql

データを削除する
・全データの削除
SQL> connect perfstat/perfstat
SQL> @?/rdbms/admin/sptrunc.sql
・一部データを指定して削除
SQL> connect perfstat/perfstat
SQL> @?/rdbms/admin/sppurge.sql
この後、削除するスナップショットIDを入力します。

Statspackの見方

待機イベント

read by other sessionセッションが、別のセッションによって現在バッファキャッシュに読み込まれているバッファをリクエストする場合に発生します
rdbms ipc messageこのイベントはバックグラウンド・プロセス(LGWR,DBWR,LMS0)で使用されます。バックグラウンド・プロセスがアイドル状態にあり、なんらかの作業を実行するためのIPCメッセージがフォアグラウンド・プロセスから送信されるのを待機していることを示します。

待機イベントに関するマニュアル
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19228-02/waitevents.htm

Elapsed TimeSQLの処理時間
Rows Processed検索されたレコード数
Load Profile
Top 5 Timed Event多い待機イベントを表示
Statspack期間中、どれだけCPU Timeを消費していたのか等が見て取れる
SQL ordered by Gets効率の悪いSQL。メモリ上のORACLEブロックへのアクセスが多い順にSQLを表示
SQL ordered by Readsディスク読み込みの多い順にSQLを表示

参考ドキュメント
$ORACLE_HOME/rdbms/admin/spdoc.txt
ORACLE 実践!!Statspack解析Tips

データベースのShrink

SQL> ALTER TABLE 表名 ENABLE ROW MOVEMENT;
SQL> ALTER TABLE 表名 SHRINK SPACE COMPACT;
SQL> ALTER TABLE 表名 SHRINK SPACE CASCADE;
SQL> ALTER TABLE 表名 DISABLE ROW MOVEMENT;

SQL TRACEの有効/無効

システム全体

SQL> ALTER SYSTEM SET SQL_TRACE=TRUE | FALSE

セッション毎

SQL> ALTER SESSION SET SQL_TRACE=TRUE | FALSE

SQL Loadrの使い方

sqlldr scott/tiger control=hogehoge.ctl

Controlファイルの書き方は後日

ライブラリキャッシュ内のSQL文(フルテキスト)を見る

SQL> SELECT SQL_FULLTEXT FROM V$SQL WHERE SQL_ID = '<sql_id>';

Explain plan を使う

SQL> EXPLAIN PLAN FOR
SQL> ''SQL文''
SQL> SET LINES 1000    //横幅拡大
SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY)

MEMO
http://ameblo.jp/archive-redo-blog/entry-10046739844.html
http://itpro.nikkeibp.co.jp/free/ITPro/OracleWatcher/20040406/1/