8.1で,バッファ・マネージャに改良が加えられて,大幅な性能向上があったことを述べた。今回は同じく性能面で大きな前進となるビットマップ・ベースの実行プラン・タイプが追加されたことを報告する。本稿で検証に使用したのは5月3日時点のバージョンである。オプティマイザと実行プランその前に,PostgreSQLにおけるオプティマイザと実行プランについて復習しておこう。テーブルにはアクセスを高速化するためにインデックスを追加することができる。インデックスとは日本語で「索引」のことである。書籍を例にとって考えてみよう。ある書籍の中から,「神奈川県」について書かれたページを探したいとする。索引がなければ書籍の1ページ目から丹念に読んでいくしかない。索引があれば,「神奈川県」について書かれたページがすぐに分かるので,素早く目的のページにたどり着くことができる。PostgreSQLのインデックスも発想は同じである。あるテーブルのある列にインデックスを設定すると,インデックスの中には「列の値と行の物理的な位置」のペアが行数分だけ作成される。ID)と呼ばれる形式で格納され,実際には「テーブル・ファイルのブロック番号+その中のオフセット位置」で表現される。ページがわかれば書籍の該当ヶ所がすぐ分かるように,TIDがわかれば素早く行にアクセスすることができるのである。インデックスがなければ,テーブル・ファイルを頭から順に読む以外に目的の行に到達する方法がなく,インデックスを使った場合に比べて比較にならないほど時間がかかる。中にはインデックスを使わない方がよいケースもある。t1;のように,テーブルの全件もしくは大半を検索するような問い合わせではインデックスを使わない。問い合わせ結果を作成するためにはどのみちテーブル・ファイルの大半を読まなければならず,インデックス検索するだけ無駄であるからである。PostgreSQLのオプティマイザは,こうした諸条件を考慮して最も効率がよいと思われる方法(実行プラン)を選択する。実行プランはあらかじめ用意された様々なプラン・タイプを組み合わせたものである。表1に主なプラン・タイプの一覧を示す。新しく追加されたプラン・タイプ今回追加されたのはビットマップを使用する新しいプラン・タイプである(表2)。TIDビットマップを使ってテーブル・ファイルを検索するこれらのプラン・タイプが実際にどのように利用されるのか,またどのような効果を上げるのかを見ていこう。現場の負担軽減を!医療界でのAWS活用法500万社が導入。このセミナ...SEのための「システム営業力」養成講座SEとして仕事をする方が、顧客や経営層に対する提案力や会話力を身につけるための講座です。情報銀行の成り立ち、事例、現状課題やその行方を網羅。経営戦略である以上、「会計」の知識やスキルが欠かせません。