Oracleのパフォーマンス障害についてのメモ

Oracle9iの頃はあんまり無かったが、10gになってから
パフォーマンスに関する障害がよく起こる。
その際の原因と対応策についてメモしとく。

##あくまで経験上の話であり、絶対正しい分けではないので注意!

○現象
特定のSQL実行時にCPUが100%に張り付き、
処理が完了しない。
##SQL自体は正常時には数秒で返ってくる程度

○原因
実行計画の不備と思われる。
主にCPUに負荷のかかる実行計画で実行され、
速度遅延を起こしている。
根本原因は統計情報の不足。

○対応策
案としては下記の2つが上げられる。

①使用するテーブルをアナライズ
Oracle10gではWeb板のEnterpriseManager(以後EMとする)で統計情報の取得が
実行できるのでそれを使用すると楽かも。
あと10gからDBMS_STATS.GATHER_SCHEMA_STATS等のオプションの
デフォルト値が変わり、デフォルトではno_invalidate(実行計画の再生成の有無)が
oracle任せになっているので注意。
アナライズを行っても実行計画が変わらない可能性があるのでFalseにすること。
##no_invalidateオプションはEMではカーソルの無効化という名前になっています。

なおOracle10gではデフォルトでアナライズを行うジョブが登録されているが、
統計情報が失効したオブジェクトのみ、カーソルの無効化もoracle任せになっている。
理論的には統計情報が失効したオブジェクトのアナライズのみでも問題なさそうだが
常に最適な実行計画をoracleが判断してくれることを考えると独自で
アナライズジョブを作成し、全てのオブジェクトに対し即カーソルの無効化をさせるように
設定したほうがよいと思われる。

②SQLチューニング・アドバイザ
oracle10gからSQLチューニング・アドバイザなるものがある。
簡単に説明すると障害の発生したSQLを分析し、こうしたら早くなるよ~っと
アドバイスしてくれる機能である。
今回はそのアドバイスの中に出てくる(出てこない場合もある)実行計画の変更を
利用する。出てきた実行計画を「実装」させることにより、そのSQLのみ実装した
実行計画で実行されるようになる。
上記①だと場合によっては長時間かかることがあり、もし運用での切羽詰った状況では
アナライズできない場合もある。
それに比べ②は時間もかかっても数分なので助かる。

実行の仕方はEMからアラート等に表示されている特定の遅いSQLをクリックし、
「SQLチューニング・アドバイザのスケジュール」等で実行する。
その後診断結果が出るのでその中にある統計情報?を実装させてやればよい。

NoEditor(テキストエディタ)

○ソフト名
NoEditor(テキストエディタ)

○画面イメージ

○ソフト説明
テキストエディタです。
テキストエディタは秀丸とかサクラエディタなどなどたくさん種類はありますが
個人的にはこれが一番気に入ってます(^-^)/
ファイル比較でVSSみたいビジュアル表示されるのが最高です!

○URL
http://www.yokkasoft.net/

VritualPCで仮想化

PCにそのままOSを入れるの普通ですが、
既にWindowsが入っているPCにWindowsを残したままLinuxを入れたい!という
こともよくあると思います。
その場合はデュアルブート環境を構築したり、本記事にあるように
仮想化ソフトを使用してOSをインストールしたりできます。

今回説明するのはMicrosoft社製の「VritualPC」です(^_^)/
イメージとしてはパソコン1台をイメージファイルとしてファイル化し、
WindowsOS上から起動できるようにしたものです。
2年ぐらい前?から無償になったので興味がある人は
ぜひ試してみてください!

なお、仮想化ソフトには下記のようなものがあります。

・Microsoft社 Virtual PC
・Microsoft社 Virtual Server
・VMware社 VMwareServer

※一般的(個人的)にはWindows系を構築するにはMicrosoft社製仮想ソフト、
Linux系にはVMwareを使用する気がしてます。
なお、Virtual PCではFedoraCoreのGUIが使用できなかった記憶があります。
やっぱりlinuxならコマンドだろ!!っというタイプ(私はそうですw)の人には
関係ありませんがw

☆インストール方法

1.Microsoft社ホームページから「VritualPC」をダウンロードする
下のほうにある「32 BIT\setup.exe」のダウンロードボタンでダウンロードできます。
もし64bitOSを使用してる方は64bitで!
2.ダウンロードしたsetup.exeをインストールしてください。
特に迷うこともないと思うので割愛します。

☆ 設定方法

1.スタート→すべてのプログラム→Microsoft Vritual PCをクリックする

2.新しいバーチャルマシンウィザードが開くので、「参照」ボタンをクリックし、保存先と名前を指定する
ここで作成されるのがマシン情報を記述した.vmcというファイルです。

3.オペレーティングシステムで作成するOSを選択する

4.メモリ設定を変更したい場合はRAMの調節をチェックし、メモリを設定する。

※ここまででマシン情報の設定は完了です。
以下はハードディスクに関する設定。

5.「新しいバーチャルハードディスク」をチェックする。
もし以前に作成したハードディスクのイメージファイルを使用したい場合は
既存のバーチャルハードディスクをチェックすると使用できます。

6.ハードディスクのイメージファイルの保存先を選択する
ここで作成されるのがハードディスクを1ファイル化した.vhdというファイルです。

7.完了~(>_<)

Poderosa(ターミナルエミュレータ)

○ソフト名
Poderosa(ポデローサ)

○画面イメージ

○ソフト説明
リモート接続用エミュレータです。
この系のソフトでは有名どころでTeraTermなどありますが、このポデローサを
TeraTermにタブ機能と各種設定機能が追加されたイメージのものです。
画面イメージを見て分かるとおり、背景色の設定機能等もあります。
もちTelnet、ssh等での接続が可能です!

○URL
http://ja.poderosa.org/

MDIE(タブ型ファイラー)

○ソフト名
MDIE

○画面イメージ

○ソフト説明
タブ型のファイラーです。
Windowsのエクスプローラー代わりに本ソフトを使用すると
Firefoxのようなイメージでタブを使用したファイル管理ができます。
しかもマウスジェスチャー機能付ですので非常にオススメです。

○URL
http://cres.s28.xrea.com/soft/mdie.html