2002OraOraOracleパフォチュー日記&QA1~読者からの「質mon」に関する検証~前回に続きまして、読者の方々のご質問にお答えしていきたいと思います。今回は久々のつけまいと、ちゃむが皆様の疑問にお答えします。その1>REDOログのI/Oを少なくするよう配慮することが、Oracleパフォーマンスで重要なようですが、実場面では以下のような疑問点があります。REDOログは少容量のファイルだと思います。?実測値等の比較データがあれば教えてください。うか?<つけまい>まずは、(1)からお答えいたします。この場合、一概には言えません。REDOの特性を考慮した上で、パフォーマンスを最優先させるために独立したディスクに配置しているユーザは少なくありません。20Gのディスクに、500MのREDOログ・ファイルしか置いていないユーザもいるくらいです。他のファイルと同居させる際は、ソースファイルの退避場所として扱うなど、アクセス頻度の低いものを配置するよう考慮する必要があります。残念ながら比較データはございませんが、ひっきりなしに書き込みが行われていることを考えれば、リソースを無駄にしてでも、独立したディスクへ配置することは、決して間違いではありません。おっしゃる通り、現在のディスク性能を考えれば、必ずしも独立したディスクに配置しなくても、EMC社製のディスクなど、大量のハードキャッシュを内在し、ディスクがキャッシュ書き込みでWrite保障をするような場合などは若干のメリットも考えられます。そのような場合でも返って高くついてしまうので、繰り返しになりますが、REDOには独立型ディスクを割り当てるという考え方が重要です。この部分に関しては、ディスクの性能に依存するとお考え下さい。ここで最も重要なのは、シークオーバヘッドを最小限に抑えるということです。通常のデータファイル等と大きく違うのは、シーケンシャルライトのみのREDOのアクセス効率は、シークが頻繁に起こらないようにディスクヘッドを固定させることに意味があり、この点が通常のデータファイルのようにランダムリードライト処理によるシークが頻繁に行われることが前提のI/Oと大きく違う点です。RAID0や5のようにランダムI/Oにメリットのあるディスクとは考え方に大きな違いがあるのです。LGWRのみから書き込みが行われる点も、RAID0や5のようなストライピング能力重視の考え方とは変わってきます。一つ重要なこととして、ディスクのキャッシュ性能に付いて挙げられます。Writeを使用しています。キャッシュに書き込んだ時点でOKとしてしまえば、完全なリカバリが保障できなくなってしまうからです。Deviceを使った場合にはOSのファイルシステムのキャッシュを使用しない為当てはまりません。続いて(2)にお答えいたします。キャッシュの役割から考えれば、その通りだと思います。断言することはできません。本メルマガは、検証結果に基づき、事実をお伝えするものです。機会がありましたら、是非、トライしてみたいと思います。Writeを使用しているためREDOには、この考え方は当てはまりません。その2>今回テンポラリテーブルスペースについてお尋ねしたいのですが、どうもごみみたいのが残っており(930MB)、アプリケーションがこけました。errorは“temp領域のextentがとれませんでした。”と出力されていました。前日までは70MBぐらいしか使用してませんでした。スキーマーで確認してもSYSしか使用しておりません。oracle本体を再起動してテンポラリテーブルスペースの中身がclearされるのを期待したいのですが。一時的にテンポラリテーブルスペースを拡張してその場はしのいでおりますが、もしテンポラリテーブルスペースの中身を削除できるコマンドはあるのでしょうか。いった現象はあるのでしょうか?ちなみにバージョンはoracle8.0.5.2.1です。<ちゃむ>お答えいたします。temp領域は、専用一時表領域と一時表領域つまり、temporary属性の表領域とpermanent属性の表領域が2種類ありますが、そのどちらであれ、oracle本体を再起動した時点でクリアされてないといけません。ごみと言っている部分を、もう少し調査した方が良いかもしれません。~では以下のようなSQL文を発行していますが、本当にソートで使用されているなら、SEGMENT_NAMEが10.2のように数字になっているはずです。ここで、普通のオブジェクト名がついているのなら、これは、ごみではなくオブジェクトが残っているということになります。ディスク装置の認識データベースへのアクセスが過度なシステムではディスク装置自身がチューニングのキーとなります。・ディスク転送スピードとは?Oracleはデータベースバッファを使用して再利用性の高いデータをメモリ上で処理してしまおうという「キャッシュ・メカニズム」を採用しています。毎回ディスクから読み込んでくるより、メモリ上のデータブロックをアクセスしたほうがはるかに高速なのです。乗、すなわち100万倍の違いがあるということです。そこでOracleではデータベースバッファがあるのです。同じような理由からディスク・キャッシュが実装されたハードディスクが出回っています。大量のデータ・ローディングなどでディスク・キャッシュがあふれてしまうような事になればディスクへの「転送スピード」が処理時間を大きく左右してしまいます。数の「物理ディスク」に書き込みを分散するRAIDディスク装置を導入するのが一般的です。Queryなども複数のCPUで同一テーブルを検索するためにRAIDによるI/O分散が必須です。Disksの略で1987年、米カリフォルニア大学バークレーでの論文が起源となっています。複数のハードディスクを接続してデータのI/O待ちを減らし、転送量を引き出すための装置構成の事です。障害に強い構成とも言えます。ストライピング(専用パリティ・ディスク方式)・最強なのは?一般的には(A)と言って良いでしょう。!!!ここで間違えやすいのが物理ディスクの数です。私たち流に言うと「ディスクのタマの数」です。ディスク・タマが4個しかないのに(A)はあり得てはいけないのです。タマが4個だと2つのストライピングしかできなくなってしまいます。そんな場合(タマの数がそれほど多くない場合)はRAID5を選択します。・ハードウェアRAIDが(A)しかサポートしていないからタマが4個でもしかたない?それも頷けます!だけど、高価なRAID装置を購入させてタマ4個の実装を提案したベンダーに問題あるのかもしれません???少なくとも4個以上のCPUを実装したSMPマシンで、RAID装置を購入したのならタマの数は必ずチェックしてください。多くのディスクにI/Oを分散させるストライピングがスピードのカギです。・パリティ情報からデータを保護する(B)(C)パリティ情報とは排他的論理和(XOR)で作成される情報です。和は2進数の論理演算の一つで、以下の4つのパターンがあります:0+0=0、0+1=1、1+0=1、1+1=0このパリティ情報を同時に記録する事により1台のディスク装置がクラッシュした場合でもデータを失う事が防げます。0x33で対応します。このパリティ情報をそれぞれのタマに分散して持つのがRAID5(B)です。対してRAID4(C)はパリティ情報専用のタマを実装しています。(C)はパリティ情報専用ディスクにI/Oが集中してしまいボトルネックの要因となるため、今までは製品化されてこなかったのですが、ギガ・キャッシュ付き装置とともに実装した製品が現れはじめました。reserved.トップページ企業概要プライバシーポリシ。