ブログ@nnaka2992

データベースってなんだよ

現代のクエリオプティマイザの基礎となる技術をまとめた論文を読みました

この記事の趣旨

1998年に発表されたクエリオプティマイザの基礎としてとくに重要な手法をまとめた 論文を読みました。

An Overview of Query Optimization in Relational Systems

著者について

Surajit Chaudhuriによる論文 Microsoft所属の研究者でRDBMSの研究を行なっており、近年ではCloudにおけるDBMSの研究を行なっている。

概要

RDBMSが提案された1970年代からクエリ最適化は大規模で幅の広く研究が行なわれてきた。 この論文では執筆当時(1998年)までの重要な研究の基礎を説明している。

手法

  1. 探索空間
    一般化したJOINのプロセスを説明したのち、外部結合・グループバイによる結合・マージ処理による 結合対象のブロック化について説明している。

  2. 統計情報とコストの推定
    実行計画を決定する際に行なうコストの推定と、それに必要な統計情報について説明している。

  3. 列挙アルゴリズム
    クエリに対して高価ではない実行計画を提供するための、列挙アルゴリズムについて説明している。 論文内では拡張可能なオプティマイザとして、StarburstとVolcano/Cascadeの2種類のオプティマイザの詳細 を論じている。

  4. 最新(当時)の最適化
    当時最新であったトピックとして分散データベースと並列データベースの比較、UDFにおける最適化、そして マテリアライズドビューについて説明している。

作業時間

  • read
    • 31:40
    • 31:40
  • author
    • 33:40
    • 2:00
  • summary
    • 52:55
    • 19:15

感想

ベクトル化やパラレルジョインで扱われていたVolcanoオプティマイザの端に触れることが出来ました。 内容としては基礎的な内容が多いものの、知らない概念もいくつかあり引用している論文も読みたいです。 クエリ最適化の基礎を学ぶのに非常にいい内容でした。