JP2007534087A - 部分的クエリーキャッシング - Google Patents

部分的クエリーキャッシング Download PDF

Info

Publication number
JP2007534087A
JP2007534087A JP2007509641A JP2007509641A JP2007534087A JP 2007534087 A JP2007534087 A JP 2007534087A JP 2007509641 A JP2007509641 A JP 2007509641A JP 2007509641 A JP2007509641 A JP 2007509641A JP 2007534087 A JP2007534087 A JP 2007534087A
Authority
JP
Japan
Prior art keywords
operator
plan
result set
planning
query
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
JP2007509641A
Other languages
English (en)
Other versions
JP4856627B2 (ja
Inventor
オズブトン,セティン
Original Assignee
オラクル・インターナショナル・コーポレイション
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 オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2007534087A publication Critical patent/JP2007534087A/ja
Application granted granted Critical
Publication of JP4856627B2 publication Critical patent/JP4856627B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/99933Query processing, i.e. searching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

クエリーが実行されると実行計画が形成されるが、それは複数の計画オペレータからなる。任意の所与の計画オペレータを実行する前に、記憶領域が調べられる。計画オペレータに対応して結果セットが記憶されている場合には、その計画オペレータを実行する代わりに、そのキャッシングされた結果セットを用いる。その特定の計画オペレータに対応する結果セットが存在しない場合には、その計画オペレータを実行し、出力される結果セットを別の実行計画の別の計画オペレータによる使用のために記憶してもよい。

Description

この発明はデータベースコマンドを処理することに関し、特に、クエリーの結果セットをキャッシングすることに関する。
発明の背景
このセクションにおいて記載される方策は追及され得る方策ではあるが、必ずしもこれまでに構想または追及されてきた方策ではない。したがって、特段の指示がなければ、このセクションに記載される方策のいずれもが、単にそれらがこのセクションに含まれるというだけで先行技術としての資格がある、と仮定されるべきではない。同様に、特段の指示がなければ、方策で認識される問題は先行技術において認識されていたと仮定されるべきではない。
あるデータベースサーバは、データベース動作を実行するよう要求を表現するステートメントを受取ると、実行計画を発生し得る。実行計画は要求を実行するようデータベースサーバによって実行されるステップおよび動作を定義する。データベース動作を要求するよう用いられるステートメントは構造化されたクエリー言語(SQL)などのようなデータベース言語に準拠するデータベースコマンドの形式であってもよい。
クエリーの結果セットを高速に返すことは望ましい。ますますより多くの人々が、データベースを用いて、探している情報を得ようとするにつれ、データベースに対して発行されたクエリーのうちのあるものは同じであるという可能性が増大する。あるシステムでは、少なくともあるクエリーの結果セットが記憶される。クエリーが受信されると、テキストに基づく検索が実行されて、以前に実行されたクエリーを見つけ出す。(同じテキストを有する)同じ同一のクエリーが2回目に対して提示されていることがわかり、そのクエリーに対する結果セットが記憶された場合には、システムはキャッシングされた結果セットを返し、そのクエリーを2回実行することはしない。データベースを用いる人々が多ければ多いほど、クエリーの結果セットをセーブすることにより得られるパフォーマンスの改善はより大きくなる。
しかしながら、多くのクエリーは、同一ではなく、しかしながら類似している。多くクエリーはそれらの結果セット内において同一のデータからなる部分的な組を処理してもよい。しかしながら、クエリーは同一ではないので、期待される結果セットとして、データの、同一の部分的な組を有しそうなキャッシングされた結果セットは、結果セットの類似性にもかかわらず、再使用され得ず、類似のクエリーの各々が実行される。
前述のことに基づき、クエリーの結果セットを記憶し再使用することが依然として求められている。
この発明は、同様の参照番号は同様の要素を示す添付の図面の図において、限定によってではなく、例によって示される。
発明の詳細な説明
部分的クエリーキャッシングのための方法および装置を記載する。以下の記載において
は、説明のため、数多くの具体的な詳細を述べて、この発明の十分な理解を促す。しかしながら、この発明はこれらの具体的な詳細を伴わずに実施されてもよいことは明らかである。他の例では、周知の構造および装置をブロック図形式で示すことにより、この発明を不必要に曖昧にすることを回避する。
いくつかの特徴を以下に記載するが、それらは、各々、互いとは独立して、または他の特徴との任意の組合せとともに用いられ得る。しかしながら、どのような個々の特徴も、上で論じられる問題のいずれにも対応しないかもしれず、または上で論じられる問題の1つに対応するのみかもしれない。上で論じられる問題のいくつかはここに記載される特徴のいずれによっても十分に対応されはしないかもしれない。見出しを設けてはいるが、ある特定の見出しに関係付けられる一方でその見出しを有するセクションにおいては見出されない情報が、本明細書の他の部分においてさらに見出されるかもしれない。
ここに記載されるのは、あるクエリーに対して以前に発生された結果の少なくともある部分を、別のクエリーの、後の計算のために用いる方策である。クエリーの実行計画によって定義されるオペレーションに対して発生される結果セットを、別のクエリーの実行の同一または類似のオペレーションに対する結果セットとして用いる。
実行計画
データベースサーバは効率性に対して最適化された実行計画を発生させる。実行計画を含むようどのようなステップにするか、およびそれらのステップが実行される順序を決定する際、データベースサーバは効率性に影響する多くの要因を占める。たとえば、クエリーは、第1の値を第1の列に含み第2の値を第2の列に含む要求の行であってもよい。第1の列がインデックス付けされると、データベースサーバはそのインデックスを用いてデータにより効率よくアクセスする実行計画を発生させてもよい。そのような実行計画は以下に示される順序で実行される以下のようなステップを含んでもよい。
1.インデックスにアクセスし、第1の値を第1の列に含む行の行IDを発生させる。
2.行IDによって識別される行の組を得る。
3.第2の列における第2の値に対する行の組をフィルタ処理する。
クエリー実行計画は「計画オペレータ」と称されるステップを含む。計画オペレータは、実行計画において実行されデータベースサーバによって実行されることにより1つ以上の行ソースにアクセスしてもよいオペレーションの組を定義する。行ソースはデータベース(たとえばテーブルにおける1つ以上の行)または別の計画オペレータの1つ以上の出力される行において記憶されるデータであってもよい。実行計画は、オラクル・コーポレイション(Oracle Corporation)による1999年2月のオラクル8i概念(Oracle 8i Concepts)の第22〜24章に説明されている。オラクル8i概念の内容をここに引用により援用する。
例示的実行計画図
ある実行計画は実行計画図によって表現され得る。図1は、部分的クエリーキャッシングを含む実行計画の一例のさまざまな特徴を示すよう与えられる実行計画図である。図1において、実行計画102がクエリー104に対し(データベースサーバによって)発生される。クエリー104は、
SELECT t1.col4, t2.col2
FROM t1, t2
WHERE t1.col.1=t2.col2 AND t1.col3=192
GROUP BY t1.col4;
であるクエリーである。
クエリー104は述語105を含み、それはt1.col1=t2.col2およびt1.col3=192である。述語とは、クエリーが適用されるテーブルにおける行によって満たされなければならない基準を定義する論理表現である。
実行計画102においては、計画オペレータはブロックを用いて示される。具体的には、グループ計画オペレータ106、結合計画オペレータ108、テーブルスキャンおよびフィルタ計画オペレータ112、およびテーブルスキャン計画オペレータ116が、実行計画102を形成する計画オペレータである。親計画オペレータと子計画オペレータとの間の分岐は子計画オペレータから親計画オペレータへの行の流れを表現する。したがって、子計画オペレータの出力行は親計画オペレータへの入力行である。計画オペレータは、ここにおいては、計画オペレータそれら自体が定義するオペレーションを実行するものとして記載される。しかしながら、これは、単に、データベースサーバが、計画オペレータを実行する際に計画オペレータによって定義されるオペレーションを実行していることを表現する簡便な態様である。
実行計画102においては、テーブルスキャンおよびフィルタ計画オペレータ112およびテーブルスキャン計画オペレータ116はテーブルt1の列col1のスキャンおよびテーブルt2の列col2のスキャンをそれぞれ実行する。しかしながら、テーブルスキャンおよびフィルタ計画オペレータ112は、さらに、テーブルt1のスキャンされた行をフィルタ処理して、col3=192を有する行のみが選択され、それによって、テーブルスキャンおよびフィルタ計画オペレータ112の出力に含まれる。結合計画オペレータ108はテーブルスキャンおよびフィルタ計画オペレータ112ならびにテーブルスキャン計画オペレータ116から出力される行を結合して、結合計画オペレータ108により出力される行を形成する。グループ計画オペレータ106は結合計画オペレータ108によって形成された行をグループに分ける。グループ計画オペレータ106の結果、出力における各行は異なるグループを表現する。(つまり、出力における各テーブルt1.列col4は一意である。)
機能上の概観
部分的クエリーキャッシングにおいては、クエリーの個々の計画オペレータの結果セットを計算し、他のクエリーについての再使用の可能性のため、記憶領域に記憶する。この記憶領域はオペレータ出力記憶領域であり、それを出力領域と称することにする。計画オペレータの結果セットは、ここにおいては、キャッシングされる結果セットと称される。各キャッシングされる結果セットはその結果セットのそれぞれの計画オペレータの定義に基づいて発生されるシグネチャを有することになる。同一または類似の定義、したがっておそらく同一または類似の結果セットを伴う計画オペレータは、同じかまたは類似のシグネチャを有することになる。計画オペレータを計算する(つまり計画オペレータに対して結果を発生させる)ために、その計画オペレータに対してシグネチャを発生させ、そのシグネチャを用いて、同じシグネチャを伴うキャッシングされた結果セットを求めて記憶領域を検索する。キャッシングされた結果セットがある場合には、そのキャッシングされた結果セットの計画オペレータをさらに調べて、そのキャッシングされた結果セットが、計算されつつある計画オペレータに対する結果セットとして用いられてもよいかどうかを判断してもよい。別の実施例では、所与のシグネチャに対するキャッシングされた結果セットがある場合には、計画オペレータはさらには調べられず、キャッシングされた結果セットを計画オペレータの結果セットとして用いる。キャッシングされた結果セットがない場合には、計画オペレータを実行する。加えて、計画オペレータを実行することにより発生された結果セットを、別の対応する計画オペレータによる後の使用のために、出力記憶に記憶してもよい。
ある実施例では、まず検索をクエリー全体に対して実行するが、それは、そのクエリー
の実行計画の計画オペレータのすべてを包含する計画オペレータの結果セットを検索することにより行なわれる。クエリー全体に対応する計画オペレータに対して結果セットが記憶されなかった場合には、次いで、実行計画を形成する計画オペレータの1つ以上について、出力記憶を検索して、キャッシングされた結果セットがその対応する計画オペレータに対して記憶されたかどうかを見る。
ある実施例では、計画オペレータを検索するが、それは、その検索の最も大きな部分を包含する計画オペレータ(たとえばクエリー全体を包含する計画オペレータなど)で始まり、その検索のうち次に大きな部分を包含する計画オペレータに対して検索することに進む。この、次に大きい部分は、クエリーの最も大きな部分の計画オペレータ内に包含される。換言すると、キャッシングされた結果セットが親計画オペレータに対して見つからない場合には、もし存在するのであれば、その親計画オペレータの直近の子である計画オペレータについて、キャッシングされた結果セットを求めて検索を行なう。
クエリーを実行する
図2はこの発明のある実施例に従って計画オペレータを実行する方法200を示すフローチャートである。方法200は計画オペレータを実行する際に実行されるステップを示す。ステップ201において、計画オペレータをクエリーに対して発生させる。ステップ202において、その計画オペレータのシグネチャを発生させる。ステップ204において、その計画オペレータを実行することにより結果セットを発生させる。ステップ206において、ステップ204で発生された結果セットを出力記憶に記憶(たとえばキャッシング)する。出力記憶についてはさらに以下で論じる。ステップ208において、シグネチャおよび選択肢として計画オペレータを、そのシグネチャおよび選択肢としてその計画オペレータがキャッシングされた結果セットと関連付けられる態様で、記憶する。
図3は、この発明の実施例に従って、キャッシングされた結果セットを利用する方法300を示すフローチャートである。ステップ302において、計画オペレータをクエリーに対して発生させる。ステップ303において、評価されつつある計画オペレータに対してシグネチャを発生させる。ステップ304において、出力記憶内を、キャッシングされた結果セットを求めて検索する。この検索を実行することにおいて、評価されつつある計画オペレータのシグネチャと、キャッシングされた結果セットに関連付けられて記憶されるシグネチャとの間において比較を実行してもよい。ある実施例においては、精密な一致を必要としなくてもよい。選択肢のステップ306では、一致が見出されると、さらなる評価を行ない、そこにおいては、記憶された計画オペレータを、評価されつつある計画オペレータと比較して、キャッシングされた結果セットを用いてもよいかどうかを見る。ステップ308において、ステップ306が方法300に含まれ、ステップ306において、キャッシングされた結果セットが使用可能であると判断される場合には、その計画オペレータを実行する代わりに、キャッシングされた結果セットを(ユーザに結果セットとして、または別の計画オペレータによる入力としての使用のために)返す。ステップ308において、ステップ306が方法300に含まれず、ステップ304において一致が見出される場合には(たとえば2つのシグネチャが十分に類似していることが見出される場合には)、計画オペレータを実行する代わりに、キャッシングされた結果セットを返す。
図1を参照して、方法300を実施することにおいて、クエリー104を受取ると、データベースサーバはクエリー計画102を立てる。次いで、データベースサーバは計画オペレータ出力記憶領域を調べて、キャッシングされた結果セットが、実行計画102を形成する計画オペレータについて記憶されたかどうかを見る。クエリーの、より大きな部分を構成する計画オペレータがまず検索されるが、それは、そのようなより大きな部分を形成する計画オペレータに対応する結果セットがある場合には、そのようなより大きな部分により包含されるより小さな部分を形成する計画オペレータを検索する必要はないからで
ある。
たとえば、実行計画102においては、まず、グループ計画オペレータ106に対応するキャッシングされた結果セットに対して検索が行なわれる。結果セットが発見されると、その発見された結果セットはユーザにクエリー104の結果セットとして返され、グループ計画オペレータ106を2回実行することはしない。加えて、残りの計画オペレータに対して結果セットを検索する必要はなく、なぜならば、実行計画102の、残りの計画オペレータは、グループ計画オペレータ106内に包含されるからである。
しかしながら、グループ計画オペレータ106に対応するキャッシングされた結果セットがない場合には、データベースサーバは結合計画オペレータ108に対応するキャッシングされた結果セットを検索する。結合計画オペレータ108に対応するキャッシングされた結果セットが見つけられた場合には、そのキャッシングされた結果セットをグループ計画オペレータ106に対し入力として使用のため返し、実行計画102の、残りのオペレータを実行する必要はない。結合計画オペレータ108に対応するキャッシングされた結果セットにおいてグループ計画オペレータ106を実行した後、(結合計画オペレータ108に対応するキャッシングされた結果セットに基づく)グループ計画オペレータ106の結果セットをユーザに対しクエリー104の結果セットとして返す。別のクエリーがグループ計画オペレータ106または類似の計画オペレータを含むことに備えて、グループ計画オペレータ106の実行の結果セットを出力記憶に記憶してもよい。
結合計画オペレータ108に対応するキャッシングされた結果セットがない場合には、データベースサーバはテーブルスキャンおよびフィルタ計画オペレータ112ならびにテーブルスキャン計画オペレータ116に対応するキャッシングされた結果セットを検索する。テーブルスキャンおよびフィルタ計画オペレータ112に対応するキャッシングされた結果セットがある場合には、そのキャッシングされた結果セットを結合計画オペレータ108による使用のため返す。キャッシングされた結果セットがテーブルスキャンおよびフィルタ計画オペレータ112についてない場合には、データベースサーバはテーブルスキャンおよびフィルタ計画オペレータ112を実行し、テーブルスキャンおよびフィルタ計画オペレータ112を実行した結果セットを、結合計画オペレータ108による使用のため返す。加えて、テーブルスキャンおよびフィルタ計画オペレータ112の結果セットを後の使用のため記憶してもよい。同様に、キャッシングされた結果セットがテーブルスキャン計画オペレータ116について見つけられた場合には、そのキャッシングされた結果セットを結合計画オペレータ108の使用のため返す。キャッシングされた結果セットがテーブルスキャン計画オペレータ116に対して見つけられなかった場合には、データベースサーバはテーブルスキャン計画オペレータ116を実行し、テーブルスキャン計画オペレータ116を実行した結果セットを結合計画オペレータ108による使用のため返す。加えて、テーブルスキャン計画オペレータ116の結果セットを後の使用のため記憶してもよい。結合計画オペレータ108を、次いで、テーブルスキャンおよびフィル計画オペレータ112ならびにテーブルスキャン計画オペレータ116を実行することから生じたにせよ、テーブルスキャンおよびフィルタ計画オペレータ112ならびにテーブルスキャン計画オペレータ116に対応するキャッシングされた結果セットを見つけたことから生じたにせよ、またはテーブルスキャンおよびフィルタ計画オペレータ112ならびにテーブルスキャン計画オペレータ116の一方に対して記憶されるキャッシングされた結果セットを見つけ出し、他方を実行したことから生じたにせよ、返された結果セットにおいて実行する。次のグループ計画オペレータ106を結合計画オペレータ108の結果セットを用いて実行し、グループ計画オペレータ106の結果セットをユーザにクエリー104の結果セットとして返す。上で言及したように、グループ計画オペレータ106および/または結合計画オペレータ108を実行したことの結果セットを、別のクエリーがグループ計画オペレータ106または結合計画オペレータ108の一方を含むことに備えて
、計画オペレータ出力記憶に記憶してもよい。
ある実施例では、所与のオペレータの結果セットを必ずしも記憶しなくてもよい。その代わりに、費用利益分析を行なって、その所与のオペレータの結果セットを記憶するかどうか、または別のクエリーが同じオペレータを含む場合には結果セットを記憶しないで所与のオペレータを2回実行させるかどうかを判断する。所与のオペレータの結果セットを記憶するかどうかを判断することにおいて用いられてもよい要素のいくつかは、オペレータを実行することに対し必要な時間および資源、ならびに利用可能な記憶領域の量である。たとえば、計画オペレータを実行するよう必要とされる時間が、キャッシングされた結果セットを求めて出力記憶を検索するよう必要とされる予想される時間より短い場合には、結果セットは記憶されないかもしれない。同様に、結果セットを記憶するよう必要とされる記憶領域が出力領域における利用可能な記憶領域よりも大きい(なぜならば結果セットが非常に大きいかまたは記憶領域がいっぱいであるかもしくはほとんどいっぱいであるなどのため)場合には、結果セットは、同様に、記憶されないかもしれない。対照的に、結果セットが大きな記憶領域を必要としないかまたは大量の利用可能な記憶領域があり、計画オペレータが実行するのに非常に多くの時間を要する場合には、結果セットを記憶するかもしれない。当業者にとって明らかであるように、他の要素を用いて、新たに実行された計画オペレータの結果セットを記憶すべきかどうかを判断してもよい。
2つの異なるクエリーを、各々、データベースステートメントからなる異なる組によって構築してもよいが、それでも、同じ実行計画を有してもよい。たとえば、第1のクエリーはNATURAL(自然な)結合を含み、一方、第2のクエリーは、NATURAL結合を用いる代わりに結合鍵がUSING(使用)節において明示的に名付けられることを除き、第1のクエリーと同じであってもよい。実行計画を構築し、その実行計画の結果セットを検索することにより、1つのクエリーの結果セットを他のクエリーの結果セットとして、それら2つのクエリーはデータベースステートメントからなる異なる組によって形成されるものの、返してもよい。
出力記憶はどのような種類のメモリであってもよく、たとえば、以下においてハードウェア概観で記載されるようなものであってもよい。ある実施例では、出力記憶は1つ以上の一時または短期記憶装置(たとえば揮発性記憶装置など)における1つ以上の記憶領域である。ある実施例では、その短期出力記憶は長期メモリ(たとえばハードドライブなど)と比較されると相対的に高速なアクセス時間を有してもよい(たとえばフラッシュメモリまたはRAMなど)。ある実施例では、出力記憶は1つ以上の長期記憶装置(たとえば不揮発性記憶装置など)における1つ以上の記憶領域である。ある実施例では、出力記憶は1つ以上の長期記憶装置および短期記憶装置における1つ以上の記憶領域の組合せである。
計画オペレータのシグネチャ
ある実施例では、シグネチャを、各計画オペレータごとに、その計画オペレータの定義に基づいて確立する。シグネチャの発生は、同じまたは類似の定義を伴う計画オペレータが同じシグネチャを有するように行なわれる。ある実施例では、シグネチャは計画オペレータを定義または記述するよう用いられるデータ構造に基づいてもよい。たとえば、計画オペレータに関連付けられるデータ構造を用いてハッシュ値を発生させ、それを、シグネチャを構成するよう用いられるシーケンス番号を形成することに対して用いられる数値にマッピングしてもよい。
計画オペレータの結果セットはその計画オペレータのシグネチャとともに記憶してもよい。新たなクエリーが受取られると、先に実行された計画オペレータに関連付けられる結果セットの検索が、同じシグネチャを有する計画オペレータに関連付けられる結果セット
を検索することにより行なわれる。シグネチャを用いて、2つのクエリーを異なるように書いてもよいが、それらのそれぞれの実行計画は同じシグネチャを伴う計画オペレータを共有してもよい。
シグネチャの使用により、データサーバはクエリーに対して用いられてもよい結果セットをすばやく見つけることができる。ある実施例では、各計画オペレータを、その計画オペレータの記述そのものを表現するシグネチャにマッピングする。ある代替的実施例では、各計画オペレータを、他の計画オペレータの組および/または範囲に対してさらに用いられるシグネチャにマッピングし、このシグネチャに関連付けられる結果セットをそのシグネチャの組および/または範囲内における計画オペレータの各々に対して用いる。この実施例では、シグネチャは計画オペレータの記述そのものを必ずしも表現しはしない。ある実施例では、シグネチャの一致を見つけ出した後、計画オペレータを比較して、1つの計画オペレータからの結果セットが他の計画オペレータの結果セットとして使用可能であると期待されるかどうかを評価する。別の実施例では、2つのシグネチャが一致するかまたは十分に近い場合には、見つけ出された、キャッシングされた結果セットを、そのキャッシングされた結果セットを生じさせた計画オペレータをさらに調べることなく使用する。
類似しているが同一ではない計画オペレータ
クエリーは類似はしているが同一ではないことがしばしばである。同一ではないクエリーに対応する計画オペレータを検索することにより、結果セットがそのクエリーについて返されるであろう速度は増大するかもしれない。したがって、ある実施例では、ある計画オペレータの結果セットを検索する際、類似している、異なる計画オペレータに対するキャッシングされた結果セットが見つかった場合には、類似のオペレーションの結果セットを、実際のオペレーションを実行する代わりに用いてもよい。たとえば、あるクエリーに対して発生されたある計画オペレータが2000年11月1日〜2004年1月1日の日付に関連付けられるデータの組を見つけ出すことを要し、あるキャッシングされた結果セットが、2000年11月1日〜2004年2月23日の日付に関連付けられるデータを見つける計画オペレータについて発見された場合には、その発見された、キャッシングされた結果セットを、そのクエリーに対して発生された実際の計画オペレータを実行する代わりに、用いてもよい。1つの実施例では、発見された、キャッシングされた結果セットを、さらなる修飾を伴わず、「そのまま」用いる。別の実施例では、発見された、キャッシングされた結果セットを、さらにフィルタ処理して、キャッシングされた結果セットにおける余剰データの一部またはすべてを除去する。別の実施例では、キャッシングされた結果セットまたはキャッシングされた結果セットのシグネチャを評価して、ユーザが、要求される結果と、この例では2004年1月2日〜2004年2月23日の日付に関連付けられる余剰データである、発見された、キャッシングされた結果セットとの間の違いを受取ることを嫌がりそうであるかどうかを判断する。ユーザがそのような違いを気にしないであろうと予想される場合には、見つけられた、キャッシングされた結果セットを返し、計画オペレータは実行されない。ユーザがそのような違いを嫌がるであろうと予想される場合には、計画オペレータを実行するかまたはキャッシングされた結果セットをフィルタ処理して余剰データ2004年1月2日〜2004年2月23日を除去する。
ある実施例では、典型的なユーザが、どちらの結果セットが返されるかを気にしないようである、と予想される場合には、2つの計画オペレータを同様に考慮してもよい。たとえば、ある実施例では、キャッシングされた結果セットの内容が計画オペレータのそれとほとんど同じであり、行のわずかなパーセンテージのみだけ異なる、と予想される場合には、キャッシングされた結果を計画オペレータの結果セットとして用いてもよい。類似しているが異なる、つまり非同類である、キャッシングされた結果セットをこのような態様で用いてもよいかどうかは、ユーザ入力により制御されてもよい。たとえば、ユーザは、
類似してはいるが異なるキャッシングされた結果セットを返してもよいかどうかを特定するコマンドまたはパラメータをクエリーに含ませてもよく、またはユーザのデータベースセッションにおけるある変数を、アプリケーション・プログラマ・インターフェイス(「API」)を介して、類似しているが異なるキャッシングされた結果セットを返してもよいかどうかを特定するよう設定してもよい。パラメータまたは変数は、さらに、2つの計画オペレータまたはシグネチャが異なってもよい程度を特定し、その一方で、一方のキャッシングされた結果セットが他方の結果セットに対して用いられること可能にしてもよい。
さらに、ある実施例では、第1の計画オペレータが、第2の計画オペレータの結果セットのすべてを何らかの余剰データに加えて返すことが予想され、その余剰データが第2の計画オペレータの結果セットに対応する内容を不明瞭にするほど大量ではないと予想される場合には、第1の計画オペレータの結果セットを第2の計画オペレータの結果セットとしてそのまままたは修正された後に受入れてもよい。同様に、ある実施例では、第1の計画オペレータが第2の計画オペレータよりも小さい結果セットを返すことが予想されるが、欠落しているデータが重要または少量ではないと予想される場合には、第1の計画オペレータの結果セットを第2の計画オペレータの結果セットとしてそのまままたは修正された後に受入れてもよい。
古いキャッシングされた結果セット
所与のクエリーに対する計画オペレータは同一であるかもしれないが、それら計画オペレータの結果セットは、それらのクエリーが異なる時間に実行された結果のように異なるかもしれない。ある実施例では、所与の計画オペレータに対応するキャッシングされた結果セットを見つけると、チェックを行なって、その見つけられた、キャッシングされた結果セットが古いかどうかを見る。たとえば、ある実施例では、キャッシングされた結果セットが計算された時間を、計画オペレータ出力記憶においてキャッシングされた結果セットと関連付けて記憶する。キャッシングされた結果セットの古さがしきい値古さよりも古い場合には、キャッシングされた結果セットは、もはや、キャッシュに保存されせず、別のクエリーの計画オペレータに対し結果セットとして使用されない。このしきい値古さは上記されたユーザ入力に基づいてもよい。
ハードウェア概観
図4は、コンピュータシステム400を示すブロック図であり、この発明のある実施例を実施してもよいマシンの一例である。具体的には、コンピュータシステム400はデータベースサーバとして用いられてもよく、および/または上に記載された部分的なクエリーキャッシング法を実施するようプログラミングされてもよい。コンピュータシステム400は情報を通信するためのバス402または他の通信機構、およびバス402に結合され情報を処理するためのプロセッサ404を含む。コンピュータシステム400は、さらに、バス402に結合され、プロセッサ404によって実行されるべき情報または命令を記憶するためのメインメモリ406、たとえばランダムアクセスメモリ(RAM)または他のダイナミック記憶装置などを含む。メインメモリ406は、さらに、プロセッサ404によって実行されるべき命令の実行中に一時的な変数または他の中間情報を記憶するために用いられてもよい。コンピュータシステム400は、さらに、バス402に結合され、静的情報および命令をプロセッサ404のために記憶するためのリードオンリーメモリ(ROM)408または他のスタティック記憶装置を含む。記憶装置410、たとえば磁気ディスクまたは光ディスクなどが設けられ、情報および命令を記憶するためにバス402に結合される。
コンピュータシステム400は、バス402を介して、ディスプレイ412、たとえば陰極線管(CRT)などに、コンピュータユーザに対して情報を表示するために結合され
てもよい。英数字キーおよび他のキーを含む入力装置414を、情報およびコマンド選択をプロセッサ404に通信するため、バス402に結合する。他のタイプのユーザ入力装置は、方向情報およびコマンド選択をプロセッサ404に通信するためおよびカーソルの動きをディスプレイ412上において制御するためのカーソル制御416、たとえばマウス、トラックボールまたはカーソル方向キーなどである。この入力装置は、典型的には、2つの自由度を2つの軸、つまり第1の軸(たとえばx)および第2の軸(たとえばy)において有し、装置が位置を面内において特定することを可能にする。
コンピュータシステム400は計画オペレータの結果セットを記憶するために用いられてもよい。この発明の1つの実施例に従うと、計画オペレータの結果セットの記憶およびメモリ112における先に実行された計画オペレータのキャッシングされた結果セットに対する検索は、プロセッサ404がメインメモリ406に含まれる1つ以上の命令からなる1つ以上のシーケンスを実行することに応答して、コンピュータシステム400により与えられてもよい。そのような命令は、メインメモリ406に、他のコンピュータ読取可能媒体たとえば記憶装置410などから読込まれてもよい。メインメモリ406に含まれる命令のシーケンスの実行は、プロセッサ404がここに記載される処理ステップを実行することを引起こす。マルチ処理構成における1つ以上のプロセッサをさらに用いて、メインメモリ406に含まれる命令のシーケンスを実行してもよい。代替的実施例では、結線された回路系をソフトウェア命令に代えて、またはソフトウェア命令との組合せで用いて、この発明を実施してもよい。斯くして、この発明の実施例はハードウェア回路系およびソフトウェアのどのような具体的な組合せにも限定されるものではない。
ここで用いられている「コンピュータ読取可能媒体」という語は「マシン読取可能媒体」の一例であり、実行のため命令をプロセッサ404に与えることにかかわる任意の媒体を指す。そのような媒体は数多くの形式を取り得、不揮発性媒体、揮発性媒体、および伝送媒体を含むが、それらに限定されるものではない。不揮発性媒体は、たとえば、光または磁気ディスク、たとえば記憶装置410などを含む。揮発性媒体はダイナミックメモリ、たとえばメインメモリ406などを含む。伝送媒体は、バス402を含むワイヤを含む、同軸ケーブル、銅線およびファイバ光学素子を含む。伝送媒体は音波または光波の形式、たとえば電波および赤外線データ通信中に生ずるものなどの形式も取り得る。
コンピュータ読取可能媒体の一般的な形態は、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープもしくは任意の他の磁気媒体、CD−ROM、任意の他の光学媒体、パンチカード、紙テープ、穴のパターンを有する任意の他の物理的媒体、RAM、PROM、EPROM、フラッシュ−EPROM、任意の他のメモリチップもしくはカートリッジ、以下に記載されるような搬送波、またはコンピュータが読取り得る任意の他の媒体を含む。
さまざまな形式のコンピュータ読取可能媒体が、実行のためにプロセッサ404に対し1つ以上の命令からなる1つ以上のシーケンスを担持することに関与してもよい。たとえば、それらの命令はまず遠隔のコンピュータの磁気ディスクに担持されてもよい。遠隔のコンピュータは、それらの命令をそのダイナミックメモリにロードし、それらの命令を電話回線を介してモデムを使用することにより送り得る。コンピュータシステム400に局在するモデムはそのデータを電話回線において受信し、赤外線送信機を用いてそのデータを赤外線信号に変換し得る。バス402に結合された赤外線検出器によって、赤外線信号で搬送されたデータが受信され、そのデータがバス402に置かれ得る。バス402はそのデータをメインメモリ406に搬送し、そこからプロセッサ404は命令を検索し実行する。メインメモリ406によって受取られる命令は、選択肢として、記憶装置410において、プロセッサ404による実行前または後に、記憶されてもよい。
コンピュータシステム400は、さらに、バス402に結合される通信インターフェイス418を含む。通信インターフェイス418は、ローカルネットワーク422に結合されるネットワークリンク420に結合する2方向データ通信を与える。たとえば、通信インターフェイス418は、対応するタイプの電話回線に対するデータ通信接続を与えるよう、統合サービスデジタル網(ISDN)カードまたはモデムであってもよい。別の例として、通信インターフェイス418はコンパチブルLANに対するデータ通信接続を与えるようローカルエリアネットワーク(LAN)であってもよい。無線リンクも実現されてもよい。そのようなどの実現例においても、通信インターフェイス418は、さまざまなタイプの情報を表現するデジタルデータストリームを搬送する電気信号、電磁気信号または光信号を送受する。
ネットワークリンク420は典型的にはデータ通信を1つ以上のネットワークを介して他のデータ装置に与える。たとえば、ネットワークリンク420は接続をローカルネットワーク422を介してホストコンピュータ424またはインターネットサービスプロバイダ(ISP)426によって動作されるデータ装置に与えてもよい。ISP426は、次いで、通信サービスを、今では一般に「インターネット」428と称される世界的なパケットデータ通信網を介して与える。ローカルネットワーク422およびインターネット428は、ともに、デジタルデータストリームを搬送する電気信号、電磁気信号または光信号を用いる。さまざまなネットワークを介する信号およびネットワークリンク420において通信インターフェイス418を介する信号は、デジタルデータをコンピュータシステム400との間で搬送し、情報を移送する搬送波の例示的な形態である。
コンピュータシステム400は、プログラムコードを含むメッセージの送信およびデータの受信を、ネットワーク、ネットワークリンク420および通信インターネット418を介して行ない得る。インターネットの例では、サーバ420によって、要求されたコードが、アプリケーションプログラムに対して、インターネット428、ISP426、ローカルネットワーク422および通信インターネット418を介して送信されるかもしれない。この発明に従うと、1つのそのようなダウンロードされたアプリケーションは、ここに記載されるように、出力記憶における先に実行された計画オペレータと関連付けられる結果セットの記憶を可能にする。
受信されるコードは、受信されると、プロセッサ404によって実行されてもよく、および/または後の実行のために記憶装置410もしくは他の不揮発性記憶において記憶されてもよい。この態様で、コンピュータシステム400はアプリケーションコードを搬送波の形式で得てもよい。
上の記載において、この発明の実施例は実施例ごとに異なってもよい数多くの具体的な詳細を参照して記載されてきた。したがって、何がこの発明であるか、および何が出願人によってこの発明であるよう意図されるかを唯一および排他的に示すものは、この出願から、任意の後の修正を含んでそれが出る具体的な形における特許請求の範囲である。そのような請求の範囲に含まれる文言に対しここにおいて明示的に述べられるすべての定義は請求の範囲において用いられるような文言の意味を支配する。したがって、請求の範囲において明示的に記載されない限定、要素、特性、特徴、利点または属性は請求の範囲をいかなる態様にも限定するべきではない。明細書および図面は、したがって、例示的な意味において見られるものであり、限定的な意味において見られるものではない。
実行計画図である。 この発明のある実施例に従う、計画オペレータを実行する方法を示すフローチャートの図である。 この発明のある実施例に従う、結果セットを記憶する方法を示すフローチャートの図である。 この発明のある実施例を実施してもよいコンピュータシステムを示すブロック図である。

Claims (22)

  1. データベースサーバへの要求を処理するための方法であって、
    第1のクエリーを前記データベースにおいてユーザから受信することと、
    前記第1のクエリーを前記データベースサーバを介して実行するために第1の計画を発生させることとを含み、前記計画は、第1の結果セットを出力する少なくとも第1の計画オペレータを含む第1の複数の計画オペレータを含み、前記方法はさらに、
    前記第1の結果セットを記憶することと、
    第2のクエリーをユーザから受信することと、
    前記第2のクエリーを前記データベースサーバを介して実行するために第2の計画を発生させることとを含み、前記第2の実行計画は、前記第1の計画オペレータに対応する少なくとも第2の計画オペレータを含む第2の複数の計画オペレータを含み、前記方法はさらに、
    前記第1の結果セットの少なくとも一部分を前記第2のオペレータの第2の結果セットとして用いてもよいことを判断することと、
    前記第2のクエリーを、記憶された前記第1の結果セットに基づいて計算することとを含む、方法。
  2. 前記第1の結果セットを記憶するステップはシグネチャを前記第1の結果セットと関連付けることを含む、請求項1に記載の方法。
  3. 前記シグネチャは前記第1の計画オペレータによって実行されるオペレーションに基づいて発生される、請求項2に記載の方法。
  4. 前記判断するステップは、前記第2の計画オペレータのシグネチャを、複数の計画オペレータの、記憶されるシグネチャと少なくとも比較することにより、前記複数の計画オペレータの各々が前記第2の計画オペレータであるかどうかを判断することを含む、請求項2に記載の方法。
  5. 前記第1の計画オペレータおよび前記第2の計画オペレータは同一である、請求項1に記載の方法。
  6. 前記第1の計画オペレータおよび前記第2の計画オペレータは同一ではない、請求項1に記載の方法。
  7. 前記第1の計画オペレータおよび前記第2の計画オペレータは類似している、請求項1に記載の方法。
  8. 前記第1の計画オペレータおよび前記第2の計画オペレータは同一であるが、前記第1の結果セットおよび前記第2の結果セットは異なる、請求項1に記載の方法。
  9. 前記第1の実行計画は第3の計画オペレータを含み、前記方法は、さらに、第3の結果セットを前記第3の計画オペレータに応答して出力することを含み、前記第3の結果セットは記憶されない、請求項1に記載の方法。
  10. 前記判断するステップは、いつ前記第1の結果セットが計算されたかを少なくとも判断することを含む、請求項1に記載の方法。
  11. 前記第1の計画オペレータと前記第2の計画オペレータとの間には差異が存在し、前記計算するステップは前記第1の結果セットを前記差異に基づいて少なくとも修正すること
    を含む、請求項1に記載の方法。
  12. 1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、
    第1のクエリーを前記データベースにおいてユーザから受信するステップと、
    前記第1のクエリーを前記データベースサーバを介して実行するために第1の計画を発生させるステップとを含み、前記第1の計画は、第1の結果セットを出力する少なくとも第1の計画オペレータを含む第1の複数の計画オペレータを含み、前記方法はさらに、
    前記第1の計画の組を記憶するステップと、
    第2のクエリーをユーザから受信するステップと、
    前記第2のクエリーを前記データベースサーバを介して実行するために第2の計画を発生させるステップとを含み、前記第2の実行計画は、前記第1の計画オペレータに対応する少なくとも第2の計画オペレータを含む第2の複数の計画オペレータを含み、前記方法はさらに、
    前記第1の結果セットの少なくとも一部分を前記第2のオペレータの第2の結果セットとして用いてもよいことを判断するステップと、
    前記第2のクエリーを、記憶された前記第1の結果セットに基づいて計算するステップとを含む方法を実行させる命令からなる1つ以上のシーケンスを担持するマシン読取可能媒体。
  13. 前記第1の結果セットを記憶するステップはシグネチャを前記第1の結果セットと関連付けることを含む、請求項12に記載のマシン読取可能媒体。
  14. 前記シグネチャは前記第1の計画オペレータによって実行されるオペレーションに基づいて発生される、請求項13に記載のマシン読取可能媒体。
  15. 前記判断するステップは、前記第2の計画オペレータのシグネチャを、複数の計画オペレータの、記憶されるシグネチャと少なくとも比較することにより、前記複数の計画オペレータの各々が前記第2の計画オペレータであるかどうかを判断することを含む、請求項13に記載のマシン読取可能媒体。
  16. 前記第1の計画オペレータおよび前記第2の計画オペレータは同一である、請求項12に記載のマシン読取可能媒体。
  17. 前記第1の計画オペレータおよび前記第2の計画オペレータは同一ではない、請求項12に記載のマシン読取可能媒体。
  18. 前記第1の計画オペレータおよび前記第2の計画オペレータは類似している、請求項12に記載のマシン読取可能媒体。
  19. 前記第1の計画オペレータおよび前記第2の計画オペレータは同一であるが、前記第1の結果セットおよび前記第2の結果セットは異なる、請求項12に記載のマシン読取可能媒体。
  20. 前記第1の実行計画は第3の計画オペレータを含み、前記方法は、さらに、第3の結果セットを前記第3の計画オペレータに応答して出力することを含み、前記第3の結果セットは記憶されない、請求項12に記載のマシン読取可能媒体。
  21. 前記判断するステップは、いつ前記第1の結果セットが計算されたかを少なくとも判断することを含む、請求項12に記載のマシン読取可能媒体。
  22. 前記第1の計画オペレータと前記第2の計画オペレータとの間には差異が存在し、前記計算するステップは前記第1の結果セットを前記差異に基づいて少なくとも修正することを含む、請求項12に記載のマシン読取可能媒体。
JP2007509641A 2004-04-22 2005-04-20 部分的クエリーキャッシング Active JP4856627B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/830,510 2004-04-22
US10/830,510 US7676453B2 (en) 2004-04-22 2004-04-22 Partial query caching
PCT/US2005/013648 WO2005106717A1 (en) 2004-04-22 2005-04-20 Partial query caching

Publications (2)

Publication Number Publication Date
JP2007534087A true JP2007534087A (ja) 2007-11-22
JP4856627B2 JP4856627B2 (ja) 2012-01-18

Family

ID=34966323

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007509641A Active JP4856627B2 (ja) 2004-04-22 2005-04-20 部分的クエリーキャッシング

Country Status (9)

Country Link
US (1) US7676453B2 (ja)
EP (1) EP1738290B1 (ja)
JP (1) JP4856627B2 (ja)
CN (1) CN100476817C (ja)
AU (1) AU2005239366B2 (ja)
CA (1) CA2562281C (ja)
DE (1) DE602005008030D1 (ja)
HK (1) HK1094470A1 (ja)
WO (1) WO2005106717A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6072334B1 (ja) * 2016-06-09 2017-02-01 株式会社Cygames 情報処理システム及び方法、並びにプログラム
JP2017037532A (ja) * 2015-08-11 2017-02-16 日本電信電話株式会社 データキャッシュ方法、ノード装置及びプログラム
JP2017130236A (ja) * 2011-05-02 2017-07-27 アビニシオ テクノロジー エルエルシー データクエリの管理
WO2022079856A1 (ja) * 2020-10-15 2022-04-21 日本電信電話株式会社 データ処理装置、データ処理方法及びデータ処理プログラム
US11461304B2 (en) 2015-10-14 2022-10-04 DataRobot, Inc. Signature-based cache optimization for data preparation

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8521725B1 (en) 2003-12-03 2013-08-27 Google Inc. Systems and methods for improved searching
US7765200B2 (en) * 2005-03-25 2010-07-27 International Business Machines Corporation SQL query problem determination tool
US9128945B1 (en) * 2008-05-16 2015-09-08 Google Inc. Query augmentation
US20100241893A1 (en) 2009-03-18 2010-09-23 Eric Friedman Interpretation and execution of a customizable database request using an extensible computer process and an available computing environment
US9760658B2 (en) * 2009-10-08 2017-09-12 Oracle International Corporation Memory-mapped objects
US8346792B1 (en) 2010-11-09 2013-01-01 Google Inc. Query generation using structural similarity between documents
US20120173516A1 (en) * 2010-12-31 2012-07-05 Emc Corporation Work file recycling
US10031944B1 (en) * 2010-12-31 2018-07-24 EMC IP Holding Company LLC Work file change detection
US8965879B2 (en) 2011-06-03 2015-02-24 Microsoft Technology Licensing, Llc Unique join data caching method
JP5919825B2 (ja) 2012-01-05 2016-05-18 富士通株式会社 データ処理方法、分散処理システムおよびプログラム
US9251209B2 (en) 2012-03-15 2016-02-02 International Business Machines Corporation Autonomic caching for in memory data grid query processing
CN102880629B (zh) * 2012-06-20 2015-06-03 杜小勇 概率数据库加速查询方法
US9317554B2 (en) * 2012-09-26 2016-04-19 Microsoft Technology Licensing, Llc SQL generation for assert, update and delete relational trees
US10628417B2 (en) * 2013-12-01 2020-04-21 Paraccel Llc Physical planning of database queries using partial solutions
US10740316B2 (en) * 2015-10-14 2020-08-11 Dr Holdco 2, Inc. Cache optimization for data preparation
US11169978B2 (en) 2015-10-14 2021-11-09 Dr Holdco 2, Inc. Distributed pipeline optimization for data preparation
US11288447B2 (en) * 2015-10-14 2022-03-29 Dr Holdco 2, Inc. Step editor for data preparation
US10642815B2 (en) * 2015-10-14 2020-05-05 Paxata, Inc. Step editor for data preparation
US11074254B2 (en) * 2016-03-23 2021-07-27 International Business Machines Corporation Performance management using thresholds for queries of a service for a database as a service
CN107402926B (zh) 2016-05-18 2021-02-23 华为技术有限公司 一种查询方法以及查询设备
US10769134B2 (en) 2016-10-28 2020-09-08 Microsoft Technology Licensing, Llc Resumable and online schema transformations
CN108038215A (zh) * 2017-12-22 2018-05-15 上海达梦数据库有限公司 数据处理方法及系统
WO2021019089A1 (en) 2019-07-31 2021-02-04 Sindice Limited T/A Siren Semantic caching of semi-join operators in shared-nothing and log-structured databases
CN111753028B (zh) * 2020-07-02 2023-08-25 上海达梦数据库有限公司 数据传输方法、装置、设备及存储介质
US11567938B1 (en) * 2021-07-20 2023-01-31 Sap Se Intelligent query plan cache size management
US12019631B1 (en) * 2022-03-23 2024-06-25 Wells Fargo Bank, N.A. Systems and methods for reducing computational resource usage in a query-based data access system via a repeated query results repository

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003150419A (ja) * 2001-11-14 2003-05-23 Hitachi Ltd データベース管理システムの実行情報を取得する手段を有する記憶装置

Family Cites Families (114)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5241305A (en) 1987-05-15 1993-08-31 Newspager Corporation Of America Paper multi-level group messaging with group parsing by message
GB8719572D0 (en) * 1987-08-19 1987-09-23 Krebs M S Sigscan text retrieval system
US5133075A (en) * 1988-12-19 1992-07-21 Hewlett-Packard Company Method of monitoring changes in attribute values of object in an object-oriented database
US5265221A (en) 1989-03-20 1993-11-23 Tandem Computers Access restriction facility method and apparatus
EP0444358B1 (en) * 1990-02-27 1998-08-19 Oracle Corporation Dynamic optimization of a single relation access
US5748899A (en) 1990-09-07 1998-05-05 Lowry Computer Products, Inc. Method and system for collecting and processing bar code data
JP3258063B2 (ja) * 1992-02-07 2002-02-18 新日鉄ソリューションズ株式会社 データベース検索システム及び方法
US5276901A (en) 1991-12-16 1994-01-04 International Business Machines Corporation System for controlling group access to objects using group access control folder and group identification as individual user
US5428778A (en) 1992-02-13 1995-06-27 Office Express Pty. Ltd. Selective dissemination of information
CA2079351A1 (en) 1992-02-19 1993-08-20 Bruce A. Tate Scaled depiction of information from a database
US5412804A (en) * 1992-04-30 1995-05-02 Oracle Corporation Extending the semantics of the outer join operator for un-nesting queries to a data base
CA2172514C (en) * 1993-09-27 2000-02-22 Gary Hallmark Method and apparatus for parallel processing in a database system
US5581704A (en) * 1993-12-06 1996-12-03 Panasonic Technologies, Inc. System for maintaining data coherency in cache memory by periodically broadcasting invalidation reports from server to client
GB9402935D0 (en) 1994-02-16 1994-04-06 British Telecomm A method for controlling access to a database
CA2138302C (en) 1994-12-15 1999-05-25 Michael S. Fortinsky Provision of secure access to external resources from a distributed computing environment
US5751949A (en) 1995-05-23 1998-05-12 Mci Corporation Data security system and method
JP3738787B2 (ja) 1995-10-19 2006-01-25 富士ゼロックス株式会社 資源管理装置及び資源管理方法
US5999946A (en) * 1996-04-10 1999-12-07 Harris Corporation Databases in telecommunications
US5903898A (en) * 1996-06-04 1999-05-11 Oracle Corporation Method and apparatus for user selectable logging
US5761654A (en) * 1996-06-05 1998-06-02 Oracle Corporation Memory structure and method for tuning a database statement using a join-tree data structure representation, including selectivity factors, of a master table and detail table
US5802523A (en) * 1996-06-21 1998-09-01 Oracle Corporation Method and apparatus for reducing the memory required to store bind variable descriptors in a database
US5870743A (en) * 1996-06-24 1999-02-09 Oracle Corporation Method and apparatus for parallelizing operations that create a table
JP3747525B2 (ja) 1996-08-28 2006-02-22 株式会社日立製作所 並列データベースシステム検索方法
US6212578B1 (en) * 1996-09-09 2001-04-03 Oracle Corporation Method and apparatus for managing dependencies in a distributed computing environment for ensuring the safety of remote procedure calls
US5819256A (en) * 1996-11-20 1998-10-06 Oracle Corporation Method and apparatus for processing count statements in a database system
US5822748A (en) * 1997-02-28 1998-10-13 Oracle Corporation Group by and distinct sort elimination using cost-based optimization
US6067540A (en) * 1997-02-28 2000-05-23 Oracle Corporation Bitmap segmentation
US5848408A (en) * 1997-02-28 1998-12-08 Oracle Corporation Method for executing star queries
US5963935A (en) * 1997-02-28 1999-10-05 Oracle Corporation Combining bitmaps within a memory limit
US6081800A (en) * 1997-02-28 2000-06-27 Oracle Corporation Creating bitmaps from multi-level identifiers
US5884307A (en) * 1997-02-28 1999-03-16 Oracle Corporation Updating bitmapped indexes
US5903888A (en) * 1997-02-28 1999-05-11 Oracle Corporation Method and apparatus for using incompatible types of indexes to process a single query
US5924088A (en) * 1997-02-28 1999-07-13 Oracle Corporation Index selection for an index access path
US5899988A (en) * 1997-02-28 1999-05-04 Oracle Corporation Bitmapped indexing with high granularity locking
US5907297A (en) * 1997-02-28 1999-05-25 Oracle Corporation Bitmap index compression
US6141656A (en) * 1997-02-28 2000-10-31 Oracle Corporation Query processing using compressed bitmaps
DE69822694T2 (de) * 1997-04-25 2004-08-12 Matsushita Electric Industrial Co., Ltd., Kadoma Verfahren zum prüfgerechten Entwurf, Verfahren zur Prüfsequenzerzeugung und integrierte Halbleiterschaltung
US5963932A (en) * 1997-04-29 1999-10-05 Oracle Corporation Method and apparatus for transforming queries
US5842220A (en) * 1997-05-02 1998-11-24 Oracle Corporation Methods and apparatus for exposing members of an object class through class signature interfaces
US5875445A (en) * 1997-05-29 1999-02-23 Oracle Corporation Performance-related estimation using pseudo-ranked trees
US5956704A (en) * 1997-06-05 1999-09-21 Oracle Corporation Method and apparatus for parallelizing operations that insert data into an existing data container
US5937409A (en) * 1997-07-25 1999-08-10 Oracle Corporation Integrating relational databases in an object oriented environment
US6026391A (en) * 1997-10-31 2000-02-15 Oracle Corporation Systems and methods for estimating query response times in a computer system
US6691118B1 (en) * 1997-10-31 2004-02-10 Oracle International Corporation Context management system for modular software architecture
US6275830B1 (en) * 1998-03-18 2001-08-14 Oracle Corporation Compile time variable size paging of constant pools
US6167517A (en) * 1998-04-09 2000-12-26 Oracle Corporation Trusted biometric client authentication
US6341281B1 (en) * 1998-04-14 2002-01-22 Sybase, Inc. Database system with methods for optimizing performance of correlated subqueries by reusing invariant results of operator tree
US6182277B1 (en) * 1998-04-15 2001-01-30 Oracle Corporation Methods and apparatus for declarative programming techniques in an object oriented environment
US6134559A (en) * 1998-04-27 2000-10-17 Oracle Corporation Uniform object model having methods and additional features for integrating objects defined by different foreign object type systems into a single type system
EP0961210A1 (en) * 1998-05-29 1999-12-01 Xerox Corporation Signature file based semantic caching of queries
US6163858A (en) * 1998-06-08 2000-12-19 Oracle Corporation Diagnostic methodology for debugging integrated software
US6138120A (en) * 1998-06-19 2000-10-24 Oracle Corporation System for sharing server sessions across multiple clients
US6510504B2 (en) * 1998-06-29 2003-01-21 Oracle Corporation Methods and apparatus for memory allocation for object instances in an object-oriented software environment
US6219666B1 (en) * 1998-07-13 2001-04-17 Oracle Corporation Autonomous transactions in a database system
US7228300B2 (en) 1998-10-05 2007-06-05 Oracle International Corporation Caching the results of security policy functions
US6578037B1 (en) 1998-10-05 2003-06-10 Oracle Corporation Partitioned access control to a database
US6487552B1 (en) * 1998-10-05 2002-11-26 Oracle Corporation Database fine-grained access control
US6813617B2 (en) 1998-10-05 2004-11-02 Oracle International Corporation Dynamic generation of optimizer hints
US6304974B1 (en) * 1998-11-06 2001-10-16 Oracle Corporation Method and apparatus for managing trusted certificates
US6496819B1 (en) 1998-12-28 2002-12-17 Oracle Corporation Rewriting a query in terms of a summary based on functional dependencies and join backs, and based on join derivability
US6477525B1 (en) * 1998-12-28 2002-11-05 Oracle Corporation Rewriting a query in terms of a summary based on one-to-one and one-to-many losslessness of joins
US6321238B1 (en) * 1998-12-28 2001-11-20 Oracle Corporation Hybrid shared nothing/shared disk database system
US6341340B1 (en) * 1998-12-28 2002-01-22 Oracle Corporation Transitioning ownership of data items between ownership groups
US5991754A (en) * 1998-12-28 1999-11-23 Oracle Corporation Rewriting a query in terms of a summary based on aggregate computability and canonical format, and when a dimension table is on the child side of an outer join
US6370522B1 (en) * 1999-03-18 2002-04-09 Oracle Corporation Method and mechanism for extending native optimization in a database system
US6351742B1 (en) * 1999-03-18 2002-02-26 Oracle Corporation Method and mechanism for database statement optimization
US6529885B1 (en) * 1999-03-18 2003-03-04 Oracle Corporation Methods and systems for carrying out directory-authenticated electronic transactions including contingency-dependent payments via secure electronic bank drafts
US6401083B1 (en) * 1999-03-18 2002-06-04 Oracle Corporation Method and mechanism for associating properties with objects and instances
US6487641B1 (en) * 1999-04-19 2002-11-26 Oracle Corporation Dynamic caches with miss tables
US6314419B1 (en) * 1999-06-04 2001-11-06 Oracle Corporation Methods and apparatus for generating query feedback based on co-occurrence patterns
US6418430B1 (en) * 1999-06-10 2002-07-09 Oracle International Corporation System for efficient content-based retrieval of images
US6466931B1 (en) * 1999-07-30 2002-10-15 International Business Machines Corporation Method and system for transparently caching and reusing query execution plans efficiently
US6601071B1 (en) * 1999-08-04 2003-07-29 Oracle International Corp. Method and system for business to business data interchange using XML
US6549916B1 (en) * 1999-08-05 2003-04-15 Oracle Corporation Event notification system tied to a file system
US6665684B2 (en) 1999-09-27 2003-12-16 Oracle International Corporation Partition pruning with composite partitioning
US6609131B1 (en) * 1999-09-27 2003-08-19 Oracle International Corporation Parallel partition-wise joins
US7093137B1 (en) 1999-09-30 2006-08-15 Casio Computer Co., Ltd. Database management apparatus and encrypting/decrypting system
US6493710B1 (en) * 1999-10-04 2002-12-10 Oracle Corporation Method and apparatus for reducing costs associated with manipulating data
JP4552242B2 (ja) * 1999-10-06 2010-09-29 株式会社日立製作所 仮想表インタフェースと該インタフェースを用いた問合せ処理システム及び方法
US6484179B1 (en) * 1999-10-25 2002-11-19 Oracle Corporation Storing multidimensional data in a relational database management system
US6546382B1 (en) * 1999-11-03 2003-04-08 Oracle Corporation Finding the TOP N values through the execution of a query
US6421666B1 (en) * 1999-11-08 2002-07-16 Oracle Corporation Mechanism for sharing ancillary data between a family of related functions
US6684203B1 (en) * 1999-11-08 2004-01-27 Oracle International Corporation Using global temporary tables to transform queries
US6430550B1 (en) * 1999-12-03 2002-08-06 Oracle Corporation Parallel distinct aggregates
US6546394B1 (en) * 1999-12-28 2003-04-08 Oracle International Corporation Database system having logical row identifiers
US6658405B1 (en) 2000-01-06 2003-12-02 Oracle International Corporation Indexing key ranges
US6671715B1 (en) 2000-01-21 2003-12-30 Microstrategy, Inc. System and method for automatic, real-time delivery of personalized informational and transactional data to users via high throughput content delivery device
US6457020B1 (en) * 2000-03-20 2002-09-24 International Business Machines Corporation Query optimization using a multi-layered object cache
US20020001307A1 (en) * 2000-05-20 2002-01-03 Equipe Communications Corporation VPI/VCI availability index
US6332198B1 (en) * 2000-05-20 2001-12-18 Equipe Communications Corporation Network device for supporting multiple redundancy schemes
US6986060B1 (en) 2000-05-23 2006-01-10 Oracle International Corp. Method and apparatus for sharing a security context between different sessions on a database server
ATE373272T1 (de) * 2000-07-13 2007-09-15 Oracle Int Corp Durchführung von kalkulationen des tabellenkalkulationstyps in einem datenbanksystem
US6684207B1 (en) * 2000-08-01 2004-01-27 Oracle International Corp. System and method for online analytical processing
US6622138B1 (en) * 2000-09-06 2003-09-16 Oracle International Corporation Method and apparatus for optimizing computation of OLAP ranking functions
US6581055B1 (en) * 2000-09-11 2003-06-17 Oracle International Corporation Query optimization with switch predicates
US20020095405A1 (en) 2001-01-18 2002-07-18 Hitachi America, Ltd. View definition with mask for cell-level data access control
US7162467B2 (en) * 2001-02-22 2007-01-09 Greenplum, Inc. Systems and methods for managing distributed database resources
US6691099B1 (en) * 2001-05-31 2004-02-10 Oracle International Corporation Method and system for histogram determination in a database
US6732085B1 (en) * 2001-05-31 2004-05-04 Oracle International Corporation Method and system for sample size determination for database optimizers
US6741997B1 (en) * 2001-06-14 2004-05-25 Oracle International Corporation Instantiating objects in distributed database systems
GB2378534B (en) * 2001-08-03 2003-08-20 Oracle Corp SQL execution analysis
JP2003108561A (ja) * 2001-09-28 2003-04-11 Kawasaki Steel Systems R & D Corp データベース検索システム
US6615206B1 (en) 2001-09-28 2003-09-02 Oracle International Corporation Techniques for eliminating database table joins based on a join index
WO2003038669A1 (en) 2001-11-01 2003-05-08 Sun Microsystems, Inc. Directory request caching in distributed computer systems
US6738762B1 (en) * 2001-11-26 2004-05-18 At&T Corp. Multidimensional substring selectivity estimation using set hashing of cross-counts
US7152048B1 (en) * 2002-02-07 2006-12-19 Oracle International Corporation Memphis: multiple electronic money payment highlevel integrated security
US7337226B2 (en) 2002-05-10 2008-02-26 Oracle International Corporation Method and mechanism for implementing dynamic sizing of session pools
US7103608B1 (en) * 2002-05-10 2006-09-05 Oracle International Corporation Method and mechanism for storing and accessing data
US7035846B2 (en) * 2002-09-23 2006-04-25 International Business Machines Corporation Methods, computer programs and apparatus for caching directory queries
US20040064441A1 (en) * 2002-09-27 2004-04-01 Tow Daniel S. Systems and methods for providing structured query language optimization
US7320010B2 (en) * 2002-11-18 2008-01-15 Innopath Software, Inc. Controlling updates of electronic files
US20040139043A1 (en) 2003-01-13 2004-07-15 Oracle International Corporation Attribute relevant access control policies
US7194451B2 (en) * 2004-02-26 2007-03-20 Microsoft Corporation Database monitoring system
US7158966B2 (en) * 2004-03-09 2007-01-02 Microsoft Corporation User intent discovery

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003150419A (ja) * 2001-11-14 2003-05-23 Hitachi Ltd データベース管理システムの実行情報を取得する手段を有する記憶装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017130236A (ja) * 2011-05-02 2017-07-27 アビニシオ テクノロジー エルエルシー データクエリの管理
JP2017037532A (ja) * 2015-08-11 2017-02-16 日本電信電話株式会社 データキャッシュ方法、ノード装置及びプログラム
US11461304B2 (en) 2015-10-14 2022-10-04 DataRobot, Inc. Signature-based cache optimization for data preparation
JP6072334B1 (ja) * 2016-06-09 2017-02-01 株式会社Cygames 情報処理システム及び方法、並びにプログラム
JP2017220102A (ja) * 2016-06-09 2017-12-14 株式会社Cygames 情報処理システム及び方法、並びにプログラム
WO2017212714A1 (ja) * 2016-06-09 2017-12-14 株式会社Cygames 情報処理システム及び方法、並びにプログラム
US10990591B2 (en) 2016-06-09 2021-04-27 Cygames, Inc. Sub-query processing system, method, and program
WO2022079856A1 (ja) * 2020-10-15 2022-04-21 日本電信電話株式会社 データ処理装置、データ処理方法及びデータ処理プログラム

Also Published As

Publication number Publication date
JP4856627B2 (ja) 2012-01-18
US7676453B2 (en) 2010-03-09
WO2005106717A1 (en) 2005-11-10
AU2005239366A1 (en) 2005-11-10
CA2562281C (en) 2011-11-08
AU2005239366B2 (en) 2010-07-01
CA2562281A1 (en) 2005-11-10
CN100476817C (zh) 2009-04-08
DE602005008030D1 (de) 2008-08-21
HK1094470A1 (en) 2007-03-30
EP1738290B1 (en) 2008-07-09
CN1947118A (zh) 2007-04-11
US20050240570A1 (en) 2005-10-27
EP1738290A1 (en) 2007-01-03

Similar Documents

Publication Publication Date Title
JP4856627B2 (ja) 部分的クエリーキャッシング
US8122008B2 (en) Joining tables in multiple heterogeneous distributed databases
US8396852B2 (en) Evaluating execution plan changes after a wakeup threshold time
US7814091B2 (en) Multi-tiered query processing techniques for minus and intersect operators
CN1755677B (zh) 使用索引关键词的范围搜索系统和方法
US7562073B2 (en) Business object search using multi-join indexes and extended join indexes
US8103658B2 (en) Index backbone join
US8868595B2 (en) Enhanced control to users to populate a cache in a database system
US20110137890A1 (en) Join Order for a Database Query
US6886016B2 (en) Method and system for supporting multivalue attributes in a database system
US8417690B2 (en) Automatically avoiding unconstrained cartesian product joins
CN103810224A (zh) 信息持久化和查询方法及装置
US11762775B2 (en) Systems and methods for implementing overlapping data caching for object application program interfaces
CN102541631B (zh) 以多线程不同驱动源执行计划处理查询的方法和系统
US10033827B2 (en) Scalable management of composite data collected with varied identifiers
US20090063384A1 (en) Method of applying user-defined inference rule using function of searching knowledge base and knowledge base management system therefor
JP2020123320A (ja) インデックスを管理するための方法、装置、設備及び記憶媒体
CN110109951B (zh) 一种关联查询的方法、数据库应用系统及服务器
US20170357697A1 (en) Using adaptors to manage data indexed by dissimilar identifiers
CN106547898A (zh) 一种分布式数据库的数据处理方法及装置
US8478793B2 (en) Virtual pair algorithm for outer join resolution
US20230126509A1 (en) Database management system and method for graph view selection for a relational-graph database
CN111666302A (zh) 用户排名的查询方法、装置、设备及存储介质
KR20190129474A (ko) 데이터 검색 장치 및 방법
CN116795859A (zh) 数据分析方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110331

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110916

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: 20111025

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: 20111028

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

Free format text: PAYMENT UNTIL: 20141104

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4856627

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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