JP2002163290A - クエリ最適化のためのコストに基づく具体化ビューの選択 - Google Patents

クエリ最適化のためのコストに基づく具体化ビューの選択

Info

Publication number
JP2002163290A
JP2002163290A JP2001296553A JP2001296553A JP2002163290A JP 2002163290 A JP2002163290 A JP 2002163290A JP 2001296553 A JP2001296553 A JP 2001296553A JP 2001296553 A JP2001296553 A JP 2001296553A JP 2002163290 A JP2002163290 A JP 2002163290A
Authority
JP
Japan
Prior art keywords
view
query
operator
tree
selecting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2001296553A
Other languages
English (en)
Other versions
JP4955876B2 (ja
JP2002163290A5 (ja
Inventor
Cesar A Galindo-Legaria
シーザー・エイ・ガリンド−レガリア
Milind M Joshi
ミリンド・エム・ジョシ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2002163290A publication Critical patent/JP2002163290A/ja
Publication of JP2002163290A5 publication Critical patent/JP2002163290A5/ja
Application granted granted Critical
Publication of JP4955876B2 publication Critical patent/JP4955876B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Operations Research (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 コストに基づき具体化ビューを選択するデー
タベース・クエリ最適化装置を提供する。 【解決手段】 クエリ最適化装置は、具体化ビューのク
エリに対する適用可能性を判定する。ビュー利用選択肢
を、最適化の探査段階において発生するので、複雑なク
エリにおける他の変換との相互作用を考慮に入れる。具
体化ビューを用いるか否かの最終判断は、推定コストに
基づき行う。最適化装置は、選択肢テーブルを生成す
る。これは、クエリの各下位式毎に種々の可能性をコン
パクトにエンコードしたものである。最適コスト演算子
ツリーをこのテーブルから抽出する。種々の可能性の探
査中に具体化ビューを検出し置換し、選択肢テーブルに
追加する。コストに基づき、クエリ実行計画において用
いるため、具体化ビュー及び選択肢を選択する。2つの
演算子ツリーが同一でない場合、一方の演算子ツリーが
他方の演算子ツリーを包含する場合、残余演算子を使用
できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的に、コンピ
ュータの分野に関し、更に特定すれば、コストに基づい
て具体化ビュー(materialized views)を選択するデー
タベース・クエリ最適化装置に関する。
【0002】
【従来の技術】この特許文書の開示内容の一部は、著作
権の保護対象となる題材を含む。著作権者は、本特許文
書または特許開示内容の、特許商標庁における特許ファ
イルまたは記録に現れる通りのファクシミリ再生につい
ては、いずれの者による場合であっても異議を唱えない
が、それ以外についてはあらゆる著作権を保存すること
とする。以下の通知は、以下および図面に記載するソフ
トウエアおよびデータに適用されるものとする。著作権
c2000年Microsoft Corporation、版権所有。
【0003】リレーショナル・データベースは、データ
の行即ちタプル(tuple)の集合である。各行は、番
号、名称、アドレス等のような情報を収容する1つ以上
の列を有することができる。例えば、列は、従業員の名
前、従業員ID、住所、電話番号、日毎の売上、および
その他の情報を含むことができる。この情報をデータベ
ース内のテーブルに格納する。この特定のテーブルの行
における情報は全て同じ人に関係付けられている。この
ようなクエリの1つを売上に関係付けることも可能であ
る。このクエリは、ある日の各従業員毎の売上を見つけ
ることに関係付けることができる。
【0004】具体化ビューは、10年以上にわたってデ
ータベース探索の主題であった。基本的なアイデアは、
あるクエリの結果を具体化する、または格納し、同様の
クエリがデータベースに提出されたときに、このように
計算した結果を用いるということである。例えば、日毎
の売上結果を、例えば、格納し、格納した結果を用い
て、所与の月における振り上げ、または年間の総売上を
含む、いくつかの関係するクエリに回答したいことがあ
る。
【0005】
【発明が解決しようとする課題】柔軟性の最大化を図る
ためには、あるビューが存在する、または具体化されて
いることをアプリケーションが知る必要があるべきでは
ない。クエリ・プロセッサは、ユーザ・クエリと既存の
予備計算結果との間における一致を識別し、適用可能で
あればこのような結果を使うべきである。これは、ビュ
ー利用問題として知られている。具体化ビューの集合体
だけでなくベース・テーブル上にもユーザ・クエリを書
き込んだ場合、どの具体化ビューを用いてこのようなク
エリに答えることができるのか。次いで、どのビューを
用いるか決定しなければならない。
【0006】トランザクションの正確性を保証するため
には、ビューの内容は、ベース・テーブルの変更に対し
て同期して維持しなければならない。例えば、注文が入
力または変更された場合、週毎の売上の具体化を更新
し、変更を反映しなければならない。これは、ビュー保
守問題として知られている。
【0007】具体化ビューは、これらがデータベースの
物理的設計の一部であり、その主な目的が性能向上にあ
る点で、インデックスと同様である。データベースの論
理設計、およびアプリケーションの正確性は、具体化ビ
ューの有無とは無関係でなければならない。インデック
スと同様、具体化ビューは、クエリの性能に劇的な改善
をもたらすことができる。
【0008】どのビューを用いるべきか決定する従来の
試みでは、分離における問題を扱い、限定したシナリオ
を処理し、多くの場合クエリ全体をカバーする「グロー
バル」構造を想定していた。これは、「カバレッジの結
果」(coverage results)を得るには有用である。例え
ば、この述語集合(set of predicates)およびこの形
態のクエリを有するビューが与えられた場合、このアル
ゴリズムを用いて、クエリに答えるためにビューを用い
ることができるか否か決定する。任意のクエリを扱い、
ビューの利用をクエリ最適化装置の実際のアーキテクチ
ャ内に統合する必要がある。更に、一旦クエリに答える
ためにビューが使用可能であることがわかったなら、そ
れを用いるという問題に取り組む必要がある。
【0009】ビューの一致の目的のために、ユーザ・ク
エリに「グローバル」構造を構築することは、共通の最
適化装置のアーキテクチャとは適合せず、「許されな
い」構造を用いた場合、不可能なこともある。ある複雑
なクエリ上では、ビューの利用は、完全なクエリの下位
式(sub-expression)においてのみ可能である。更に、
これらサブクエリは、ある並び替えを行なった後にのみ
現れる可能性があるが、これは当然選択肢の探査(expl
oration)プロセスにおいて行われる。
【0010】
【課題を解決するための手段】コストに基づくクエリ最
適化装置は、具体化ビューのクエリに対する適用可能性
を判定する。ビュー利用選択肢が最適化探査段階におい
て生成するので、複雑なクエリにおける他の変換との相
互作用が考慮される。具体化ビューを使用するか否かに
関する最終判断は、推定コストに基づく。
【0011】最適化装置は、選択肢テーブルを生成し、
クエリの各下位式に対する種々の可能性をコンパクトに
エンコードする。演算子ツリーをテーブル内に暗示的に
表現する。種々の可能性の探査中に、具体化ビューを検
出および置換し、選択肢テーブルに追加する。具体化ビ
ューおよび選択肢は、コストに基づくクエリ実行計画に
おいて用いるために選択する。
【0012】最適化装置は、コストを推定し、費用のか
かる解決手段を間引きし、演算子ツリーを組み立て、最
適な解決手段を構築するために用いられる。所与のクエ
リに対して、一般的な数の候補ビュー、およびビューの
利用を考慮することができるある数のテーブル・エント
リがある。クエリ内において参照されたテーブル、また
はクエリが総計を含むか否かというような情報を用い
て、関連があり得るビューを決定する。
【0013】考慮する演算子ツリーの数を削減するため
に、隠し(collapsed)演算子ツリーを生成し、基本的
に全ての基礎テーブルを、それらに適用する述語と共に
リストに纏めたクエリ・グラフを形成する。クエリ・グ
ラフに一致するビューを、選択肢テーブルに追加する。
また、選択肢テーブルから、原始グラフ・ツリーを抽出
する。このような原始グラフ・ツリーは、特定の演算子
集合のみを許可し、原始テーブルのみを許す。これによ
って、原始データベース・テーブルを優先して、ビュー
・テーブルを無視することが可能になる。
【0014】2つの演算子ツリーが同一である必要はな
い。一方の演算子ツリーが他方の演算子ツリーを包含す
る場合、残余演算子を用いることができる。残余式は、
フィルタを含み、演算子別にグループ化し、演算子を加
入することができる。
【0015】
【発明の実施の形態】以下の本発明の実施形態の一例の
詳細な説明では、その一部をなす添付図面を参照する。
図面では、本発明を実施可能な具体的な実施形態の例
を、例示として示す。これらの実施形態は、当業者が本
発明を実施することができるように十分詳細に説明して
あり、更に、他の実施形態も利用可能であり、論理的、
数学的、電気的およびその他の変更も、本発明の精神ま
たは範囲から逸脱することなく行なえることは理解され
よう。したがって、以下の詳細な説明は、限定的な意味
で捕らえてはならず、本発明の範囲は添付した特許請求
の範囲によってのみ定義されることとする。
【0016】詳細な説明は多数の章に分かれている。第
1章は、本発明を実現するコンピュータ・システムの動
作について説明する。続いて、どのようにして、コスト
に基づいてクエリ最適化装置による考慮のために、全体
的な具体化ビューを識別し、選択肢テーブルに追加する
かについて説明する。結論は、潜在的な利点をいくつか
述べ、更に別の代替実施形態についても述べる。ハードウエアおよび動作環境 本発明を実現するシステム例は、図1における計算デバ
イス100のような計算デバイスを含む。その最も基本
的な構成では、計算デバイス100は、典型的に、少な
くとも1つの演算装置102およびメモリ104を含
む。計算デバイスの正確なコンフィギュレーションおよ
び形式に応じて、メモリ104は、揮発性(RAMのよ
うな)、不揮発性(ROM、フラッシュ・メモリ等のよ
うな)、またはこれら2つの何らかの組み合わせとなる
場合もある。この最も基本的なコンフィギュレーション
を、図1における破線106で示す。
【0017】デバイス100は、追加の機構/機能性を
含むこともできる。例えば、デバイス100は、磁気ま
たは光ディスクまたはテープを含むがこれらには限定さ
れない、追加のストレージ(リムーバブルおよび/また
は非リムーバブル)を含むことができる。このような追
加のストレージは、図1では、リムーバブル・ストレー
ジ108および非リムーバブル・ストレージ110によ
って例示されている。コンピュータ記憶媒体は、揮発性
および不揮発性、リムーバブルおよび非リムーバブル媒
体を含み、コンピュータ読み取り可能命令、データ構
造、プログラム・モジュールまたはその他のデータのよ
うに、情報格納技術のあらゆる方法で実現されている。
メモリ104、リムーバブル・ストレージ108および
非リムーバブル・ストレージ110は、全てコンピュー
タ記憶媒体の例である。コンピュータ記憶媒体は、RA
M、ROM、EEPROM、フラッシュ・メモリ、また
はその他のメモリ技術、CD−ROM、ディジタル・バ
ーサタイル・ディスク(DVD)またはその他の光スト
レージ、磁気を用いたストレージ、あるいは所望の情報
を格納するために使用可能であり、デバイス100がア
クセス可能なその他のあらゆる媒体を含むが、これらに
限定される訳ではない。このようなコンピュータ記憶媒
体はいずれも、デバイス100の一部となり得る。
【0018】また、デバイス100は、通信接続部11
2も内蔵し、当該デバイスは他のデバイスと通信するこ
とができる。通信媒体は、典型的に、読み取り可能命
令、データ構造、プログラム・モジュール、あるいは搬
送波またはその他の輸送機構のような変調データ信号に
おけるその他のデータを具体化し、あらゆる情報配信媒
体を含む。「変調データ信号」という用語は、信号内に
情報をエンコードするように変更された、1つ以上のそ
の特性集合を有する信号を意味する。限定ではなく一例
として、通信媒体は、有線ネットワークまたは直接配線
接続のような有線媒体や、音響、RF、赤外線およびそ
の他のワイヤレス媒体のようなワイヤレス媒体を含む。
ここで用いる場合、コンピュータ読み取り可能媒体と
は、記憶媒体および通信媒体双方を含むこととする。
【0019】また、デバイス100は、キーボード、マ
ウス、ペン、音声入力デバイス、接触入力デバイス等の
ような入力デバイス114を有することもできる。ディ
スプレイ、スピーカ、プリンタ等のような出力デバイス
116も含ませることができる。これらのデバイスは、
当技術では周知である。
【0020】本発明は、1つ以上のコンピュータまたは
デバイス110のようなその他のデバイスによって実行
する、プログラム・モジュールのようなコンピュータ実
行可能命令のコンテクストにおいて説明するとよい。通
常、プログラム・モジュールは、ルーチン、プログラ
ム、オブジェクト、コンポーネント、データ構造等を含
み、特定のタスクを実行するか、または特定の抽象的デ
ータ・タイプを実装する。典型的に、プログラム・モジ
ュールの機能性は、種々の実施形態に必要に応じて組み
合わせたりあるいは分散することができる。
【0021】オブジェクト指向プログラミング言語を含
む多くの異なる方法を用いて、ソフトウエアを設計する
ことができる。C++およびJava(登録商標)は、
オブジェクト指向プログラミングに関連する機能性を与
える、共通のオブジェクト指向コンピュータ・プログラ
ミング言語の2つの例である。オブジェクト指向プログ
ラミング方法は、データ・メンバ(変数)、および当該
データ上で動作し、クラスと呼ばれる単一のエンティテ
ィを形成するメンバ関数(メソッド)をカプセル化する
手段を与える。また、オブジェクト指向プログラミング
方法は、既存のクラスに基づいて新たなクラスを作成す
る手段も与える。
【0022】オブジェクトとは、クラスのインスタンス
である。オブジェクトのデータ・メンバは、コンピュー
タ・メモリ内部に格納されている属性であり、メソッド
は、このデータ上で、潜在的に与えることができる他の
サービスと共に作用する、実行可能なコンピュータ・コ
ードである。本発明では、発明の態様を一実施形態にお
いてオブジェクトとして実現するというオブジェクトの
観念を利用する。
【0023】インターフェースとは、名前のあるユニッ
トに編成された、関連する関数のグループである。各イ
ンターフェースは、ある識別子によって一意に識別する
ことができる。インターフェースはインスタンス化(in
stantiation)を有さない。即ち、インターフェース
は、定義のみであり、当該インターフェースが指定する
メソッドを実装するために実行可能コードを必要としな
い。オブジェクトは、インターフェースが指定するメソ
ッドに実行可能コードを与えることによって、インター
フェースを支援することができる。オブジェクトが供給
する実行可能コードは、インターフェースが指定する定
義を満たさなければならない。オブジェクトは追加のメ
ソッドを与えることもできる。インターフェースは、オ
ブジェクト指向プログラミング環境における、またはオ
ブジェクト指向プログラミング環境による使用に限定さ
れる訳ではないことを、当業者は認めよう。
【0024】本発明は、機能ブロックを含むフローチャ
ートを用いて説明する。ブロックは、必要に応じて、1
つ以上のソフトウエアまたはハードウエア・モジュール
で実現することができ、データベース・システムのコン
テクストにおいて、計算デバイス100上で実行する。具体化ビューの識別 クエリ最適化装置は、通常、図2に示すように最初に簡
略化段階があり、続いて、選択肢の探査および実行計画
のコストに基づく選択がある。210において、元のク
エリを識別する。簡略化/正規化段階220の間、元の
クエリに対して、可能なときには、選択をプッシュ・ダ
ウンする、あるいはサブクエリを統合(join)として書
き直すというような何らかの変更を行なう。これらの変
更は、「より良い」クエリ230を得ることを目的とす
る。典型的に、この段階では詳細なコスト推定がなく、
前述の図における結果Q’として、単一の「より良い」
クエリ230を生成する。
【0025】探査段階240は、Q’を受け取り、多数
の選択肢を生成する。また、探査段階240は、詳細な
コスト・モデルを用いて、最も安い推定実行コストを選
択する。クエリ最適化装置は、最低のコストを有するク
エリを実行する計画250を与える。
【0026】探査段階には、2つの標準的なアーキテク
チャ、即ち、ボトムアップ・ダイナミック・プログラミ
ング統合列挙、および変換によって促される選択肢の生
成がある。双方のアーキテクチャは、選択肢テーブルを
設定する。このテーブルは、クエリの各下位式毎に、種
々の可能性をコンパクトにエンコードしたものである。
【0027】クエリ簡略化の間に具体化したビューを考
慮することは可能であるが、これは不適当である。何故
なら、単一の解決手段しか得ることができず、この選択
を行なう詳細なコスト情報がないからである。また、あ
るビューの使用が、クエリの他の何らかの変換または修
正が行われるまで、明白にならない場合もある。これが
有効になるのは、クエリが具体化ビューの定義に非常に
近づいたときのみであり、その場合でも、この特定のク
エリに対して、ベース・テーブル内により良いインデッ
クス集合があるなら、元のクエリの方がビューの使用よ
りも速い可能性もある。
【0028】この問題を解決するために、探査およびコ
ストに基づく選択の間にビューの検出および置換を行な
う。ここでは、これを変換に基づく最適化装置について
記載し、一般的な原理は、ボトムアップ列挙を含む、他
の選択肢テーブル構築方法にも及ぶ。選択肢テーブルの増強 探査の間に具体化ビューを検討する場合、このような具
体化ビューを用いるエントリによって、選択肢のテーブ
ルを増強することから成る。元のクエリが、テーブル
A,B,C上での統合であると仮定する。通常の選択肢
テーブルは、図4の300に概略的に示すように見え、
論理演算子のみである。選択肢テーブル300は、4つ
のグループ310,320,330および340から成
る。グループ310は、ABCのルート・エントリを有
し、異なる選択肢を有するエントリを含む。グループ3
20,330および340は、それぞれ、AB,BCお
よびACのルート・エントリを有する。尚、各々につ
き、統合の順序関係があるのは、2つの代替エントリの
みである。
【0029】選択肢テーブルを見渡すことによって、図
4において概略的に400で示すような、エンコード演
算子ツリーを得る。ルート・エントリ(上述のエントリ
におけるABC)から開始し、各エントリから演算子を
選択する。各エントリにおいて最初の選択を行なうこと
によって、演算子ツリー400を形成した。AおよびB
が最初に統合され、続いてその結果をCと統合する。
【0030】具体化ビューV=A join Bがある
場合、具体化ビュー・テーブルVtが格納されており、
これは、AおよびBの統合の結果を含む。これは統合下
位式を得る有効な方法であるので、この選択肢によって
選択肢テーブル300を増強し、図5における増強テー
ブル500を形成する。増強を510で識別し、ルート
・エントリABを有するグループに対するエントリとし
て追加する。
【0031】ここで生成することができ、最適化装置に
よって考慮する有効な演算子を図6の600に示す。こ
れは、VtおよびCの統合から成る。選択肢テーブルを
増強する正確な機構は、最適化装置のアーキテクチャに
よって異なる。変換に基づく最適化装置の場合、新たな
変換規則をシステムに追加することによって、拡張が得
られる。ボトムアップ統合列挙では、構造手順を変更す
る必要がある。一旦選択肢をテーブルに追加したなら、
コストを推定し、費用のかかる解決手段を間引き、演算
子ツリーを組み立て、最適な解決手段を構築する通常の
最適化装置の機構を適用する。
【0032】特定のクエリに対し、通常、ある数の候補
ビューV1,V2,…Vk、およびビューの利用を考慮
することができるある数のテーブル・エントリがある。
クエリに関係がある可能性があるビューのみを考慮すれ
ばよい。クエリにおいてどのデータベース・テーブルを
参照するか、およびクエリが総計を含むか否かについて
の情報を用いることにより、ビューを関連なしとして識
別する。他の情報も使用可能である。これによって、候
補のビュー集合を狭めることができる。各テーブル・エ
ントリ上で同様の情報を用い、無関連として検出され得
るビュー定義を一致させようとするのを回避することが
できる。
【0033】(ビュー、テーブル・エントリ)の対を多
数考慮するために、テーブル・エントリを固定し、次い
で多数の候補ビューを用いて照合を試みる。これによっ
て、動作を開始する前に、所与のテーブル・エントリに
おいて全ての追加選択肢を生成する。この順序は、通常
の最適化の順序と一致しており、各エントリ毎に単一の
一致構造を生成し、それを各候補ビュー毎に再利用する
ことを可能にする。
【0034】特定の具体化ビューV、および適用可能性
を検査しようとする特定のテーブル・エントリEが与え
られると、図7のフローチャートに示すように以下のス
テップを実行する。710において、エントリEのため
に演算子ツリーTを抽出する(このステップは、同じエ
ントリE上の種々のビューに対し共有する)。次に、7
20において、ビュー定義Vから演算子ツリーTへの包
含マッピングを試みる。マッピングに成功すると、残余
演算が行われ、730においてT=Op(Vt)とな
る。750においてビューの利用により、選択肢テーブ
ルを拡張する。740において、残余演算が新たなテー
ブル・エントリの導入を必要とする場合もある。これら
のステップの更に詳細な説明を以下に行なう。照合のための演算子ツリーの抽出 テーブル・エントリは多数の演算子ツリーに対応する。
所与のエントリからエンコードされた各演算子ツリーを
抽出し考慮することは、これらの数が指数的に増大する
と(関与するテーブル上で)、実現不可能となる。非決
定論的に単一の演算子ツリーを抽出することは不適当で
ある。何故なら、ビュー定義に一致しない場合も起こり
得るからであるが、なおも他のあるエンコード演算子ツ
リーが定義と一致する可能性もある。
【0035】この問題の一例は、A join Bおよ
びB join A双方をエンコードするグループにつ
いて考慮する場合の、A join Bの形態のビュー
定義である。厳格な演算子マッピングを行なえば、2つ
のエンコード・ツリーの内1つだけに継承される。ある
いは、全ての演算子ツリーを素早く抽出すると、実現不
可能になる。2つのテーブルには2つの演算子ツリーが
あり、3つのテーブルには12個、4つのテーブルには
既に120の演算子ツリーがある。
【0036】この問題に取り組むために、相補的な技法
を用いる。第1の技法では、照合は、二進統合(binary
join)を含む演算子ツリーに対して行なわず、クエリ
・グラフとして知られている、演算子を隠した形態に対
して行なう。これは、基本的に、全ての基礎テーブル
を、これらに適用される述語と共にリストに纏めたもの
である。一旦演算子ツリーを抽出したなら、統合を隠
し、次いでクエリ・グラフを比較する。この方法は、演
算子ツリーA join BまたはB joinAのい
ずれかを抽出し、具体化ビューA join Bとの一
致という同じ結果が得られる。クエリ・グラフは、少な
くとも統合および外部統合(outerjoin)を表わすこと
ができることが知られている。
【0037】第2の技法では、選択肢テーブルから原始
グラフ・ツリー(primitive graph-tree)を抽出し、ビ
ューと照合する。このツリーは、特定の演算子集合のみ
を表出させることができる。統合−グラフでは、抽出し
たツリーの中において統合およびフィルタ演算子のみが
許される。条件が長い値のリストを有するINリストで
ある場合、あるフィルタ条件を半統合(semijoin)に転
換することが可能であるが、半統合を含む式はクエリ・
グラフに直接マッピングしないものの、フィルタを有す
る式はマッピングする。したがって、望ましいのは、半
統合ツリーではなく、フィルタ・ツリーである。同様
に、場合によっては、OR条件がUNIONに転換す
る。統合グラフ抽出では、テーブル・エントリのために
演算子ツリーを組み立てるとき、統合のみが有効な演算
子と見なされる。
【0038】また、グラフ・ツリーは、原始テーブルの
みを表出させることも可能である。テーブル・エントリ
は、既にビューへの参照を含む場合もあるが、これらは
特定のエントリのツリーの組み立てでは、除外すべきで
ある。先に考慮した3つのテーブルの統合では、演算子
ツリーVt join Cの抽出は、定義がA joi
n B join Cであるビューと一致しない。した
がって、原始データベース・テーブルを優先して、ビュ
ー・テーブルは無視される。
【0039】前述のように、所望の形態を有する演算子
ツリーを抽出し、所与のテーブル・エントリに対して、
そのクエリ・グラフを1回だけ構築する。次いで、得ら
れたクエリ・グラフを再利用して、多数の候補ビューを
照合する。
【0040】一実施形態では、2つの広い式クラス、グ
ラフ・ツリーまたはグラフ・ツリー上のGroup B
y(分類)のいずれかを考慮する。更に別の実施形態で
は、他のクラスも考慮することができる。特定のテーブ
ル・エントリに対して、2つのツリーを、2つのビュー
・クラスについて抽出する試みを行なう。包含マッピング ビュー定義を抽出したツリーと比較する場合、テーブル
参照、述語、およびこれら2つの間の他のスカラー式の
間で、マッピングを設定する。しかし、2つの式は、同
一である必要はなく、多くの場合同一でない。その理由
は、通常の探査プロセスは、クエリに対して可能な同等
の演算子ツリーを全て考慮する訳ではないからである。
例えば、3つの演算子ツリー810,820および83
0を図8に示す。第1演算子ツリー810は、ビュー定
義であり、第2演算子ツリー820は、ビューがサブツ
リー上で直接一致する場合のクエリである。しかしなが
ら、この第2演算子ツリー820は、初期選択評価を考
慮するだけの最適化装置の通常の探索空間では決して考
慮されない(何故なら、それらの後の評価は無駄である
からである)。次に、同一でない、第3演算子ツリー8
30とビューを照合しなければならない。
【0041】この「正確でない」一致は、最適化装置の
探索空間に対する制限の結果であり、処理すべき類似度
は、最適化装置によって実施される探索空間を考慮する
必要がある。この相違のために、残余演算子が必要とな
る。前述の場合では、ビューの照合によって、残余演算
子ツリー840を生成する。残余式は、前述の場合に示
したように、フィルタ、GroupBy(分類)、およ
び統合を含むことができる。GroupByは、「より
低い粒度」を計算するために「より高い粒度」総計を用
いる場合に用いられる。例えば、(領域、月)によって
総売上を計算する既存の具体化ビューを用いて、領域別
に(全ての月)の全売上を計算することができる。
【0042】例えば、統合は、より多くの列を得るため
に用いられる。例えば、具体化ビューが多数の統合の結
果を含む場合、これは顧客キーを格納するが、名前は格
納しない。名前も要求するクエリでは、ビューを用いる
ことができるが、残余演算は、既知のキーから名前を検
索するために、顧客テーブルとの追加統合を含む。
【0043】統合または総計のための特定の残余演算子
のいくつかの導出は、当業者には公知である。また、例
えば、BおよびC間(またはAおよびC間)に外部キー
の制約がないのであれば、A join B join
Cという形態の具体化ビューを用いて、単一の統合A
join Bを有するクエリに答えることができる。
これらの技法は、本発明によって利用し、影響力を及ぼ
すことができる。実際には、これは、最適化装置全体の
機構が、特定の形態のビューを用いてあるクエリに答え
ることができるか否かに関する既存の結果にリンクする
点である。選択肢テーブルの拡張 一旦具体化ビュー選択肢を求めたなら(ビュー参照およ
び恐らくは残余演算子)、これを選択肢テーブルに追加
しなければならない。SQLサーバが用いるような、変
換に基づく最適化装置のコンテクストでは、これは、最
適化装置フレームワークによって処理され、式を取り込
み、ルート演算子を、考慮対象の元のテーブル・エント
リに追加し、必要であれば、新たなテーブル・エントリ
を作成する。ボトムアップ列挙手法では、選択肢をテー
ブル・エントリに添付する汎用的な標準機構はないの
で、既存のユーティリティおよびシステムのその他の実
施態様の詳細を考慮に入れて、これをコード化する必要
がある。
【0044】一実施形態では、これまでの説明にしたが
って、データベース・サーバの変換に基づく最適化装置
に、以下の変更および追加を行なう。 ・変換規則のためのパターンを記述するために用いる構
造に、CGraphプリミティブを追加する。
【0045】・2つの変換規則を追加する。一方は形態
グラフ・ツリーの具体化ビューを扱い、他方はグラフ・
ツリー上で形態Group By(分類)の具体化ビュ
ーを扱う。
【0046】・二進統合を含む演算子ツリーを取り込
み、クエリ・グラフを生成する関数を追加する。 ・2つのクエリ・グラフの包含照合を行い、照合に成功
した場合、残余演算子を生成する関数を追加する。
【0047】・別々に発生するために用いた列を生成す
る新たなテーブルの円滑な集積のために、列マッピング
を実行する関数を追加する。 結論 本願は、本発明のあらゆる改作および変形をも包含しよ
うとするものである。本発明は、特許請求の範囲および
その均等物によってのみ限定されることを意図している
のは明白である。コストに基づくクエリ最適化装置によ
って、具体化ビューのクエリに対する適応可能性を決定
することを可能にするシステムおよび方法について説明
した。最適化の探査段階において、ビュー利用選択肢を
生成するので、複雑なクエリにおける他の変換との相互
作用が考慮に入れられる。具体化ビューを用いるか否か
に最終判断は、推定したコストに基づいて行われる。
【図面の簡単な説明】
【図1】本発明を実現可能なコンピュータ・システムの
ブロック図である。
【図2】本発明によるクエリ最適化装置のブロック図で
ある。
【図3】最適化の間に考慮する代替エントリのテーブル
である。
【図4】図3のテーブルにおける1つエントリから形成
した演算子ツリーの図である。
【図5】代替エントリの増強テーブルである。
【図6】具体化ビューを内部に組み込んだ演算子ツリー
である。
【図7】代替エントリのテーブルに追加するビューを識
別するプロセスを示すフローチャートである。
【図8】残余演算子ツリーを含む、多数の代替演算子ツ
リーの図である。
【符号の説明】
100 計算デバイス 102 演算装置 104 メモリ 106 基本的コンフィギュレーション 108 リムーバブル・ストレージ 110 非リムーバブル・ストレージ 112 通信接続部 114 入力デバイス 116 出力デバイス 210 元のクエリの識別 220 簡略化/正規化段階 230 「より良い」クエリ 240 探査段階 250 計画 300 選択肢テーブル 310,320,330,340 グループ 400 エンコード演算子ツリー 500 増強テーブル 510 増強を 600 有効な演算子 810,820,830,840 演算子ツリー
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ミリンド・エム・ジョシ アメリカ合衆国ワシントン州98007,ベル ビュー,ノースイースト,ワンハンドレッ ドアンドフォーティエイトス・アベニュー 4763,アパートメント ピー202 Fターム(参考) 5B075 QR00 QS20 QT06 5B082 GA08

Claims (41)

    【特許請求の範囲】
  1. 【請求項1】 データベース・クエリの実行に用いる具
    体化ビューの選択方法であって、 前記クエリの実行のために多数のエントリを有する選択
    肢テーブルを得るステップと、 前記クエリのために関連のある具体化ビューを選択する
    ステップと、 各エントリおよびビュー毎に、 前記エントリおよび前記ビューの演算子ツリーを抽出す
    るステップと、 エントリおよびビューの演算子ツリーを照合するステッ
    プと、 一致が得られた場合、前記ビューを用いて前記選択肢テ
    ーブルを拡張するステップと、から成る方法。
  2. 【請求項2】 請求項1記載の方法において、二進統合
    を含むエントリの演算子ツリーを抽出するステップは、
    演算子をクエリ・グラフに隠すステップを含む、方法。
  3. 【請求項3】 請求項2記載の方法において、前記演算
    子をクエリ・グラフに隠すステップは、基礎テーブル
    を、これらに適用する述語と共にリストに纏めるステッ
    プを含む、方法。
  4. 【請求項4】 請求項1記載の方法において、ビューの
    演算子ツリーを抽出するステップは、演算子を原始グラ
    フ・ツリーに隠すステップを含む、方法。
  5. 【請求項5】 請求項4記載の方法において、原始グラ
    フ・ツリーを、特定の演算子集合に制限し、更に原始テ
    ーブルに制限する、方法。
  6. 【請求項6】 請求項5記載の方法において、統合グラ
    フのための前記演算子ツリーにおいて、統合、外部統
    合、およびフィルタ演算子のみを許可する、方法。
  7. 【請求項7】 請求項1記載の方法において、ルート演
    算子を追加することによって、前記選択肢テーブルを拡
    張する、方法。
  8. 【請求項8】 請求項1記載の方法であって、更に、 コストに基づく最適化装置を用いて、前記増強した選択
    肢テーブルに基づいて実行計画を選択するステップを含
    む、方法。
  9. 【請求項9】 データベース・クエリの実行に用いる具
    体化ビューの選択方法をコンピュータに実行させる命令
    を有する機械読み取り可能媒体であって、前記方法が、 前記クエリの実行のために多数のエントリを有する選択
    肢テーブルを得るステップと、 前記クエリのために関連のある具体化ビューを選択する
    ステップと、 各エントリおよびビュー毎に、 前記エントリおよび前記ビューの演算子ツリーを抽出す
    るステップと、 エントリおよびビューの演算子ツリーを照合するステッ
    プと、 一致が得られた場合、前記ビューを用いて前記選択肢テ
    ーブルを拡張するステップと、から成る機械読み取り可
    能媒体。
  10. 【請求項10】 請求項9記載の機械読み取り可能媒体
    において、二進統合を含むエントリの演算子ツリーを抽
    出するステップは、演算子をクエリ・グラフに隠すステ
    ップを含む、機械読み取り可能媒体。
  11. 【請求項11】 請求項10記載の機械読み取り可能媒
    体において、前記演算子をクエリ・グラフに隠すステッ
    プは、基礎テーブルを、これらに適用する述語と共にリ
    ストに纏めるステップを含む、機械読み取り可能媒体。
  12. 【請求項12】 請求項9記載の機械読み取り可能媒体
    において、ビューの演算子ツリーを抽出するステップ
    は、演算子を原始グラフ・ツリーに隠すステップを含
    む、機械読み取り可能媒体。
  13. 【請求項13】 請求項12記載の機械読み取り可能媒
    体において、原始グラフ・ツリーを、特定の演算子集合
    に制限し、更に原始テーブルに制限する、機械読み取り
    可能媒体。
  14. 【請求項14】 請求項13記載の機械読み取り可能媒
    体において、統合グラフのための前記演算子ツリーにお
    いて、統合、外部統合、およびフィルタ演算子のみを許
    可する、機械読み取り可能媒体。
  15. 【請求項15】 請求項9記載の機械読み取り可能媒体
    において、ルート演算子を追加することによって、前記
    選択肢テーブルを拡張する、機械読み取り可能媒体。
  16. 【請求項16】 請求項9記載の機械読み取り可能媒体
    であって、更に、 コストに基づく最適化装置を用いて、前記増強した選択
    肢テーブルに基づいて実行計画を選択するステップを含
    む、機械読み取り可能媒体。
  17. 【請求項17】 データベース・クエリの実行に用いる
    具体化ビューを選択するクエリ最適化装置であって、 前記クエリの実行のために多数のエントリを有する選択
    肢テーブルを得る手段と、 前記クエリのために関連のある具体化ビューを選択する
    手段と、 各エントリおよびビュー毎に、 前記エントリおよび前記ビューの演算子ツリーを抽出す
    る手段と、 エントリおよびビューの演算子ツリーを照合する手段
    と、を備え、 一致が得られた場合、前記ビューを用いて前記選択肢テ
    ーブルを拡張する、クエリ最適化装置。
  18. 【請求項18】 請求項17記載のクエリ最適化装置に
    おいて、二進統合および外部統合を含むエントリの演算
    子ツリーを抽出する手段は、演算子をクエリ・グラフに
    隠す手段を含む、クエリ最適化装置。
  19. 【請求項19】 請求項18記載のクエリ最適化装置に
    おいて、前記演算子をクエリ・グラフに隠す手段は、基
    礎テーブルを、これらに適用する述語と共にリストに纏
    める手段を含む、クエリ最適化装置。
  20. 【請求項20】 請求項17記載のクエリ最適化装置に
    おいて、ビューの演算子ツリーを抽出する手段は、演算
    子を原始グラフ・ツリーに隠す手段を含む、クエリ最適
    化装置。
  21. 【請求項21】 請求項20記載のクエリ最適化装置に
    おいて、原始グラフ・ツリーを、特定の演算子集合に制
    限し、更に原始テーブルに制限する、クエリ最適化装
    置。
  22. 【請求項22】 請求項21記載のクエリ最適化装置に
    おいて、統合グラフのための前記演算子ツリーにおい
    て、統合、外部統合、およびフィルタ演算子のみを許可
    する、クエリ最適化装置。
  23. 【請求項23】 請求項17記載のクエリ最適化装置に
    おいて、ルート演算子を追加することによって、前記選
    択肢テーブルを拡張する、クエリ最適化装置。
  24. 【請求項24】 請求項17記載のクエリ最適化装置で
    あって、更に、 コストに基づく最適化装置を用いて、前記増強した選択
    肢テーブルに基づいて、実行計画を選択する手段を含
    む、クエリ最適化装置。
  25. 【請求項25】 データベース・クエリの実行において
    用いる具体化ビューの選択方法であって、 前記クエリの実行のために選択肢テーブルを得るステッ
    プと、 選択した具体化ビューを用いて前記選択肢テーブルを増
    強するステップと、 コストに基づく最適化装置を用いて、前記増強した選択
    肢テーブルに基づいて実行計画を選択するステップと、
    から成る方法。
  26. 【請求項26】 データベース・クエリの実行において
    用いる具体化ビューの選択方法をコンピュータに実行さ
    せる命令を有する機械読み取り可能媒体であって、前記
    方法が、 前記クエリの実行のために選択肢テーブルを得るステッ
    プと、 選択した具体化ビューを用いて前記選択肢テーブルを増
    強するステップと、 コストに基づく最適化装置を用いて、前記増強した選択
    肢テーブルに基づいて実行計画を選択するステップと、
    から成る機械読み取り可能媒体。
  27. 【請求項27】 データベース・クエリの実行において
    用いる具体化ビューの選択方法であって、 前記クエリの実行のために選択肢テーブルを得るステッ
    プと、 前記クエリのために関連するビューを選択するステップ
    と、 関連するビューを各エントリと照合するステップと、 選択した一致具体化ビューを用いて、前記選択肢テーブ
    ルを増強するステップと、 コストに基づく最適化装置を用いて、前記増強した選択
    肢テーブルに基づいて実行計画を選択するステップと、
    から成る方法。
  28. 【請求項28】 データベース・クエリの実行において
    用いる具体化ビューの選択方法であって、 前記クエリの実行のために多数のエントリを有する選択
    肢テーブルを得るステップと、 前記ビューのために関連する具体化ビューを選択するス
    テップと、 各エントリおよびビュー毎に、 前記エントリおよび前記ビューの演算子ツリーを抽出す
    るステップと、 前記具体化ビューの定義から前記演算子ツリーへの包含
    マッピングを試みるステップと、 エントリおよびビューの演算子ツリーを照合するステッ
    プと、 一致が得られた場合、前記ビューを用いて前記選択肢テ
    ーブルを拡張するステップと、から成る方法。
  29. 【請求項29】 請求項28記載の方法において、前記
    包含マッピングの試みが成功した場合、残余演算を定義
    する、方法。
  30. 【請求項30】 請求項29記載の方法であって、更
    に、前記選択肢テーブルに、定義した残余演算を追加す
    るステップを含む、方法。
  31. 【請求項31】 請求項30記載の方法において、フィ
    ルタ、分類および統合から成るグループから、前記残余
    動作を選択する、方法。
  32. 【請求項32】 請求項28記載の方法において、二進
    統合を含むエントリの演算子ツリーを抽出するステップ
    が、演算子をクエリ・グラフに隠すステップを含む、方
    法。
  33. 【請求項33】 請求項32記載の方法において、前記
    演算子をクエリ・グラフに隠すステップは、基礎テーブ
    ルを、これらに適用する述語と共にリストに纏めるステ
    ップを含む、方法。
  34. 【請求項34】 請求項28記載の方法において、ビュ
    ーの演算子ツリーを抽出するステップは、演算子を原始
    グラフ・ツリーに隠すステップを含む、方法。
  35. 【請求項35】 請求項34記載の方法において、原始
    グラフ・ツリーを、特定の演算子集合に制限し、更に原
    始テーブルに制限する、方法。
  36. 【請求項36】 請求項35記載の方法において、統合
    グラフのための前記演算子ツリーにおいて、統合および
    フィルタ演算子のみを許可する、方法。
  37. 【請求項37】 請求項28記載の方法において、ルー
    ト演算子を追加することによって、前記選択肢テーブル
    を拡張する、方法。
  38. 【請求項38】 請求項28記載の方法であって、更
    に、 コストに基づく最適化装置を用いて、前記増強した選択
    肢テーブルに基づいて、実行計画を選択するステップを
    含む、方法。
  39. 【請求項39】 データベース・クエリの実行において
    用いる具体化ビューの選択方法をコンピュータに実行さ
    せる命令を有する機械読み取り可能媒体であって、前記
    方法が、 前記クエリの実行のために多数のエントリを有する選択
    肢テーブルを得るステップと、 前記ビューのために関連する具体化ビューを選択するス
    テップと、 各エントリおよびビュー毎に、 前記エントリおよび前記ビューの演算子ツリーを抽出す
    るステップと、 前記具体化ビューの定義から前記演算子ツリーへの包含
    マッピングを試みるステップと、 エントリおよびビューの演算子ツリーを照合するステッ
    プと、 一致が得られた場合、前記ビューを用いて前記選択肢テ
    ーブルを拡張するステップと、から成る機械読み取り可
    能媒体。
  40. 【請求項40】 データベース・クエリの実行において
    用いる具体化ビューの選択方法であって、 前記クエリの実行のために多数のエントリを有する選択
    肢テーブルを得るステップと、 前記ビューのために関連する具体化ビューを選択するス
    テップと、 各エントリおよびビュー毎に、 演算子をクエリ・グラフに隠すことによって、前記エン
    トリの演算子ツリーを抽出するステップと、 演算子をクエリ・グラフに隠すことによって、前記ビュ
    ーの演算子ツリーを抽出するステップと、 前記具体化ビューから前記演算子ツリーへの包含マッピ
    ングを試みるステップと、 前記包含マッピングの試みが成功した場合、残余演算を
    定義するステップと、 エントリおよびビューの演算子ツリーを照合するステッ
    プと、 一致が得られた場合、ルート演算子を追加することによ
    って、前記ビューを用いて前記選択肢テーブルを拡張す
    るステップと、 コストに基づく最適化装置を用いて、前記増強した選択
    肢テーブルに基づいて実行計画を選択するステップと、
    から成る方法。
  41. 【請求項41】 データベース・クエリの実行において
    用いる具体化ビューの選択方法をコンピュータに実行さ
    せる命令を有する機械読み取り可能媒体であって、前記
    方法が、 前記クエリの実行のために多数のエントリを有する選択
    肢テーブルを得るステップと、 前記ビューのために関連する具体化ビューを選択するス
    テップと、 各エントリおよびビュー毎に、 演算子をクエリ・グラフに隠すことによって、前記エン
    トリの演算子ツリーを抽出するステップと、 演算子をクエリ・グラフに隠すことによって、前記ビュ
    ーの演算子ツリーを抽出するステップと、 前記具体化ビューから前記演算子ツリーへの包含マッピ
    ングを試みるステップと、 前記包含マッピングの試みが成功した場合、残余演算を
    定義するステップと、 エントリおよびビューの演算子ツリーを照合するステッ
    プと、 一致が得られた場合、ルート演算子を追加することによ
    って、前記ビューを用いて前記選択肢テーブルを拡張す
    るステップと、 コストに基づく最適化装置を用いて、前記増強した選択
    肢テーブルに基づいて実行計画を選択するステップと、
    から成る機械読み取り可能媒体。
JP2001296553A 2000-09-27 2001-09-27 クエリ最適化のためのコストに基づく具体化ビューの選択 Expired - Fee Related JP4955876B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/671,458 US6510422B1 (en) 2000-09-27 2000-09-27 Cost based materialized view selection for query optimization
US09/671458 2000-09-27

Publications (3)

Publication Number Publication Date
JP2002163290A true JP2002163290A (ja) 2002-06-07
JP2002163290A5 JP2002163290A5 (ja) 2008-11-06
JP4955876B2 JP4955876B2 (ja) 2012-06-20

Family

ID=24694591

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001296553A Expired - Fee Related JP4955876B2 (ja) 2000-09-27 2001-09-27 クエリ最適化のためのコストに基づく具体化ビューの選択

Country Status (3)

Country Link
US (1) US6510422B1 (ja)
EP (1) EP1193618B1 (ja)
JP (1) JP4955876B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004030677A (ja) * 2002-06-25 2004-01-29 Microsoft Corp 複数の定義された同等のクエリ式の最適クエリ実行プランを選択する方法
JP2005267612A (ja) * 2004-03-18 2005-09-29 Microsoft Corp 暗黙の述部を使用する改良されたクエリ・オプティマイザ
JP2005316980A (ja) * 2004-04-30 2005-11-10 Microsoft Corp 順序なしコレクションおよび順序つきコレクションをデータストアに構築するためのシステムおよび方法
US7447681B2 (en) 2005-02-17 2008-11-04 International Business Machines Corporation Method, system and program for selection of database characteristics
JP2019040409A (ja) * 2017-08-25 2019-03-14 Kddi株式会社 データベース管理装置、データベース管理方法、及びデータベース管理プログラム

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7167853B2 (en) * 1999-05-20 2007-01-23 International Business Machines Corporation Matching and compensation tests for optimizing correlated subqueries within query using automatic summary tables
US6748392B1 (en) * 2001-03-06 2004-06-08 Microsoft Corporation System and method for segmented evaluation of database queries
US6763359B2 (en) * 2001-06-06 2004-07-13 International Business Machines Corporation Learning from empirical results in query optimization
US7092951B1 (en) * 2001-07-06 2006-08-15 Ncr Corporation Auxiliary relation for materialized view
US7191169B1 (en) * 2002-05-21 2007-03-13 Oracle International Corporation System and method for selection of materialized views
US7406469B1 (en) * 2002-06-20 2008-07-29 Oracle International Corporation Linear instance mapping for query rewrite
US7246115B2 (en) * 2002-12-19 2007-07-17 International Business Machines Corporation Materialized view signature and efficient identification of materialized view candidates for queries
US7447679B2 (en) * 2004-05-07 2008-11-04 Oracle International Corporation Optimizing execution of a database query by using the partitioning schema of a partitioned object to select a subset of partitions from another partitioned object
US7353219B2 (en) * 2004-05-28 2008-04-01 International Business Machines Corporation Determining validity ranges of query plans based on suboptimality
US7702627B2 (en) 2004-06-22 2010-04-20 Oracle International Corporation Efficient interaction among cost-based transformations
US20050283471A1 (en) * 2004-06-22 2005-12-22 Oracle International Corporation Multi-tier query processing
US20060004794A1 (en) * 2004-06-30 2006-01-05 Microsoft Corporation Rich application view system and method
US7814042B2 (en) * 2004-08-17 2010-10-12 Oracle International Corporation Selecting candidate queries
US20060085375A1 (en) * 2004-10-14 2006-04-20 International Business Machines Corporation Method and system for access plan sampling
US7536379B2 (en) * 2004-12-15 2009-05-19 International Business Machines Corporation Performing a multiple table join operating based on generated predicates from materialized results
US7359922B2 (en) * 2004-12-22 2008-04-15 Ianywhere Solutions, Inc. Database system and methodology for generalized order optimization
US7765207B2 (en) * 2005-04-29 2010-07-27 Microsoft Corporation Fast rich application view initiation
US7814091B2 (en) * 2005-09-27 2010-10-12 Oracle International Corporation Multi-tiered query processing techniques for minus and intersect operators
US7617189B2 (en) * 2005-09-27 2009-11-10 Oracle International Corporation Parallel query processing techniques for minus and intersect operators
US7877379B2 (en) * 2005-09-30 2011-01-25 Oracle International Corporation Delaying evaluation of expensive expressions in a query
US20070162425A1 (en) * 2006-01-06 2007-07-12 International Business Machines Corporation System and method for performing advanced cost/benefit analysis of asynchronous operations
US7467128B2 (en) * 2006-02-15 2008-12-16 Microsoft Corporation Maintenance of materialized outer-join views
US7945562B2 (en) * 2006-03-15 2011-05-17 Oracle International Corporation Join predicate push-down optimizations
US7490110B2 (en) * 2006-03-24 2009-02-10 International Business Machines Corporation Predictable query execution through early materialization
US7693820B2 (en) * 2006-04-21 2010-04-06 Microsoft Corporation Use of materialized transient views in query optimization
US7702616B1 (en) 2006-06-21 2010-04-20 Actuate Corporation Methods and apparatus for processing a query joining tables stored at different data sources
US7720838B1 (en) * 2006-06-21 2010-05-18 Actuate Corporation Methods and apparatus for joining tables from different data sources
JP5484048B2 (ja) * 2006-06-30 2014-05-07 アペリオ・テクノロジーズ・インコーポレイテッド Dicomを介した大画像保存および取得方法
US20080172356A1 (en) * 2007-01-17 2008-07-17 Microsoft Corporation Progressive parametric query optimization
US7860899B2 (en) * 2007-03-26 2010-12-28 Oracle International Corporation Automatically determining a database representation for an abstract datatype
US8209322B2 (en) * 2007-08-21 2012-06-26 Oracle International Corporation Table elimination technique for group-by query optimization
US8438152B2 (en) * 2007-10-29 2013-05-07 Oracle International Corporation Techniques for bushy tree execution plans for snowstorm schema
US8150850B2 (en) * 2008-01-07 2012-04-03 Akiban Technologies, Inc. Multiple dimensioned database architecture
US8549529B1 (en) * 2009-05-29 2013-10-01 Adobe Systems Incorporated System and method for executing multiple functions execution by generating multiple execution graphs using determined available resources, selecting one of the multiple execution graphs based on estimated cost and compiling the selected execution graph
US9286371B2 (en) * 2010-12-23 2016-03-15 Sap Se Presenting a multidimensional decision table
US8880511B2 (en) 2011-11-25 2014-11-04 Tibco Software Inc. Database query optimization and cost estimation
US9424304B2 (en) * 2012-12-20 2016-08-23 LogicBlox, Inc. Maintenance of active database queries
US20150039610A1 (en) * 2013-07-31 2015-02-05 Thomas Hubauer Method and system for a data access based on domain models
US9870390B2 (en) 2014-02-18 2018-01-16 Oracle International Corporation Selecting from OR-expansion states of a query
US10585887B2 (en) 2015-03-30 2020-03-10 Oracle International Corporation Multi-system query execution plan
US10572477B2 (en) 2016-01-25 2020-02-25 International Business Machines Corporation Selection of implementation for query execution
CN108268524A (zh) * 2016-12-30 2018-07-10 北京国双科技有限公司 数据库聚合处理方法及装置
US11068482B2 (en) * 2018-04-13 2021-07-20 Microsoft Technology Licensing, Llc Computation reuse in analytics job service
US11055194B1 (en) 2020-01-03 2021-07-06 International Business Machines Corporation Estimating service cost of executing code
US11748349B2 (en) * 2020-03-31 2023-09-05 Sap Se Customizable filtering for query plan stability in database systems using abstract query plans
US11216462B1 (en) * 2020-08-14 2022-01-04 Snowflake Inc. Transient materialized view rewrite
CN114328606B (zh) * 2021-12-30 2022-11-29 星环信息科技(上海)股份有限公司 Sql执行效率的提高方法、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05233721A (ja) * 1991-12-02 1993-09-10 Internatl Business Mach Corp <Ibm> 結合演算の処理を最適化する方法およびコンピュータにより実施される結合最適化方法
JPH07334529A (ja) * 1994-06-06 1995-12-22 At & T Corp 問合せ最適化方法
US5897632A (en) * 1996-08-27 1999-04-27 At&T Corp Method and system for using materialized views to evaluate queries involving aggregation
WO1999050732A2 (en) * 1998-03-27 1999-10-07 Red Brick Systems, Inc. System and method for rewriting relational database queries
WO1999050762A1 (en) * 1998-03-27 1999-10-07 Informix Software, Inc. Processing precomputed views
US6026390A (en) * 1996-05-29 2000-02-15 At&T Corp Cost-based maintenance of materialized views

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275818B1 (en) * 1997-11-06 2001-08-14 International Business Machines Corporation Cost based optimization of decision support queries using transient views

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05233721A (ja) * 1991-12-02 1993-09-10 Internatl Business Mach Corp <Ibm> 結合演算の処理を最適化する方法およびコンピュータにより実施される結合最適化方法
JPH07334529A (ja) * 1994-06-06 1995-12-22 At & T Corp 問合せ最適化方法
US6026390A (en) * 1996-05-29 2000-02-15 At&T Corp Cost-based maintenance of materialized views
US5897632A (en) * 1996-08-27 1999-04-27 At&T Corp Method and system for using materialized views to evaluate queries involving aggregation
WO1999050732A2 (en) * 1998-03-27 1999-10-07 Red Brick Systems, Inc. System and method for rewriting relational database queries
WO1999050762A1 (en) * 1998-03-27 1999-10-07 Informix Software, Inc. Processing precomputed views
JP2002510088A (ja) * 1998-03-27 2002-04-02 インフォミックス ソフトウェア, インコーポレイテッド 予め演算されたビューの処理
JP2003527642A (ja) * 1998-03-27 2003-09-16 レッド ブリック システムズ,インコーポレイテッド リレーショナルデータベース照会をリライトするためのシステム及び方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004030677A (ja) * 2002-06-25 2004-01-29 Microsoft Corp 複数の定義された同等のクエリ式の最適クエリ実行プランを選択する方法
JP4515050B2 (ja) * 2002-06-25 2010-07-28 マイクロソフト コーポレーション 複数の定義された同等のクエリ式の最適クエリ実行プランを選択する方法
JP2005267612A (ja) * 2004-03-18 2005-09-29 Microsoft Corp 暗黙の述部を使用する改良されたクエリ・オプティマイザ
JP2005316980A (ja) * 2004-04-30 2005-11-10 Microsoft Corp 順序なしコレクションおよび順序つきコレクションをデータストアに構築するためのシステムおよび方法
JP4728675B2 (ja) * 2004-04-30 2011-07-20 マイクロソフト コーポレーション 順序なしコレクションおよび順序つきコレクションをデータストアに構築するためのシステムおよび方法
US7447681B2 (en) 2005-02-17 2008-11-04 International Business Machines Corporation Method, system and program for selection of database characteristics
JP2019040409A (ja) * 2017-08-25 2019-03-14 Kddi株式会社 データベース管理装置、データベース管理方法、及びデータベース管理プログラム

Also Published As

Publication number Publication date
EP1193618B1 (en) 2017-12-27
EP1193618A2 (en) 2002-04-03
US6510422B1 (en) 2003-01-21
JP4955876B2 (ja) 2012-06-20
EP1193618A3 (en) 2005-11-16

Similar Documents

Publication Publication Date Title
JP4955876B2 (ja) クエリ最適化のためのコストに基づく具体化ビューの選択
Parameswaran et al. Deco: declarative crowdsourcing
CN1705945B (zh) 提供查询的属性的方法和系统
US7853553B2 (en) Engine for converting data from a source format to a destination format using user defined mappings
US7167848B2 (en) Generating a hierarchical plain-text execution plan from a database query
US5581756A (en) Network database access system to which builds a table tree in response to a relational query
US7136873B2 (en) Dynamic filtering in a database system
US7814042B2 (en) Selecting candidate queries
US6704747B1 (en) Method and system for providing internet-based database interoperability using a frame model for universal database
US7693812B2 (en) Querying data and an associated ontology in a database management system
US7693820B2 (en) Use of materialized transient views in query optimization
US10191943B2 (en) Decorrelation of user-defined function invocations in queries
CA2427209A1 (en) Optimization of queries on views defined by conditional expressions having mutually exclusive conditions
US20060026115A1 (en) Reusing optimized query blocks in query processing
US6675160B2 (en) Database processing method, apparatus for carrying out the same and medium storing processing program
JPH07141236A (ja) 外部関数を有するリレーショナル・データベース・システムにおける照会最適化方法及び装置
CN109710220B (zh) 关系型数据库查询方法、装置、设备及存储介质
US5557788A (en) Relational access system for network type data bases which uses a unique declarative statement
Sakr et al. Hybrid query execution engine for large attributed graphs
CN117421302A (zh) 一种数据处理方法及相关设备
US11163766B2 (en) Unique key lookup with additional filter
Vasilyeva et al. Leveraging flexible data management with graph databases
JP2002163289A (ja) 関数に基づく比較を有するクエリのためのインデックスの使用
El-Helw et al. Just-in-time information extraction using extraction views
Sazontev et al. An extensible approach for materialized big data integration in distributed computation environments

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080924

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080924

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110418

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110715

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110721

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110817

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110822

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110914

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110920

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111018

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20111227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120216

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120316

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4955876

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150323

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees