Personal tools
You are here: Home ブログ 井上 Oracleのインデックスのツリーのバランスが崩れる?
« December 2010 »
Su Mo Tu We Th Fr Sa
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
Recent entries
Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23
Herokuの発音 inoue 2010-12-20
雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18
IPA未踏のニュース inoue 2010-12-15
労基法とチキンゲーム inoue 2010-12-06
フロントエンドエンジニア inoue 2010-12-03
ASCII.technologies誌にMapReduceの記事を書きました inoue 2010-11-25
技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24
雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22
RESTの当惑 inoue 2010-11-22
「プログラマのためのUXチートシート」を作りました inoue 2010-11-19
「ビューティフルコード」を読みました inoue 2010-11-16
Categories
カテゴリなし
 
Document Actions

Oracleのインデックスのツリーのバランスが崩れる?

先日、某所でOracle DBの(b-treeの)インデックスのツリーのバランスが崩れる、という説を唱える人がいました。

何か自分の知らない用語の定義が行われているのかと不思議に思いましたが、謎のままその場は終わりました。会社に戻って、Oracleマスターに、Oracleのb-treeはツリーのバランスが崩れることがあるのかと聞きましたが、たぶん無いと思う、という回答でした。余談ながら、アリエルの良いところは、こうやって社内に知恵袋がいて色々と確認できるところです。

と言っても、Oracleでインデックスを作り直すと速くなる(ことがある)のは観測された事実のようです。

この理由に、ツリーのバランスが関係するのでしょうか?

インデックスを作り直して速くなる要因として最初に思いつくのは、sqliteで言及されている次の要因(b-treeのフラグメンテーション)です。

要は、b-treeのノードが物理ディスク上で分散してしまい、結果としてb-treeを走査する物理的な処理性能が落ちるというものです。ただ、DRH(sqlite作者)によれば、最初に多めのディスク領域を確保できれば、b-treeのフラグメンテーションは(相当)回避可能、と言っているので、Oracleで性能劣化の支配的要因ではないかもしれません。

以下のサイトによると、Oracleのレコードを削除した時、インデックスのb-treeのノードが空きノードとして残るようです。

b-treeに空きノードが増えて性能劣化が起きるのは様々なサイトで言及されています。b-treeのフラグメンテーションの1種です。これは性能劣化の理由として納得しやすい要因です。

以下PostgreSQLではフラグメンテーションの言及のみです。

以下のサイトではインデックスを再構築すべき指針をふたつ挙げています。

前者はフラグメンテーションによるものです。後者はb-treeの次数が(ノード総数に対して)小さいためだと思います。

この文書を読むと、Oracleのインデックスが意外なほど謎であることがわかります。インデックスの再構築で速くなるのはプラシーボ効果だとという意見すら取り上げられています。

ここまでツリーのバランスが崩れるという言及はありませんでしたが、以下で見つけました。

うーん。この情報源はどこなんでしょう。日経だからテレビ東京かな。

結局、Oracleのインデックスのツリーのバランスが崩れる説は「日経レベルの信憑性」ということだけがわかりました。

The URL to Trackback this entry is:
http://dev.ariel-networks.com/Members/inoue/oracle-btree/tbping
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
This helps us prevent automated spamming.
Captcha Image


Copyright(C) 2001 - 2006 Ariel Networks, Inc. All rights reserved.