Insight Technology, Inc

インサイトテクノロジー

Japanese | English

株式会社インサイトテクノロジー 発行
http://www.insight-tec.com/jp
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Vol.9
   ☆☆☆  おら!オラ! Oracle −どっぷり検証生活− ☆☆☆
                             2000.06.14
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    他ではなかなか得られない、マニュアルを読んでもわからない、
   そういったOracleに関する技術情報をお届けするメルマガです。
   実際に検証した結果も交えてお伝えしていきます。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


┏━━━━◆ Oracle技術を高めたい人におすすめのセミナー◆━━━━━┓
★★   ┏━━━━━━━━━━━━━━━━━━━━━━━┓    ★★
★★   ┃Oracle8プロフェッショナルテクニック セミナー ┃    ★★
★★   ┗━━━━━━━━━━━━━━━━━━━━━━━┛    ★★
★★ ご要望にお応えして開催決定!締切り迫る!申し込みはお早めに  ★★
┗━ http://www.insight-tec.com/jp/topics/semi_information1.html ━┛


<<目次>>
■Oracle検証生活・・・インデックスに関する検証 その1
■お知らせ・・・★★締切り間近!Oracleセミナー情報!!
		○無料セミナー大盛況のうちに終了
		○Oracle管理ツール	○連載情報
		○書籍ご予約受付中	○QAについて
■編集者より

■■注意事項!!■■
本文中にテーブルが含まれていますので、お読みになる際はMSゴシック等、
等幅フォントをお使いただくことをお勧めします。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ Oracle検証生活 ▼━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<インデックスに関する検証 その1> ペンネーム つけまい

--- インデックス利用の落とし穴
                レンジ検索で全件検索よりも性能ダウン ---

「インデックスを作成すれば早くなる」という考えは、決して間違ってはいな
い。そもそもインデックスとは、処理を高速化させるためだけに一番多く用い
られる手段だからだ。しかし、「全ての処理においてインデックスは有効なも
のなのだろうか」と疑問を持つユーザは、意外に少ないのではないだろうか。

今回は、そんな素朴な疑問に対して、実際にインデックス構造を悪化させ、様
々な角度からの検証を試みた。

●実験の狙いと環境
以下に、実験の目的と想定するシステム及び前提条件をまとめた。

 --------------------------------------------------------------------
|目  的|・どの様な処理を行えば、インデックスが遅くなるのかを把握する |
|      |・なぜ遅くなるのかを、実験によって検証する                   |
|--------------------------------------------------------------------|
|想  定|・Insert中心の業務                                           |
|      |・古いデータの大量削除が発生する業務                         |
|--------------------------------------------------------------------|
|実験の|・各テストの結果をサンプリングする際、Oracleの再起動を行い、 |
|前  提|  データベース・バッファ内をクリアしている                   |
|      |・インデックスを含む全てのデータは、二次エクステントすること |
|      |  なく一つのエクステント内に格納されており(初期エクステント |
|      |  のみ)、それぞれ一つのデータファイルに納まっている         |
|      |・データ及びインデックスは、別々のテーブルスペースに格納され |
|      |  ている                                                     |
|      |・測定時間の計測は、画面出力I/O時間が含まれない様に工夫してい|
|      |  る                                                         |
|      |・初期設定パラメータdb_file_multiblock_read_countは、デフォル|
|      |  トの8に設定                                                |
|      |・実験結果に用いているPHYSICAL READ(DATA)とは、上記の初期設|
|      |  定パラメータdb_file_multiblock_read_countにより、8ブロック |
|      |  単位でアクセスしたI/O回数のことであり、このI/O回数に8を掛 |
|      |  けた値が、実際にアクセスしたブロック数となる(ただし、イン |
|      |  デックス検索時は1ブロック単位でアクセスするため、この時のPH|
|      |  YSICAL READ(DATA)の値は、実際にアクセスしたブロック数と等|
|      |  しくなる)                                                 |
|      |・実験結果に用いているPHYSICAL READ(INDEX)とは、1ブロック単|
|      |  位でアクセスした際に発生したI/O回数であるため、実際にアクセ|
|      |  スしたブロック数と等しくなる(db_file_multiblock_read_count|
|      |  はINDEXに対しては機能しない)                              |
 --------------------------------------------------------------------

