タグ

algorithmとdbに関するjjzakのブックマーク (4)

  • Oracle の B*Tree インデックスの内部構造についてお勉強中(その1)

    仕事のデータベース一式のリース切れ間近ということで、リース延長で耐えることができるのか、それともシステム更改が必要なのかを見極めるため、最近はデータベース周りのチューニングばかりやってます。 当初設計時に、5年間持つ設計をしたのですが、流石に5年目にもなると予定とはそれなりに乖離が発生するものです。テーブル&インデックス設計をユーザ向けの処理をとにかく高速に処理できるように設計したので、ユーザ向けの処理は速度的に全然大丈夫なのですが、データの肥大化によるバッチ処理のパフォーマンス劣化が顕著です。単純にストレージと CPU パワーが足りていないのでしょう。 しかしながらチューニングの余地はまだまだ十分にありそうです。バッチ向けの最適化を図ることにしました。うまくいけば来年度どころか、後数年はリース延長で延命できるかもしれません。 今回実施したチューニングの1つのポイントとして、バッチ処理向

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • インデックスの基礎知識

    ■ インデックスとは データベースの世界で、インデックス(索引)とはテーブルに格納されているデータを 高速に取り出す為の仕組みを意味します。 インデックスを適切に使用することによってSQL文の応答時間が劇的に改善 される可能性があります。 インデックスにはB-Treeインデックスをはじめ、ビットマップインデックス、 関数インデックスなどの種類がありますが、ここでは最も一般的に使われ、かつ ほとんどのDBMSでサポートされているB-Treeインデックスについて解説します。 ※ CREATE INDEX文でオプションを指定しない場合は通常B-Treeインデックスが 作成されます。 ■ B-Treeインデックスのしくみ B-Tree(Balanced Tree)インデックスは次のようなツリー状の構造になっています。 ツリーの先頭はヘッダブロックと呼ばれています。ヘッダブロックでは、キー値の 範囲

  • データベースシステムにおける遺伝的問い合わせ最適化

    複雑な最適化問題としての問い合わせ応答処理全てのリレーショナル演算子の中で、処理や最適化が最も難しいものは join です。問い合わせ中の join の数が多くなるにしたがって、それに応答するために取り得る計画の数が指数的 に増えていきます。個々の join や、リレーションへのア クセス経路としての多種の インデックス(例えば、 Postgres における、r-tree、b-tree、ハッシュ) を処理するための多様な 結合方法 (例えば、 Postgres における、入れ子状ループ、インデック ススキャン、マージ結合)をサポートすることは、更なる最適化の改良を引き起 こします。 現在の Postgres オブティマイザの実装は、 代替ストラテジ空間に対する しらみつぶし検索 です。この程度の問い合わせ最適化技術では、人工知能のような大規模な 問い合わせを必要とするデータベースアプリケー

  • 1