2006-01-01から1年間の記事一覧

共有プールのチューニング(3) --- 予約領域のチューニング

予約領域の確認方法 現在の設定:SHARED_POOL_RESERVED_SIZE初期化パラメータ デフォルトはSHARED_POOL_SIZEの5% 十分であるかどうかはV$SHARED_POOL_RESERVEDビューで確認 チューニングの目標はrequest_missesとrequest_failuresが0(または増えないこと)…

共有プールのチューニング(2) --- ライブラリキャッシュのチューニング

SQLの共有 バインド変数の使用 CURSOR_SHARINGパラメータをFORCEかSIMILARにする(アプリ側でバインド変数が使用できない場合) V$LIBRARYCACHEのGETHITRATIO(GETHITS/GETS)が90%以上を目標 V$SQLAREA:SQL毎の情報(ロード、解析、実行回数など) V$SQLTEXT…

共有プールのチューニング(1) --- 共有プールの概要

ライブラリキャッシュ 解析済みコード 実行計画 共有SQL領域 PL/SQL領域 キャッシュの管理はLRUアルゴリズム(再利用されるほど有利) データディクショナリキャッシュ 表・列定義 権限 ユーザーグローバル領域 共有サーバ接続時のセッション情報・カーソル…

STATSPACKユーティリティを使ってみる

(1)スナップショットの取得 perfstatユーザでstatspack.snapプロシージャを実行 SQL> connect perfstat/perfstat 接続されました。 SQL> execute statspack.snap PL/SQLプロシージャが正常に完了しました。 上記のプロシージャを実行してスナップショットを…

STATSPACKユーティリティをインストールしてみる

(1)表領域の作成 STATSPACKは専用の表領域は必要ないので、作らなくても良い SQL> create tablespace PERFSTAT datafile '/oracle/data/perfstat01.dbf' size 100M extent management local ; 表領域が作成されました。 (2)spcreate.sqlを実行 このスクリプ…

システム統計に関する動的ビュー

V$STATNAME(統計名) V$SYSSTAT(システム統計) V$SESSTAT(セッション毎の統計) V$EVENT_NAME(待機イベント名) V$SYSTEM_EVENT(待機イベント) V$SESSION_EVENT(セッション毎の待機イベント)

トレースファイル

アラートファイル BACKGROUND_DUMP_DEST/alert_.log 内部エラー・ブロック破損エラー CREATE DATABSE、STARTUP、SHUTDOWN、ARCHIVE LOG、RECOVER、ALTERなど、データベースの構造やパラメータを変更する処理の記録 デフォルト値以外の初期化パラメータ ファ…

UNDOセグメントの状況確認

オラクルが現在使用中のUNDOセグメント状況を確認 SQL> SELECT N.USN, N.NAME, S.STATUS, S.EXTENTS, S.RSSIZE, S.HWMSIZE, S.XACTS FROM V$ROLLNAME N, V$ROLLSTAT S WHERE N.USN = S.USN; USN NAME STATUS EXTENTS RSSIZE HWMSIZE XACTS ---- ---------- -…

UNDOデータファイルのディスクが満タン

大量のデータをDELETEするなど巨大なトランザクションを実行すると、UNDO表領域がものすごいことになりディスクがFULLになってビックリみたいな。 そんなときはUNDO表領域を切り替える。 UNDO表領域はデータベースを立ち上げたまま切り替えられる。 (1)現在…

ノーアーカイブモードに変更

(1)現在のログ・モードを確認 SQL> archive log list データベース・ログ・モード アーカイブ・モード 自動アーカイブ 使用可能 アーカイブ先 /oracle/arch 最も古いオンライン・ログ順序 495 アーカイブする次のログ順序 497 現行のログ順序 497 (2)自動ア…

現在接続しているユーザ

select username from v$session where username is not null ;

sysdateからカレンダーみたいなSQL

月次集計とかするときに、レコードが全く無い月があると YYYYMM01 MTOTAL -------- ---------- 05-08-01 3150 05-12-01 18927 06-01-01 6331 06-03-01 3589みたいに、歯抜けになるのがちょっと嫌。そんな時には select add_months(startm, rownum) yyyymm01 …