データ件数は、以下の通りである。

1. 1万件
2. 100万件(1万件から挿入を繰り返し100万件まで拡張)
3. 1万件  (100万件から99万件を削除し1万件に縮小)

上記の3タイプを基に、様々な検証を行った。
なお、実験の目的は互いのパフォーマンス性能を比較するものではなく、イン
デックス構造が悪化する原因を突き止めることが狙いだ。

今回の実験は、できるだけ多くの方々に「インデックス検索が突然遅くなる」
という不可解な現象を手軽に体験してもらいたいために、NT環境を選んだ。

●削除データまでは管理していない
そもそも、この実験を始めるきっかけになったのは1つのTREEDUMP(後述)だっ
た。削除したにも関わらず、いつまでも0の値が入ったままなのである。「もし
や・・・0ということはROWID(後述)を1つも含んでいないブロック(空のブロ
ック)が存在しているということではないのか?」。この疑問に対して、100万
件のテーブルを実際に作成し、そのテーブルに対して99万件の削除を行い条件
式にインデックスを用いたSELECT文の発行を試みたところ・・・。

●予感的中
実験結果から述べると、予測は的中していた。削除してブロックが空になった
としても、Oracleは空であるかどうかの判断ができず、意味の無いブロックま
でアクセスしてしまっているということである。具体的な数値で表すと、イン
デックス無しの検索に対して、インデックス有りの検索の方が3倍以上遅かった。
また、同じインデックス有りの検索同士でも、削除を一度も行っていない1万件
のテーブルに対して、削除した結果1万件になったテーブルの方が約300倍I/O回
数が多かった。

以下に、この実験によって得られた結果をまとめた。

1. Oracleは削除した結果、空になったブロックでも実際には切り離さずに、い
    つまでも保持している
   
2. ブロック中にデータが存在するか否かを判断する要素を持っていないため、
   〜以下(<=)といったレンジ検索を行った場合、空のブロックとは知らず
   に次のブロックを読んだら次のブロックへと、ひたすらアクセスを続けてし
   まう ⇒http://www.insight-tec.com/html/reference/ref09.html


この現象は、インデックスの構造上の問題であり、削除されたからといってそ
のブロックを切り離すのではなく、また同じ値が入ってきた時のためのPlace 
Holderとして保持しているものと考えられる。現に、一度削除した値をもう一
度入れた場合、インデックスの構造上の問題で大きな組み替えが起きていない
限り、必ず同じブロックに入ることが実証された。

以上のことから言えることは、インデックスはイコール検索には向いているが、
レンジ検索には必ずしも向いているとは言い難く、少なくとも、大量の削除処
理が多発しているテーブルに対しての広範囲なレンジ検索は、全くの不向きで
あることが断言できる。
ただし、定期的にメンテナンス(REBUILDなど)を施しているケースでは一概に
は言えない。しかし、どのタイミングでどのブロックの密度が低くなったり、
どこからどこまでのブロックが空になるかなどを予測することなど不可能に近
い。だからといって、ただ闇雲にメンテナンスを頻発させるのも、これまた無
意味(無駄)なことである。
となると、DBAが各々のテーブルの特性(このテーブルは大量の削除が頻繁に発
生する。テーブルは昇順に挿入されるとは限らない)などを十分に把握した上
で、メンテナンスで回避できる側面と、SQLの構文で回避(インデックスを状況
に応じて使い分ける)できる側面とを両方加味しなければならない状況が生ま
れてくる。

これらの要素を踏まえた上で、次回から紹介していく検証結果を、今後のメン
テナンスを行うタイミングを判断する目安に加えていただければ幸いである。

初夏 茅ヶ崎にて

〜インデックスに関する検証 その1〜
by つけまい


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ Oracle8 プロフェッショナルテクニック セミナー ▼━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
昨年開催され大好評を博した上記のセミナーが、皆様からのラブコールに
お応えして再び開催されます。開催日もせまっています。お申し込みはお早
めに!!

「今回は新たにOracle DBAとして現場で活躍しようとしているような
フレッシュな方を対象にベーシックな部分に力を入れたセミナーを開きたい」
という講師を務める小幡の言葉にもありますように、Oracle DBAをこれから
目指す方々にわかりやすい言葉で丁寧なセミナーを行います。
テキストとして使われるのは、同名の既刊本(HPにて発売中)。著者による
解説を加えて読み解くことができるので、さらに理解が深まるはずです。

「わたしもこの本を解説してもらってSKILL UPしたんですよ。」(うさぎ談:
月刊DB Magazine誌「DBAのお仕事」で活躍中!)という例もあるように、
有意義なセミナーになること間違いなし!この機会にぜひご参加ください。
お申し込みは以下のURLにて承っています。

http://www.insight-tec.com/jp/topics/semi_information1.html


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ 無料セミナー大盛況! ▼━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<Oracleプロフェッショナルが教えます!!
				Oracleシステム運用管理のポイント>
去る6月9日に上記の無料セミナーが開催され、予想を上回る大盛況のうち
に幕となりました。スタッフ一同申込者の多さと熱心さに驚き、Oracleへの
関心の高さをあらためて実感することとなりました。今後も、Oracleユーザ
に有益な情報を提供、セミナーも実施していく予定ですので、よろしくお願
いいたします。次回無料セミナーの予定は決まり次第ご案内させていただき
ます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ Oracle 管理ツール▼━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Oracleを知り尽くしたメンバーが開発したOracleパフォーマンス監視ツール
の決定版。インサイトテクノロジーの技術者の知恵とノウハウがここに結集!
パフォーマンス監視だけでなくOracleを使用しているシステムの運用、管理、
そして開発にも役立つ機能がいっぱいです。
詳しくは以下のURLをご覧ください。

http://www.insight-tec.com/jp/products/products.html

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ 連載情報 ▼━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<雑誌連載:体験的・DBAのお仕事(DB Magazine(翔泳社))>
Oracleのエキスパートとして定評のある弊社のスタッフが執筆しております
連載記事です。Oracle関連業務に携わる方、是非ご一読ください。
7月号が発売中です。

http://www.insight-tec.com/jp/topics/magazine.html
上記のURLで各回のタイトルがご覧になれます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ 書籍ご予約受付中 ▼━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<1割引&送料無料>
「Oracle8 プロフェッショナルテクニック」は大好評につき、現在在庫切れと
なっており、ご注文いただいた皆様にはたいへんご迷惑をおかけしております。
まもなく入荷する予定ですので、今しばらくお待ちください。
これからご注文いただく方も、入荷次第発送させていただくということで
予約注文を受付けておりますのでよろしくお願い申し上げます。

また弊社のHPよりお申し込みいただいた方に限り、1割引&送料無料でご提供
するサービスも継続中です。
(先にご紹介した「 Oracle8 プロフェッショナルテクニック」
セミナーに参加される方は、こちらでご購入された方がお得です。)

専門書としては異例の速さで増刷が決定するほどの好評をいただいている
「Oracle8 プロフェッショナルテクニック」をお得に入手するチャンスです。
この機会をお見逃しなく!

http://www.insight-tec.com/jp/topics/books.html
ホームページより受付中です。お早めに!

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ QAについて ▼━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<皆様からのQAを受付けております>
皆様のQAにはできるだけ、お答えしたいと思っています。
すべてのQAにお答えすることはできないかもしれませんが、
適宜メルマガ内でとりあげていく予定ですので、是非QAをお寄せください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ 編集者より ▼━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
近頃、友人が緑内障になったりVDT症候群になったりしている。テレビやコン
ピュータ、とかく現代は目を酷使することが多い。幸いなことに今のところ
コンタクトレンズやメガネのお世話にならずに過ごしているが、若い世代の
緑内障が増えているとも聞く。手術すれば直る白内障と違って、緑内障は一
度自覚症状が出てしまうとやっかいだ。眼科とは縁のない生活をしてきたが、
とりあえず眼圧の検査にいってみようかなと思う今日この頃である。みなさ
んも目は大切にしましょうね。			 by UA

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
登録・解除は以下のURLで行うことができます。
http://www.insight-tec.com/jp/em/mail_magazine.html
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<おら!オラ!Oracle−どっぷり検証生活−>
発行/編集:株式会社インサイトテクノロジー
http://www.insight-tec.com/jp

マガジンID:0000030093
本メールマガジンに掲載された記事を許可なく転載することを禁じます。
Copyright (c) 1996-2000, Insight Technology Inc., All rights reserved.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 メールマガジン登録/解除