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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24539—Query rewriting; Transformation using cached or materialised query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating 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
タベース・クエリ最適化装置を提供する。 【解決手段】 クエリ最適化装置は、具体化ビューのク
エリに対する適用可能性を判定する。ビュー利用選択肢
を、最適化の探査段階において発生するので、複雑なク
エリにおける他の変換との相互作用を考慮に入れる。具
体化ビューを用いるか否かの最終判断は、推定コストに
基づき行う。最適化装置は、選択肢テーブルを生成す
る。これは、クエリの各下位式毎に種々の可能性をコン
パクトにエンコードしたものである。最適コスト演算子
ツリーをこのテーブルから抽出する。種々の可能性の探
査中に具体化ビューを検出し置換し、選択肢テーブルに
追加する。コストに基づき、クエリ実行計画において用
いるため、具体化ビュー及び選択肢を選択する。2つの
演算子ツリーが同一でない場合、一方の演算子ツリーが
他方の演算子ツリーを包含する場合、残余演算子を使用
できる。
Description
ュータの分野に関し、更に特定すれば、コストに基づい
て具体化ビュー(materialized views)を選択するデー
タベース・クエリ最適化装置に関する。
権の保護対象となる題材を含む。著作権者は、本特許文
書または特許開示内容の、特許商標庁における特許ファ
イルまたは記録に現れる通りのファクシミリ再生につい
ては、いずれの者による場合であっても異議を唱えない
が、それ以外についてはあらゆる著作権を保存すること
とする。以下の通知は、以下および図面に記載するソフ
トウエアおよびデータに適用されるものとする。著作権
c2000年Microsoft Corporation、版権所有。
の行即ちタプル(tuple)の集合である。各行は、番
号、名称、アドレス等のような情報を収容する1つ以上
の列を有することができる。例えば、列は、従業員の名
前、従業員ID、住所、電話番号、日毎の売上、および
その他の情報を含むことができる。この情報をデータベ
ース内のテーブルに格納する。この特定のテーブルの行
における情報は全て同じ人に関係付けられている。この
ようなクエリの1つを売上に関係付けることも可能であ
る。このクエリは、ある日の各従業員毎の売上を見つけ
ることに関係付けることができる。
ータベース探索の主題であった。基本的なアイデアは、
あるクエリの結果を具体化する、または格納し、同様の
クエリがデータベースに提出されたときに、このように
計算した結果を用いるということである。例えば、日毎
の売上結果を、例えば、格納し、格納した結果を用い
て、所与の月における振り上げ、または年間の総売上を
含む、いくつかの関係するクエリに回答したいことがあ
る。
ためには、あるビューが存在する、または具体化されて
いることをアプリケーションが知る必要があるべきでは
ない。クエリ・プロセッサは、ユーザ・クエリと既存の
予備計算結果との間における一致を識別し、適用可能で
あればこのような結果を使うべきである。これは、ビュ
ー利用問題として知られている。具体化ビューの集合体
だけでなくベース・テーブル上にもユーザ・クエリを書
き込んだ場合、どの具体化ビューを用いてこのようなク
エリに答えることができるのか。次いで、どのビューを
用いるか決定しなければならない。
には、ビューの内容は、ベース・テーブルの変更に対し
て同期して維持しなければならない。例えば、注文が入
力または変更された場合、週毎の売上の具体化を更新
し、変更を反映しなければならない。これは、ビュー保
守問題として知られている。
物理的設計の一部であり、その主な目的が性能向上にあ
る点で、インデックスと同様である。データベースの論
理設計、およびアプリケーションの正確性は、具体化ビ
ューの有無とは無関係でなければならない。インデック
スと同様、具体化ビューは、クエリの性能に劇的な改善
をもたらすことができる。
試みでは、分離における問題を扱い、限定したシナリオ
を処理し、多くの場合クエリ全体をカバーする「グロー
バル」構造を想定していた。これは、「カバレッジの結
果」(coverage results)を得るには有用である。例え
ば、この述語集合(set of predicates)およびこの形
態のクエリを有するビューが与えられた場合、このアル
ゴリズムを用いて、クエリに答えるためにビューを用い
ることができるか否か決定する。任意のクエリを扱い、
ビューの利用をクエリ最適化装置の実際のアーキテクチ
ャ内に統合する必要がある。更に、一旦クエリに答える
ためにビューが使用可能であることがわかったなら、そ
れを用いるという問題に取り組む必要がある。
エリに「グローバル」構造を構築することは、共通の最
適化装置のアーキテクチャとは適合せず、「許されな
い」構造を用いた場合、不可能なこともある。ある複雑
なクエリ上では、ビューの利用は、完全なクエリの下位
式(sub-expression)においてのみ可能である。更に、
これらサブクエリは、ある並び替えを行なった後にのみ
現れる可能性があるが、これは当然選択肢の探査(expl
oration)プロセスにおいて行われる。
適化装置は、具体化ビューのクエリに対する適用可能性
を判定する。ビュー利用選択肢が最適化探査段階におい
て生成するので、複雑なクエリにおける他の変換との相
互作用が考慮される。具体化ビューを使用するか否かに
関する最終判断は、推定コストに基づく。
クエリの各下位式に対する種々の可能性をコンパクトに
エンコードする。演算子ツリーをテーブル内に暗示的に
表現する。種々の可能性の探査中に、具体化ビューを検
出および置換し、選択肢テーブルに追加する。具体化ビ
ューおよび選択肢は、コストに基づくクエリ実行計画に
おいて用いるために選択する。
かる解決手段を間引きし、演算子ツリーを組み立て、最
適な解決手段を構築するために用いられる。所与のクエ
リに対して、一般的な数の候補ビュー、およびビューの
利用を考慮することができるある数のテーブル・エント
リがある。クエリ内において参照されたテーブル、また
はクエリが総計を含むか否かというような情報を用い
て、関連があり得るビューを決定する。
に、隠し(collapsed)演算子ツリーを生成し、基本的
に全ての基礎テーブルを、それらに適用する述語と共に
リストに纏めたクエリ・グラフを形成する。クエリ・グ
ラフに一致するビューを、選択肢テーブルに追加する。
また、選択肢テーブルから、原始グラフ・ツリーを抽出
する。このような原始グラフ・ツリーは、特定の演算子
集合のみを許可し、原始テーブルのみを許す。これによ
って、原始データベース・テーブルを優先して、ビュー
・テーブルを無視することが可能になる。
い。一方の演算子ツリーが他方の演算子ツリーを包含す
る場合、残余演算子を用いることができる。残余式は、
フィルタを含み、演算子別にグループ化し、演算子を加
入することができる。
詳細な説明では、その一部をなす添付図面を参照する。
図面では、本発明を実施可能な具体的な実施形態の例
を、例示として示す。これらの実施形態は、当業者が本
発明を実施することができるように十分詳細に説明して
あり、更に、他の実施形態も利用可能であり、論理的、
数学的、電気的およびその他の変更も、本発明の精神ま
たは範囲から逸脱することなく行なえることは理解され
よう。したがって、以下の詳細な説明は、限定的な意味
で捕らえてはならず、本発明の範囲は添付した特許請求
の範囲によってのみ定義されることとする。
1章は、本発明を実現するコンピュータ・システムの動
作について説明する。続いて、どのようにして、コスト
に基づいてクエリ最適化装置による考慮のために、全体
的な具体化ビューを識別し、選択肢テーブルに追加する
かについて説明する。結論は、潜在的な利点をいくつか
述べ、更に別の代替実施形態についても述べる。ハードウエアおよび動作環境 本発明を実現するシステム例は、図1における計算デバ
イス100のような計算デバイスを含む。その最も基本
的な構成では、計算デバイス100は、典型的に、少な
くとも1つの演算装置102およびメモリ104を含
む。計算デバイスの正確なコンフィギュレーションおよ
び形式に応じて、メモリ104は、揮発性(RAMのよ
うな)、不揮発性(ROM、フラッシュ・メモリ等のよ
うな)、またはこれら2つの何らかの組み合わせとなる
場合もある。この最も基本的なコンフィギュレーション
を、図1における破線106で示す。
含むこともできる。例えば、デバイス100は、磁気ま
たは光ディスクまたはテープを含むがこれらには限定さ
れない、追加のストレージ(リムーバブルおよび/また
は非リムーバブル)を含むことができる。このような追
加のストレージは、図1では、リムーバブル・ストレー
ジ108および非リムーバブル・ストレージ110によ
って例示されている。コンピュータ記憶媒体は、揮発性
および不揮発性、リムーバブルおよび非リムーバブル媒
体を含み、コンピュータ読み取り可能命令、データ構
造、プログラム・モジュールまたはその他のデータのよ
うに、情報格納技術のあらゆる方法で実現されている。
メモリ104、リムーバブル・ストレージ108および
非リムーバブル・ストレージ110は、全てコンピュー
タ記憶媒体の例である。コンピュータ記憶媒体は、RA
M、ROM、EEPROM、フラッシュ・メモリ、また
はその他のメモリ技術、CD−ROM、ディジタル・バ
ーサタイル・ディスク(DVD)またはその他の光スト
レージ、磁気を用いたストレージ、あるいは所望の情報
を格納するために使用可能であり、デバイス100がア
クセス可能なその他のあらゆる媒体を含むが、これらに
限定される訳ではない。このようなコンピュータ記憶媒
体はいずれも、デバイス100の一部となり得る。
2も内蔵し、当該デバイスは他のデバイスと通信するこ
とができる。通信媒体は、典型的に、読み取り可能命
令、データ構造、プログラム・モジュール、あるいは搬
送波またはその他の輸送機構のような変調データ信号に
おけるその他のデータを具体化し、あらゆる情報配信媒
体を含む。「変調データ信号」という用語は、信号内に
情報をエンコードするように変更された、1つ以上のそ
の特性集合を有する信号を意味する。限定ではなく一例
として、通信媒体は、有線ネットワークまたは直接配線
接続のような有線媒体や、音響、RF、赤外線およびそ
の他のワイヤレス媒体のようなワイヤレス媒体を含む。
ここで用いる場合、コンピュータ読み取り可能媒体と
は、記憶媒体および通信媒体双方を含むこととする。
ウス、ペン、音声入力デバイス、接触入力デバイス等の
ような入力デバイス114を有することもできる。ディ
スプレイ、スピーカ、プリンタ等のような出力デバイス
116も含ませることができる。これらのデバイスは、
当技術では周知である。
デバイス110のようなその他のデバイスによって実行
する、プログラム・モジュールのようなコンピュータ実
行可能命令のコンテクストにおいて説明するとよい。通
常、プログラム・モジュールは、ルーチン、プログラ
ム、オブジェクト、コンポーネント、データ構造等を含
み、特定のタスクを実行するか、または特定の抽象的デ
ータ・タイプを実装する。典型的に、プログラム・モジ
ュールの機能性は、種々の実施形態に必要に応じて組み
合わせたりあるいは分散することができる。
む多くの異なる方法を用いて、ソフトウエアを設計する
ことができる。C++およびJava(登録商標)は、
オブジェクト指向プログラミングに関連する機能性を与
える、共通のオブジェクト指向コンピュータ・プログラ
ミング言語の2つの例である。オブジェクト指向プログ
ラミング方法は、データ・メンバ(変数)、および当該
データ上で動作し、クラスと呼ばれる単一のエンティテ
ィを形成するメンバ関数(メソッド)をカプセル化する
手段を与える。また、オブジェクト指向プログラミング
方法は、既存のクラスに基づいて新たなクラスを作成す
る手段も与える。
である。オブジェクトのデータ・メンバは、コンピュー
タ・メモリ内部に格納されている属性であり、メソッド
は、このデータ上で、潜在的に与えることができる他の
サービスと共に作用する、実行可能なコンピュータ・コ
ードである。本発明では、発明の態様を一実施形態にお
いてオブジェクトとして実現するというオブジェクトの
観念を利用する。
トに編成された、関連する関数のグループである。各イ
ンターフェースは、ある識別子によって一意に識別する
ことができる。インターフェースはインスタンス化(in
stantiation)を有さない。即ち、インターフェース
は、定義のみであり、当該インターフェースが指定する
メソッドを実装するために実行可能コードを必要としな
い。オブジェクトは、インターフェースが指定するメソ
ッドに実行可能コードを与えることによって、インター
フェースを支援することができる。オブジェクトが供給
する実行可能コードは、インターフェースが指定する定
義を満たさなければならない。オブジェクトは追加のメ
ソッドを与えることもできる。インターフェースは、オ
ブジェクト指向プログラミング環境における、またはオ
ブジェクト指向プログラミング環境による使用に限定さ
れる訳ではないことを、当業者は認めよう。
ートを用いて説明する。ブロックは、必要に応じて、1
つ以上のソフトウエアまたはハードウエア・モジュール
で実現することができ、データベース・システムのコン
テクストにおいて、計算デバイス100上で実行する。具体化ビューの識別 クエリ最適化装置は、通常、図2に示すように最初に簡
略化段階があり、続いて、選択肢の探査および実行計画
のコストに基づく選択がある。210において、元のク
エリを識別する。簡略化/正規化段階220の間、元の
クエリに対して、可能なときには、選択をプッシュ・ダ
ウンする、あるいはサブクエリを統合(join)として書
き直すというような何らかの変更を行なう。これらの変
更は、「より良い」クエリ230を得ることを目的とす
る。典型的に、この段階では詳細なコスト推定がなく、
前述の図における結果Q’として、単一の「より良い」
クエリ230を生成する。
の選択肢を生成する。また、探査段階240は、詳細な
コスト・モデルを用いて、最も安い推定実行コストを選
択する。クエリ最適化装置は、最低のコストを有するク
エリを実行する計画250を与える。
チャ、即ち、ボトムアップ・ダイナミック・プログラミ
ング統合列挙、および変換によって促される選択肢の生
成がある。双方のアーキテクチャは、選択肢テーブルを
設定する。このテーブルは、クエリの各下位式毎に、種
々の可能性をコンパクトにエンコードしたものである。
慮することは可能であるが、これは不適当である。何故
なら、単一の解決手段しか得ることができず、この選択
を行なう詳細なコスト情報がないからである。また、あ
るビューの使用が、クエリの他の何らかの変換または修
正が行われるまで、明白にならない場合もある。これが
有効になるのは、クエリが具体化ビューの定義に非常に
近づいたときのみであり、その場合でも、この特定のク
エリに対して、ベース・テーブル内により良いインデッ
クス集合があるなら、元のクエリの方がビューの使用よ
りも速い可能性もある。
ストに基づく選択の間にビューの検出および置換を行な
う。ここでは、これを変換に基づく最適化装置について
記載し、一般的な原理は、ボトムアップ列挙を含む、他
の選択肢テーブル構築方法にも及ぶ。選択肢テーブルの増強 探査の間に具体化ビューを検討する場合、このような具
体化ビューを用いるエントリによって、選択肢のテーブ
ルを増強することから成る。元のクエリが、テーブル
A,B,C上での統合であると仮定する。通常の選択肢
テーブルは、図4の300に概略的に示すように見え、
論理演算子のみである。選択肢テーブル300は、4つ
のグループ310,320,330および340から成
る。グループ310は、ABCのルート・エントリを有
し、異なる選択肢を有するエントリを含む。グループ3
20,330および340は、それぞれ、AB,BCお
よびACのルート・エントリを有する。尚、各々につ
き、統合の順序関係があるのは、2つの代替エントリの
みである。
4において概略的に400で示すような、エンコード演
算子ツリーを得る。ルート・エントリ(上述のエントリ
におけるABC)から開始し、各エントリから演算子を
選択する。各エントリにおいて最初の選択を行なうこと
によって、演算子ツリー400を形成した。AおよびB
が最初に統合され、続いてその結果をCと統合する。
場合、具体化ビュー・テーブルVtが格納されており、
これは、AおよびBの統合の結果を含む。これは統合下
位式を得る有効な方法であるので、この選択肢によって
選択肢テーブル300を増強し、図5における増強テー
ブル500を形成する。増強を510で識別し、ルート
・エントリABを有するグループに対するエントリとし
て追加する。
よって考慮する有効な演算子を図6の600に示す。こ
れは、VtおよびCの統合から成る。選択肢テーブルを
増強する正確な機構は、最適化装置のアーキテクチャに
よって異なる。変換に基づく最適化装置の場合、新たな
変換規則をシステムに追加することによって、拡張が得
られる。ボトムアップ統合列挙では、構造手順を変更す
る必要がある。一旦選択肢をテーブルに追加したなら、
コストを推定し、費用のかかる解決手段を間引き、演算
子ツリーを組み立て、最適な解決手段を構築する通常の
最適化装置の機構を適用する。
ビューV1,V2,…Vk、およびビューの利用を考慮
することができるある数のテーブル・エントリがある。
クエリに関係がある可能性があるビューのみを考慮すれ
ばよい。クエリにおいてどのデータベース・テーブルを
参照するか、およびクエリが総計を含むか否かについて
の情報を用いることにより、ビューを関連なしとして識
別する。他の情報も使用可能である。これによって、候
補のビュー集合を狭めることができる。各テーブル・エ
ントリ上で同様の情報を用い、無関連として検出され得
るビュー定義を一致させようとするのを回避することが
できる。
数考慮するために、テーブル・エントリを固定し、次い
で多数の候補ビューを用いて照合を試みる。これによっ
て、動作を開始する前に、所与のテーブル・エントリに
おいて全ての追加選択肢を生成する。この順序は、通常
の最適化の順序と一致しており、各エントリ毎に単一の
一致構造を生成し、それを各候補ビュー毎に再利用する
ことを可能にする。
を検査しようとする特定のテーブル・エントリEが与え
られると、図7のフローチャートに示すように以下のス
テップを実行する。710において、エントリEのため
に演算子ツリーTを抽出する(このステップは、同じエ
ントリE上の種々のビューに対し共有する)。次に、7
20において、ビュー定義Vから演算子ツリーTへの包
含マッピングを試みる。マッピングに成功すると、残余
演算が行われ、730においてT=Op(Vt)とな
る。750においてビューの利用により、選択肢テーブ
ルを拡張する。740において、残余演算が新たなテー
ブル・エントリの導入を必要とする場合もある。これら
のステップの更に詳細な説明を以下に行なう。照合のための演算子ツリーの抽出 テーブル・エントリは多数の演算子ツリーに対応する。
所与のエントリからエンコードされた各演算子ツリーを
抽出し考慮することは、これらの数が指数的に増大する
と(関与するテーブル上で)、実現不可能となる。非決
定論的に単一の演算子ツリーを抽出することは不適当で
ある。何故なら、ビュー定義に一致しない場合も起こり
得るからであるが、なおも他のあるエンコード演算子ツ
リーが定義と一致する可能性もある。
びB join A双方をエンコードするグループにつ
いて考慮する場合の、A join Bの形態のビュー
定義である。厳格な演算子マッピングを行なえば、2つ
のエンコード・ツリーの内1つだけに継承される。ある
いは、全ての演算子ツリーを素早く抽出すると、実現不
可能になる。2つのテーブルには2つの演算子ツリーが
あり、3つのテーブルには12個、4つのテーブルには
既に120の演算子ツリーがある。
を用いる。第1の技法では、照合は、二進統合(binary
join)を含む演算子ツリーに対して行なわず、クエリ
・グラフとして知られている、演算子を隠した形態に対
して行なう。これは、基本的に、全ての基礎テーブル
を、これらに適用される述語と共にリストに纏めたもの
である。一旦演算子ツリーを抽出したなら、統合を隠
し、次いでクエリ・グラフを比較する。この方法は、演
算子ツリーA join BまたはB joinAのい
ずれかを抽出し、具体化ビューA join Bとの一
致という同じ結果が得られる。クエリ・グラフは、少な
くとも統合および外部統合(outerjoin)を表わすこと
ができることが知られている。
グラフ・ツリー(primitive graph-tree)を抽出し、ビ
ューと照合する。このツリーは、特定の演算子集合のみ
を表出させることができる。統合−グラフでは、抽出し
たツリーの中において統合およびフィルタ演算子のみが
許される。条件が長い値のリストを有するINリストで
ある場合、あるフィルタ条件を半統合(semijoin)に転
換することが可能であるが、半統合を含む式はクエリ・
グラフに直接マッピングしないものの、フィルタを有す
る式はマッピングする。したがって、望ましいのは、半
統合ツリーではなく、フィルタ・ツリーである。同様
に、場合によっては、OR条件がUNIONに転換す
る。統合グラフ抽出では、テーブル・エントリのために
演算子ツリーを組み立てるとき、統合のみが有効な演算
子と見なされる。
みを表出させることも可能である。テーブル・エントリ
は、既にビューへの参照を含む場合もあるが、これらは
特定のエントリのツリーの組み立てでは、除外すべきで
ある。先に考慮した3つのテーブルの統合では、演算子
ツリーVt join Cの抽出は、定義がA joi
n B join Cであるビューと一致しない。した
がって、原始データベース・テーブルを優先して、ビュ
ー・テーブルは無視される。
ツリーを抽出し、所与のテーブル・エントリに対して、
そのクエリ・グラフを1回だけ構築する。次いで、得ら
れたクエリ・グラフを再利用して、多数の候補ビューを
照合する。
ラフ・ツリーまたはグラフ・ツリー上のGroup B
y(分類)のいずれかを考慮する。更に別の実施形態で
は、他のクラスも考慮することができる。特定のテーブ
ル・エントリに対して、2つのツリーを、2つのビュー
・クラスについて抽出する試みを行なう。包含マッピング ビュー定義を抽出したツリーと比較する場合、テーブル
参照、述語、およびこれら2つの間の他のスカラー式の
間で、マッピングを設定する。しかし、2つの式は、同
一である必要はなく、多くの場合同一でない。その理由
は、通常の探査プロセスは、クエリに対して可能な同等
の演算子ツリーを全て考慮する訳ではないからである。
例えば、3つの演算子ツリー810,820および83
0を図8に示す。第1演算子ツリー810は、ビュー定
義であり、第2演算子ツリー820は、ビューがサブツ
リー上で直接一致する場合のクエリである。しかしなが
ら、この第2演算子ツリー820は、初期選択評価を考
慮するだけの最適化装置の通常の探索空間では決して考
慮されない(何故なら、それらの後の評価は無駄である
からである)。次に、同一でない、第3演算子ツリー8
30とビューを照合しなければならない。
探索空間に対する制限の結果であり、処理すべき類似度
は、最適化装置によって実施される探索空間を考慮する
必要がある。この相違のために、残余演算子が必要とな
る。前述の場合では、ビューの照合によって、残余演算
子ツリー840を生成する。残余式は、前述の場合に示
したように、フィルタ、GroupBy(分類)、およ
び統合を含むことができる。GroupByは、「より
低い粒度」を計算するために「より高い粒度」総計を用
いる場合に用いられる。例えば、(領域、月)によって
総売上を計算する既存の具体化ビューを用いて、領域別
に(全ての月)の全売上を計算することができる。
に用いられる。例えば、具体化ビューが多数の統合の結
果を含む場合、これは顧客キーを格納するが、名前は格
納しない。名前も要求するクエリでは、ビューを用いる
ことができるが、残余演算は、既知のキーから名前を検
索するために、顧客テーブルとの追加統合を含む。
のいくつかの導出は、当業者には公知である。また、例
えば、BおよびC間(またはAおよびC間)に外部キー
の制約がないのであれば、A join B join
Cという形態の具体化ビューを用いて、単一の統合A
join Bを有するクエリに答えることができる。
これらの技法は、本発明によって利用し、影響力を及ぼ
すことができる。実際には、これは、最適化装置全体の
機構が、特定の形態のビューを用いてあるクエリに答え
ることができるか否かに関する既存の結果にリンクする
点である。選択肢テーブルの拡張 一旦具体化ビュー選択肢を求めたなら(ビュー参照およ
び恐らくは残余演算子)、これを選択肢テーブルに追加
しなければならない。SQLサーバが用いるような、変
換に基づく最適化装置のコンテクストでは、これは、最
適化装置フレームワークによって処理され、式を取り込
み、ルート演算子を、考慮対象の元のテーブル・エント
リに追加し、必要であれば、新たなテーブル・エントリ
を作成する。ボトムアップ列挙手法では、選択肢をテー
ブル・エントリに添付する汎用的な標準機構はないの
で、既存のユーティリティおよびシステムのその他の実
施態様の詳細を考慮に入れて、これをコード化する必要
がある。
って、データベース・サーバの変換に基づく最適化装置
に、以下の変更および追加を行なう。 ・変換規則のためのパターンを記述するために用いる構
造に、CGraphプリミティブを追加する。
グラフ・ツリーの具体化ビューを扱い、他方はグラフ・
ツリー上で形態Group By(分類)の具体化ビュ
ーを扱う。
み、クエリ・グラフを生成する関数を追加する。 ・2つのクエリ・グラフの包含照合を行い、照合に成功
した場合、残余演算子を生成する関数を追加する。
る新たなテーブルの円滑な集積のために、列マッピング
を実行する関数を追加する。 結論 本願は、本発明のあらゆる改作および変形をも包含しよ
うとするものである。本発明は、特許請求の範囲および
その均等物によってのみ限定されることを意図している
のは明白である。コストに基づくクエリ最適化装置によ
って、具体化ビューのクエリに対する適応可能性を決定
することを可能にするシステムおよび方法について説明
した。最適化の探査段階において、ビュー利用選択肢を
生成するので、複雑なクエリにおける他の変換との相互
作用が考慮に入れられる。具体化ビューを用いるか否か
に最終判断は、推定したコストに基づいて行われる。
ブロック図である。
ある。
である。
した演算子ツリーの図である。
である。
別するプロセスを示すフローチャートである。
リーの図である。
Claims (41)
- 【請求項1】 データベース・クエリの実行に用いる具
体化ビューの選択方法であって、 前記クエリの実行のために多数のエントリを有する選択
肢テーブルを得るステップと、 前記クエリのために関連のある具体化ビューを選択する
ステップと、 各エントリおよびビュー毎に、 前記エントリおよび前記ビューの演算子ツリーを抽出す
るステップと、 エントリおよびビューの演算子ツリーを照合するステッ
プと、 一致が得られた場合、前記ビューを用いて前記選択肢テ
ーブルを拡張するステップと、から成る方法。 - 【請求項2】 請求項1記載の方法において、二進統合
を含むエントリの演算子ツリーを抽出するステップは、
演算子をクエリ・グラフに隠すステップを含む、方法。 - 【請求項3】 請求項2記載の方法において、前記演算
子をクエリ・グラフに隠すステップは、基礎テーブル
を、これらに適用する述語と共にリストに纏めるステッ
プを含む、方法。 - 【請求項4】 請求項1記載の方法において、ビューの
演算子ツリーを抽出するステップは、演算子を原始グラ
フ・ツリーに隠すステップを含む、方法。 - 【請求項5】 請求項4記載の方法において、原始グラ
フ・ツリーを、特定の演算子集合に制限し、更に原始テ
ーブルに制限する、方法。 - 【請求項6】 請求項5記載の方法において、統合グラ
フのための前記演算子ツリーにおいて、統合、外部統
合、およびフィルタ演算子のみを許可する、方法。 - 【請求項7】 請求項1記載の方法において、ルート演
算子を追加することによって、前記選択肢テーブルを拡
張する、方法。 - 【請求項8】 請求項1記載の方法であって、更に、 コストに基づく最適化装置を用いて、前記増強した選択
肢テーブルに基づいて実行計画を選択するステップを含
む、方法。 - 【請求項9】 データベース・クエリの実行に用いる具
体化ビューの選択方法をコンピュータに実行させる命令
を有する機械読み取り可能媒体であって、前記方法が、 前記クエリの実行のために多数のエントリを有する選択
肢テーブルを得るステップと、 前記クエリのために関連のある具体化ビューを選択する
ステップと、 各エントリおよびビュー毎に、 前記エントリおよび前記ビューの演算子ツリーを抽出す
るステップと、 エントリおよびビューの演算子ツリーを照合するステッ
プと、 一致が得られた場合、前記ビューを用いて前記選択肢テ
ーブルを拡張するステップと、から成る機械読み取り可
能媒体。 - 【請求項10】 請求項9記載の機械読み取り可能媒体
において、二進統合を含むエントリの演算子ツリーを抽
出するステップは、演算子をクエリ・グラフに隠すステ
ップを含む、機械読み取り可能媒体。 - 【請求項11】 請求項10記載の機械読み取り可能媒
体において、前記演算子をクエリ・グラフに隠すステッ
プは、基礎テーブルを、これらに適用する述語と共にリ
ストに纏めるステップを含む、機械読み取り可能媒体。 - 【請求項12】 請求項9記載の機械読み取り可能媒体
において、ビューの演算子ツリーを抽出するステップ
は、演算子を原始グラフ・ツリーに隠すステップを含
む、機械読み取り可能媒体。 - 【請求項13】 請求項12記載の機械読み取り可能媒
体において、原始グラフ・ツリーを、特定の演算子集合
に制限し、更に原始テーブルに制限する、機械読み取り
可能媒体。 - 【請求項14】 請求項13記載の機械読み取り可能媒
体において、統合グラフのための前記演算子ツリーにお
いて、統合、外部統合、およびフィルタ演算子のみを許
可する、機械読み取り可能媒体。 - 【請求項15】 請求項9記載の機械読み取り可能媒体
において、ルート演算子を追加することによって、前記
選択肢テーブルを拡張する、機械読み取り可能媒体。 - 【請求項16】 請求項9記載の機械読み取り可能媒体
であって、更に、 コストに基づく最適化装置を用いて、前記増強した選択
肢テーブルに基づいて実行計画を選択するステップを含
む、機械読み取り可能媒体。 - 【請求項17】 データベース・クエリの実行に用いる
具体化ビューを選択するクエリ最適化装置であって、 前記クエリの実行のために多数のエントリを有する選択
肢テーブルを得る手段と、 前記クエリのために関連のある具体化ビューを選択する
手段と、 各エントリおよびビュー毎に、 前記エントリおよび前記ビューの演算子ツリーを抽出す
る手段と、 エントリおよびビューの演算子ツリーを照合する手段
と、を備え、 一致が得られた場合、前記ビューを用いて前記選択肢テ
ーブルを拡張する、クエリ最適化装置。 - 【請求項18】 請求項17記載のクエリ最適化装置に
おいて、二進統合および外部統合を含むエントリの演算
子ツリーを抽出する手段は、演算子をクエリ・グラフに
隠す手段を含む、クエリ最適化装置。 - 【請求項19】 請求項18記載のクエリ最適化装置に
おいて、前記演算子をクエリ・グラフに隠す手段は、基
礎テーブルを、これらに適用する述語と共にリストに纏
める手段を含む、クエリ最適化装置。 - 【請求項20】 請求項17記載のクエリ最適化装置に
おいて、ビューの演算子ツリーを抽出する手段は、演算
子を原始グラフ・ツリーに隠す手段を含む、クエリ最適
化装置。 - 【請求項21】 請求項20記載のクエリ最適化装置に
おいて、原始グラフ・ツリーを、特定の演算子集合に制
限し、更に原始テーブルに制限する、クエリ最適化装
置。 - 【請求項22】 請求項21記載のクエリ最適化装置に
おいて、統合グラフのための前記演算子ツリーにおい
て、統合、外部統合、およびフィルタ演算子のみを許可
する、クエリ最適化装置。 - 【請求項23】 請求項17記載のクエリ最適化装置に
おいて、ルート演算子を追加することによって、前記選
択肢テーブルを拡張する、クエリ最適化装置。 - 【請求項24】 請求項17記載のクエリ最適化装置で
あって、更に、 コストに基づく最適化装置を用いて、前記増強した選択
肢テーブルに基づいて、実行計画を選択する手段を含
む、クエリ最適化装置。 - 【請求項25】 データベース・クエリの実行において
用いる具体化ビューの選択方法であって、 前記クエリの実行のために選択肢テーブルを得るステッ
プと、 選択した具体化ビューを用いて前記選択肢テーブルを増
強するステップと、 コストに基づく最適化装置を用いて、前記増強した選択
肢テーブルに基づいて実行計画を選択するステップと、
から成る方法。 - 【請求項26】 データベース・クエリの実行において
用いる具体化ビューの選択方法をコンピュータに実行さ
せる命令を有する機械読み取り可能媒体であって、前記
方法が、 前記クエリの実行のために選択肢テーブルを得るステッ
プと、 選択した具体化ビューを用いて前記選択肢テーブルを増
強するステップと、 コストに基づく最適化装置を用いて、前記増強した選択
肢テーブルに基づいて実行計画を選択するステップと、
から成る機械読み取り可能媒体。 - 【請求項27】 データベース・クエリの実行において
用いる具体化ビューの選択方法であって、 前記クエリの実行のために選択肢テーブルを得るステッ
プと、 前記クエリのために関連するビューを選択するステップ
と、 関連するビューを各エントリと照合するステップと、 選択した一致具体化ビューを用いて、前記選択肢テーブ
ルを増強するステップと、 コストに基づく最適化装置を用いて、前記増強した選択
肢テーブルに基づいて実行計画を選択するステップと、
から成る方法。 - 【請求項28】 データベース・クエリの実行において
用いる具体化ビューの選択方法であって、 前記クエリの実行のために多数のエントリを有する選択
肢テーブルを得るステップと、 前記ビューのために関連する具体化ビューを選択するス
テップと、 各エントリおよびビュー毎に、 前記エントリおよび前記ビューの演算子ツリーを抽出す
るステップと、 前記具体化ビューの定義から前記演算子ツリーへの包含
マッピングを試みるステップと、 エントリおよびビューの演算子ツリーを照合するステッ
プと、 一致が得られた場合、前記ビューを用いて前記選択肢テ
ーブルを拡張するステップと、から成る方法。 - 【請求項29】 請求項28記載の方法において、前記
包含マッピングの試みが成功した場合、残余演算を定義
する、方法。 - 【請求項30】 請求項29記載の方法であって、更
に、前記選択肢テーブルに、定義した残余演算を追加す
るステップを含む、方法。 - 【請求項31】 請求項30記載の方法において、フィ
ルタ、分類および統合から成るグループから、前記残余
動作を選択する、方法。 - 【請求項32】 請求項28記載の方法において、二進
統合を含むエントリの演算子ツリーを抽出するステップ
が、演算子をクエリ・グラフに隠すステップを含む、方
法。 - 【請求項33】 請求項32記載の方法において、前記
演算子をクエリ・グラフに隠すステップは、基礎テーブ
ルを、これらに適用する述語と共にリストに纏めるステ
ップを含む、方法。 - 【請求項34】 請求項28記載の方法において、ビュ
ーの演算子ツリーを抽出するステップは、演算子を原始
グラフ・ツリーに隠すステップを含む、方法。 - 【請求項35】 請求項34記載の方法において、原始
グラフ・ツリーを、特定の演算子集合に制限し、更に原
始テーブルに制限する、方法。 - 【請求項36】 請求項35記載の方法において、統合
グラフのための前記演算子ツリーにおいて、統合および
フィルタ演算子のみを許可する、方法。 - 【請求項37】 請求項28記載の方法において、ルー
ト演算子を追加することによって、前記選択肢テーブル
を拡張する、方法。 - 【請求項38】 請求項28記載の方法であって、更
に、 コストに基づく最適化装置を用いて、前記増強した選択
肢テーブルに基づいて、実行計画を選択するステップを
含む、方法。 - 【請求項39】 データベース・クエリの実行において
用いる具体化ビューの選択方法をコンピュータに実行さ
せる命令を有する機械読み取り可能媒体であって、前記
方法が、 前記クエリの実行のために多数のエントリを有する選択
肢テーブルを得るステップと、 前記ビューのために関連する具体化ビューを選択するス
テップと、 各エントリおよびビュー毎に、 前記エントリおよび前記ビューの演算子ツリーを抽出す
るステップと、 前記具体化ビューの定義から前記演算子ツリーへの包含
マッピングを試みるステップと、 エントリおよびビューの演算子ツリーを照合するステッ
プと、 一致が得られた場合、前記ビューを用いて前記選択肢テ
ーブルを拡張するステップと、から成る機械読み取り可
能媒体。 - 【請求項40】 データベース・クエリの実行において
用いる具体化ビューの選択方法であって、 前記クエリの実行のために多数のエントリを有する選択
肢テーブルを得るステップと、 前記ビューのために関連する具体化ビューを選択するス
テップと、 各エントリおよびビュー毎に、 演算子をクエリ・グラフに隠すことによって、前記エン
トリの演算子ツリーを抽出するステップと、 演算子をクエリ・グラフに隠すことによって、前記ビュ
ーの演算子ツリーを抽出するステップと、 前記具体化ビューから前記演算子ツリーへの包含マッピ
ングを試みるステップと、 前記包含マッピングの試みが成功した場合、残余演算を
定義するステップと、 エントリおよびビューの演算子ツリーを照合するステッ
プと、 一致が得られた場合、ルート演算子を追加することによ
って、前記ビューを用いて前記選択肢テーブルを拡張す
るステップと、 コストに基づく最適化装置を用いて、前記増強した選択
肢テーブルに基づいて実行計画を選択するステップと、
から成る方法。 - 【請求項41】 データベース・クエリの実行において
用いる具体化ビューの選択方法をコンピュータに実行さ
せる命令を有する機械読み取り可能媒体であって、前記
方法が、 前記クエリの実行のために多数のエントリを有する選択
肢テーブルを得るステップと、 前記ビューのために関連する具体化ビューを選択するス
テップと、 各エントリおよびビュー毎に、 演算子をクエリ・グラフに隠すことによって、前記エン
トリの演算子ツリーを抽出するステップと、 演算子をクエリ・グラフに隠すことによって、前記ビュ
ーの演算子ツリーを抽出するステップと、 前記具体化ビューから前記演算子ツリーへの包含マッピ
ングを試みるステップと、 前記包含マッピングの試みが成功した場合、残余演算を
定義するステップと、 エントリおよびビューの演算子ツリーを照合するステッ
プと、 一致が得られた場合、ルート演算子を追加することによ
って、前記ビューを用いて前記選択肢テーブルを拡張す
るステップと、 コストに基づく最適化装置を用いて、前記増強した選択
肢テーブルに基づいて実行計画を選択するステップと、
から成る機械読み取り可能媒体。
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)
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)
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)
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)
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 |
-
2000
- 2000-09-27 US US09/671,458 patent/US6510422B1/en not_active Expired - Lifetime
-
2001
- 2001-09-26 EP EP01123065.3A patent/EP1193618B1/en not_active Expired - Lifetime
- 2001-09-27 JP JP2001296553A patent/JP4955876B2/ja not_active Expired - Fee Related
Patent Citations (8)
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)
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 |