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 Time | SQLの処理時間 |
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/