JP4246623B2 - パーティションが設けられたデータベースオブジェクトに対する照会の応答時間を改善するための方法およびシステム - Google Patents

パーティションが設けられたデータベースオブジェクトに対する照会の応答時間を改善するための方法およびシステム Download PDF

Info

Publication number
JP4246623B2
JP4246623B2 JP2003500785A JP2003500785A JP4246623B2 JP 4246623 B2 JP4246623 B2 JP 4246623B2 JP 2003500785 A JP2003500785 A JP 2003500785A JP 2003500785 A JP2003500785 A JP 2003500785A JP 4246623 B2 JP4246623 B2 JP 4246623B2
Authority
JP
Japan
Prior art keywords
rows
partition
query
partitions
results
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.)
Expired - Lifetime
Application number
JP2003500785A
Other languages
English (en)
Other versions
JP2004528660A (ja
JP2004528660A5 (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 JP2004528660A publication Critical patent/JP2004528660A/ja
Publication of JP2004528660A5 publication Critical patent/JP2004528660A5/ja
Application granted granted Critical
Publication of JP4246623B2 publication Critical patent/JP4246623B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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/24532Query optimisation of parallel 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/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access
    • 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/99937Sorting

Description

背景および概要
この発明は、コンピュータシステムの分野に関する。特に、この発明は、パーティションが設けられたデータベースオブジェクトを伴う照会を実行するための応答時間を改善するための方法およびシステムに関する。
データベース管理システムは、コンピュータに基づいたシステムであり、情報を管理し、記憶する。多くのデータベースシステムでは、ユーザは、データベース維持の責任を負うデータベースアプリケーションに対してコマンドをサブミットすることによって、情報を記憶、更新および検索する。従来のクライアント−サーバアーキテクチャでは、ユーザはクライアントステーションに位置し、データベースアプリケーションはサーバにある。インターネットが広く使用される現在では、多層データベースアーキテクチャが一般的である。多層システムに対する1つの方法では、ユーザは、ユーザステーションにあるユーザインターフェイス(たとえば、ウェブブラウザ)を通じてアクセスを与えられ、ユーザインターフェイスは、情報の要求を中間層のサーバ(たとえば、ウェブサーバ)に送り、ウェブサーバは、1つまたは複数のバックエンドデータベースサーバからのデータの検索およびパッケージングを行なう。パッケージングされた情報「ページ」は、ユーザインターフェイスに送られ、ユーザに表示される。
コンピュータハードウェアシステムおよびソフトウェアシステムが進歩するにつれ、データベースシステムによって管理されるデータの量は急速に増えている。カリフォルニア州レッドウッドシャーのオラクル・コーポレイション(Oracle Corporation)のOracle 8i製品などの現在入手可能なデータベースシステムは、コンピュータからの何テラバイトものデータをサポートすることができる。
大量のデータを有するデータベースを実現することの欠点は、他の点はすべて等しいとして、大きなデータのセットに対する照会は、通常、小さなデータのセットに対する照会よりも応答時間が低下することである。データベースの照会を実行するための1つの方法では、データベース内の関連するデータ(または、関連するインデックス)の全体を処理して、照会に対する応答する返答を生成する。大きなデータのかたまりに対する照会の応答時間の低速化は、データベース照会を満たすためにアクセスされる大量のデータによるものであり得る。大きなデータベースが普及するにつれ、これら大きなデータベースを照会しようとするユーザに大きなレベルの遅延が発生するだろう。これらの遅延は、大きなデータベースシステムを使用する組織をいらいらさせるような遅延および非効率のもととなり得る。
この問題の例は、典型的なインターネットサーチエンジンに存在する。インターネットサーチエンジンは、ウェブサイトのサーチ可能なデータベースを維持しており、これはさまざまな方法でインデックスをつけることができる。近年、インターネットウェブサイトの数は爆発的に増加しており、それに対応してインターネットサーチエンジンによって維持されかつサーチされるウェブサイトのデータの量も増加している。サーチ要求を満たすためにサーチしなければならない大きなデータのセットのため、サーチエンジンによってユーザに結果を返す前にますます大きな遅延が生じ得る。多くのサーチエンジンは、(た
とえば、サーチされる語がウェブサイトに現われる回数に基づいて)サーチ結果に対してソート動作を行なうので、サーチ結果を確実に正しく配列するために、何らかの結果をユーザに与える前に、サーチエンジンによって維持される大きな情報のかたまり内の応答するデータのすべてを検索しかつソートしなければならない。これは、サーチエンジンによって返されるn番目のページにしばしば現われる有用性の低い情報ではなく、サーチ結果の最初の数ページからの最も関連性の高い情報を見たいだけのユーザにとっては苛立たしいことである。
照会は、パーティションが設けられたデータベースオブジェクトにアクセスしようとすることがある。データベースシステムにおいてパーティションを設けることは、一般に、あるオブジェクトをより多くの比較的小さなオブジェクトに分解するプロセスを指す。小さなオブジェクトは、大きなオブジェクトよりも管理が容易でかつ効率的にサーチできることが多い。したがって、データベースシステムは、パーティションを設けるステップを使用して、テーブルおよびインデックスなどのオブジェクトをより小さくかつより管理しやすい部分または「パーティション」に分解する。
この発明は、パーティションが設けられたデータベースオブジェクトに対して実行される照会の応答時間を改善するための方法およびメカニズムを提供する。この発明の1つの開示される実施例は、特に、パーティションが設けられたデータベーステーブルの複数のパーティションにわたって結果の相対的な序列化または配列が計算されることを伴う照会に利用することができる。パーティションが設けられたオブジェクトでの述語の評価は、通常、1つのパーティション上での繰返しを伴うため、そのような照会の評価は、通常、データを検索、記憶かつソートするために大きなオーバーヘッドを要し、すべてのパーティションが処理されるまで照会の結果をブロックすることから生じる遅延を要する。この発明のある実施例は、パーティションを通る各パスの間にパーティションの部分のみにアクセスして、パーティションの検索された部分のみを処理し、照会に対する結果を即座に返すことによって、この問題に対処する。これらステップは、照会を満たすために必要とされるすべての結果が与えられるまで繰返される。この発明の局面、目的および利点のさらなる詳細は、詳細な説明、図面および請求の範囲で説明する。
添付の図面は、この発明の理解を深めるためのものであり、詳細な説明とともに、この発明の原理を説明する。
詳細な説明
この発明を具体的な実施例を参照して説明する。しかしながら、この発明の幅広い精神および範囲から離れることなく、さまざまな変形および変更を行ない得ることは明白であろう。読者には、プロセスフロー図に示されるプロセス動作の具体的な配列および組合せならびにここに記載される構成要素図のシステム構成要素は単に例示的なものであり、この発明はプロセス動作および構成要素の異なるかまたは付加的な組合せ/配列を使用して実現可能であることを理解されたい。たとえば、この発明は、パーティションが設けられたデータベーステーブルに関して特に示されているが、この発明の原則は他のタイプのパーティションが設けられたデータベースオブジェクトに対しても等しく適用可能であることに注意されたい。したがって、明細書および図面は、限定的な意味ではなく、例示的な意味のものと理解されたい。
この発明の開示される1つの実施例は、パーティションが設けられたデータベーステーブルに対して実行される照会の応答時間を改善するための方法およびメカニズムを提供し、パーティションが設けられたデータベーステーブルの複数のパーティションにわたって
結果の相対的な序列化または配列が計算されることを伴う照会に特に適用可能である。パーティションが設けられたテーブルでの述語の評価には、通常、1つのパーティション上での繰返しを伴うため、そのような照会の評価は、通常、データを検索、記憶かつソートするために大きなオーバーヘッドを要し、すべてのパーティションが処理されるまで照会の結果をブロックすることによる遅延を要する。この発明の一実施例は、パーティションの部分にのみアクセスし、パーティションの検索された部分のみを処理し、照会に対して即座に結果を返すことによって、この問題に対処する。
図1は、この発明のある実施例による照会を実行するためのプロセスのフローチャートである。102では、プロセスは、パーティションが設けられたデータベーステーブル内のデータをサーチする好適な照会を受取る。上述のように、データベースシステムにおいてパーティションを設けることは、一般に、あるオブジェクトをより多くの比較的小さなオブジェクトに分解するプロセスを指す。
照会を満足させるためにアクセスされるべきパーティションが識別される(103)。一実施例では、照会に応答する情報を含む可能性のある各関連のパーティションが、サーチされなくてはならないパーティションとして識別される。関連する情報を含まない他のすべてのパーティションは、サーチから「取除く」ことができる。またはこれに代えて、特定のパーティションの照会語に対する関連性に関わりなく、すべてのパーティションをサーチして、照会を実行することもできる。
このプロセスは、まず各パーティションから、指定された数の応答する行のみを検索し、各パーティションは、総当たりでアクセスされる(すなわち、第1のパーティションからn行を検索し、次に、第2のパーティションから別のn行を検索する等)(104)。実質的に、照会は、まず各パーティションの部分に対してのみ実行され、各パーティションに対する結果の最初のセットは、そのパーティションの応答する行の小さなサブセットのみを含んでもよい。他のアクセス手順も使用可能である。たとえば、パーティションは、総当たりでない方法でのソート/併合プロセスでアクセス可能であり、ある数の行があるパーティションから検索され、併合されるが、他のパーティションからはまだ消費されていない。さらに、パーティションには並行してアクセスすることが可能であり、拡張性が向上する。結果の最初のセットがパーティションから返され、これらはグループとして調べられる(106)。結果のグループ全体が調べられ、どの行を照会の応答の最初のセットとしてユーザに即座に出力すべきかを判定する。
結果の最初のグループから、行の一部が即座にユーザに与えられる(110)。したがって、各パーティションのある部分にのみアクセスした後に、ユーザに照会の応答の第1のセットを与えることができるため、何らかの結果が返される前にすべてのパーティションを完全に照会することを必要とするシステムと比較して、情報をユーザに表示するための応答時間が大幅に改善される。
次に、このプロセスは照会を十分に満たすためにさらに多くの行を検索しなければならないかを判定する(108)。もしそうであれば、上述のステップが繰返され、別の指定された数の応答する行が各パーティションから検索され(104)、すべてのパーティションからの結果がグループとして調べられ(106)、結果の次のセットが即座にユーザに与えられる(110)。ある実施例では、以前に検索された行は、ユーザに与えるべき特定の照会の結果の行を識別するために、検索された行の新しいグループに併合される。これらプロセス動作は、照会を満たすためにパーティションから行が検索されなくなるまで繰返される。
一実施例では、1つまたは複数のパーティションをサーチから取除くことができると認
められたときは、たとえプロセスの最中であっても、照会するために識別されたパーティションのリストを変更することができる(112および114)。たとえば、これは、あるパーティションから検索された行の最初のセットによって、そのパーティションが照会を満たすのに必要な行を含まないことが明らかであるときに行なわれ得る。
例示的な実施例
この発明をさらに詳しく説明するため、図2aの給与のテーブル200に示される例としてのデータベーステーブルを参照する。給与のテーブル200は、ユーザ識別の値を記憶するための第1の列202、および各対応するユーザ識別についての給与情報を記憶するための第2の列204を有するデータベーステーブルである。多くの理由から、給与のテーブル200を複数のパーティションに分解することが望ましい場合があり得る。たとえば、給与のテーブル200が非常に多数の行を含む場合、給与のテーブル200を複数のより小さいパーティションに記憶すれば、メンテナンス動作をより効率よく行なうことができる。さらに、照会がパーティションのサブセットにのみ存在する情報を求めている場合、関連する情報を含まないパーティションのすべてを照会の実行から取除けば照会の効率が向上する。
図2bは、図2aの給与のテーブル200に行ない得るパーティションを設ける手法の例を示す。パーティションを設けるこの手法では、「パーティションを設ける基準」が確立され、これが各行のユーザ識別の値の最初の文字に基づいて給与のテーブル200のデータを分離する。「a」の文字で始まるユーザ識別の値を有する給与のテーブル200のすべての行は、第1のパーティションp1に記憶される。同様に、「b」の文字で始まるユーザ識別の値を有する給与のテーブル200のすべての行は、第2のパーティションp2に記憶され、「c」の文字で始まるユーザ識別の値を有するすべての行は、第3のパーティションp3に記憶される。
1つまたは複数のローカルインデックスを各パーティションに関連づけてもよい。一実施例では、ローカルインデックスは、パーティションが設けられたある特定のテーブル内のデータに関連づけられるパーティションが設けられたインデックスである。ローカルインデックスに対してパーティションを設ける基準は、通常、パーティションが設けられたテーブルに対するものと同じである。たとえば、インデックス210は、パーティションp1の給与の列の値にインデックスをつけるために存在してもよい。多くの種類のインデックスは、インデックスによって参照される情報にソートされた配列を与える。したがって、インデックス210は、パーティションp1内の対応する行の給与の列の値に基づいてインデックスのエントリがソートされるように構成してもよい。ローカルのインデックス210を設けるには、B*ツリーインデックス構成など好適なインデックス構成であればどのようなインデックス構成を使用してもよい。ローカルインデックス210は、図2bに示され、インデックスのエントリは、パーティションp1の行に対するソートされた配列に対応し、各行の給与の列の値によって配列されている。類似のローカルインデックス212および214が、パーティションp2およびp3に対してそれぞれ示される。
(structure query langrage または「SQL」での)次の照会が給与のテーブル200に対して行なわれた場合を考える。
SELECT *
FROM Salary_Table
ORDER BY salary
WHERE rownum<5
この照会は、テーブルの給与の列の値に基づいて行が記憶されている給与のテーブル200の上位4つの行を要求する。
この照会を行なう従来の方法では、パーティションp1、p2およびp3のすべてからのすべての行が検索され、ソートされて、一時的な結果のセットができる。一時的な結果のセットの最初の4つの行が照会に対する最終的な出力結果として返される。この方法は、たとえ照会を満たすのに上位4つの行のみが実際に必要とされる場合でも、すべてのパーティションのすべての行の結果を処理することを必要とするという点で、性能および拡張性に深刻な問題がある。給与のテーブル200が多数の行を含んでいる場合、データを検索しかつ検索されたデータを記憶するオーバーヘッドは大きなものとなり得る。さらに、一時的な結果のセット内の大量の行をソートするためにかなりの量のオーバーヘッドが消費される。また、何らかの結果がユーザに返される前に、データの全体量を処理しなければならない場合、照会の応答時間は悪化する。
図3は、この発明の一実施例による、応答時間を改善するためにこの照会をどのように処理するかの図である。図3の列は、左から右に向かって、上述の照会を処理するために行なわれるステップの進行を示す。
列302では、指定された数の行が各パーティションから検索される。各パーティションから検索される行の数は、この発明が向けられる具体的な用途によって変わる。結果が生成される粒度(granularity)、最初の結果に必要とされる応答時間、照会を完全に満たすために必要となり得るパスの数、あるパーティションから所与の行または行のセットを識別する/検索するのに伴うオーバーヘッドの間でバランスをとることができる。各回に多数の行が検索される場合、照会を満たすためにパーティションから必要な行を検索するために必要とされるパスの数は少ないが、結果を与える前に長い遅延が存在し得る。これは、各パスに対して、多数の行を検索し、記憶しかつソートしなければならないためである。しかしながら、各回に検索される行の数が少ないと、照会を満たすための全体のコストが高くなり得る。なぜなら、必要とされる行を十分に検索するのにより多くのパスが必要となることがあり、パーティションからの行を検索、記憶およびソートするためにより多くの動作を行なう中でさらなるオーバーヘッドにつながるためである。パーティションが非常に高度で固定された配列を有する場合、一実施例によると、各回に多数の行を検索することができ、有利である。各ポーリングのラウンドで1つの行のみが検索される場合でも、これは、プロセスからパーティションを取除くべきかを判定するために使用できる有用な情報を提供し得る。その後、後続のパスは、対象とされるパーティションから多数の行を検索できる。またはこれに代えて、最初のポーリングのラウンドで多数の行を検索し、後続のラウンドで少数の行を検索してもよい。一実施例では、異なるパーティションから異なる数の行が選択され得る。最も単純な場合では、各パーティションから検索する行の数は、照会を満たすために返さなくてはならない行の数と等しくてもよく(すなわち、照会が「WHERE rownum<n」の句を含む場合、各行からn行を検索する)、これによって1つのポーリングのラウンドのみを行なった後にプロセスを完了することができる。
図3に示される例では、各パーティションから2つの行が検索される。照会は、給与の値が最も高い給与テーブル200の4つの行を求めているため、パーティションからの各検索は、そのパーティションで最も高い給与の値を有するそれぞれの行を各パーティションから検索することになる。図2bに示されるように、各パーティションp1、p2およびp3は、ローカルインデックス210、212および214にそれぞれ対応する。各ローカルインデックスは、それぞれのパーティションに対する、給与の値に基づくソートされた配列に対応する。したがって、ローカルインデックスを使用して、それらの対応するパーティション内で最も高い給与の値を有する行を容易に識別することができる。
図2bのローカルインデックス210からわかるように、最も高い2つの給与の値の2つのインデックスのエントリ228および229は、パーティションp1の行224およ
び220に対応する。パーティションp2では、ローカルインデックス212を使用して、行232および230がそのパーティションで最も高い給与の値を有すると識別することができる。同様に、ローカルインデックス214を使用して、パーティションp3の中で行248および246が最も高い給与の値を有すると識別することができる。したがって、各識別された行のセットは、図3の列302で行なわれる動作中にパーティションp1、p2およびp3から検索される。
この例は、各パーティションから検索するための特定の行を識別するためにローカルインデックスが使用されるのを示すが、検索するための行を識別するのに他の構造を使用してもよい。検索するための行の識別に各パーティションに対するソートされた配列が必要とされる場合、パーティションに配列の情報を与える何らかの他の構造を使用してもよい。場合によっては、この配列の情報を与えるために動的に構造を構築してもよい。1つの例として、パーティションp1およびp2にローカルインデックスが存在するが、パーティションp3には存在しない場合を考える。照会の実行または最適化の間に、パーティションp3に対するローカルインデックスを動的に構築して、そのパーティションに配列の情報を与えることができる。この新しいローカルインデックスを動的に構築するコスト/効果は、各パーティション内の行の数および照会によって求められる行の数などの既存のシステムの条件によって異なる。またはこれに代えて、p3に対してテーブルスキャンを行なう。
再び図3を参照すると、列304は、各パーティションから検索された行が、ともに併合されかつグループとしてソートされるのを示す。論理的には、給与のテーブル200の各パーティションから最も給与の値が高い2つの行が検索され、検索された行のグループ全体がソートされた場合、そのグループで最も高い給与の値を有する2つの行は、給与テーブル200全体での2つの最も高い給与の値にも対応することになる。したがって、図3の列306に示されるように、最も高い給与の値を有する2つの行を即座にユーザに返すことができる。照会は、最も高い給与の値を有する4つの行を給与テーブル200から要求しているため、必要とされる照会の応答の半分を即座にユーザに与えることができる。
これは、この発明の重要な利点を強調している。従来の方法では、何らかの結果が照会に返される前に、すべてのパーティションのすべての行が検索されかつソートされることが注目される。給与のテーブル200が何千または何百万の行を含む場合、従来の方法の応答時間は大きく悪化する。なぜなら、何らかの結果がユーザに与えられる前に、何千または何百万の行をまず処理しなければならないためである。この例に対してこの発明のこの実施例を使用すると、給与のテーブル200に存在する絶対的な行の数に関わりなく、結果の第1のセットが照会に返される前に、給与のテーブル200から6つの行のみが検索されかつソートされる(行220、224、230、232、246および248)。
一旦結果の第1のセットが照会に返されると、照会を満たすためにさらに多くの行を検索しなければならないかが判定される。ここでは、照会は4つの行が返されることを要求しており、列306の動作で2つの行のみが与えられている。したがって、照会を満たすために給与のテーブル200のパーティションからさらに行が検索される。列308は、ユーザに結果の第1のセットが返された後に残っているすでに検索された行を示す。
さらなる処理からいずれかのパーティションを取除くことが可能かを判定してもよい。ある所与のパーティションが、記述される照会の条件を満たすために検索されかつ返される可能性のある行を含まない場合、そのパーティションはさらなる処理から取除くことができる。ここで、パーティションp3で検索された行は、給与の値「25」および「20」に対応することが注目される。パーティションp3に対するローカルインデックスに基
づくと、パーティションp3の他のすべての行は、これらの値と等しいか、またはそれを下回る給与の値を含むことがわかる。照会を十分に満たすには、給与の値が高いさらに2つの行のみが必要とされ、ユーザ識別A15およびA01(行224および220)に対応する2つの行は、パーティションp3から検索され得るどの行よりも給与の値が高いと識別されているため(まだ返されていない)、パーティションp3から検索される行が照会の結果に影響する可能性はない。したがって、パーティションp3は、さらなる処理から取除いてもよい。
パーティションp2は、さらなる処理から取除けないことに注意されたい。このパーティションが、ユーザ識別A15およびA01(行224および220)に対応する2つの行よりも高い給与の値を有する行を含む可能性があるためである。具体的なシステム構成の設定に応じて、パーティションp1をさらなる処理から取除いてもよい。これは、ローカルインデックス210によって、パーティションp1の他のどの行も行224および220(これらはパーティションp1の中で給与の値が最も高い2つの行である)よりも高い給与の値を有する可能性がないことが明らかなためである。しかしながら、パーティションp1の他の行が行220と同じ給与の値を有する可能性がある(たとえば、行222)。したがって、この発明が向けられる具体的な構成要件に応じて、パーティションp1の処理を続けるようにシステムを構成してもよいし、または、さらなる処理からこのパーティションp1を取除くように構成してもよい。図3の例を示すため、パーティションp1はさらなる処理から取除かれない。
したがって、図3の列310に示されるように、パーティションp1およびp2からさらに2つの行が検索される。検索された行は、各それぞれのパーティションの残りの行で最も高い給与の値に対応する。一実施例によると、各パスで検索する行の数は、最初のパス中に検索される行の数と同じである。またはこれに代えて、検索する行の数は、以前のパスの間に集められた情報または統計に基づいて調整してもよい。行の数を調整する前に検討され得る検討事項の一部は、検索する最初の行の数の選択に関して既に説明した検討事項と類似である。
図3の列312に示されるように、新しく検索された行は、照会結果としてまだ返されていない以前に検索された行に併合され、行のセット全体がグループとしてソートされる。最も高い給与の値を有する2つの行は、給与のテーブル200のすべての残りの行で最も高い給与の値に対応する。したがって、(ユーザ識別A15およびB60を有する)最も高い給与の値を有する2つの行は、列314に示されるように、照会に対する結果の次のセットとして与えられる。合計4つの行が与えられたため、照会は完全に満たされる。
この例では、照会はWHEREの句を含む。この発明は、例としての照会に示される種類のWHEREの句が存在しない場合でも、応答時間を改善するために使用可能であり、性能上の効果が得られる。
この発明は、ユーザに規定されるインデックスおよび補助的な演算子を用いるデータベースシステムにも適用可能である。補助的な演算子は、動作間でデータ(「補助的なデータ」)が共有され得るデータベース演算子のクラスを伴う。1つの方法では、第1の演算子からのデータを記憶するためにコンテクストオブジェクトが規定され、これは後にコンテクストオブジェクト内のデータを共有するために関連の補助的な演算子によって使用可能である。
次の照会が学生のテーブルに対して実行されている場合を考える。
SELECT *
FROM Students_Table
WHERE contains (resume,‘Biology', 1) and rownum <=100
ORDER BY rank(1);
この例では、contains()関数は、2つのパラメータO1およびO2(O1は「resume」に対応し、O2は「Biology」に対応する)を受入れる演算子である。contains()関数は、O1パラメータによって表わされる実体が、O2パラメータの値のテキストを含むかを示す真偽のフラグを返す。rank()関数は、contains()演算子に対する相対的な重要性の順にさまざまな行を序列化する補助的な演算子である。rank()およびcontains()は、関連する演算子として構成できるため、これら演算子間で共通の補助的なデータにアクセス可能である。したがって、この照会は、WHEREの句内のcontains()演算子/述語に応答する学生のテーブル内の上位100の行を求めている。この学生のテーブルが10のパーティションに分解され、各パーティションにはユーザに規定された好適なインデックスが存在すると仮定する。
データベースシステムにおいてこの種の照会を評価する1つの方法は、各パーティションに対してcontains()演算子を評価し、すべてのパーティションが評価されるまで結果を記憶し、すべてのパーティションについて収集された結果を序列化し、序列化された結果から上位100を返すものである。この方法の欠点は既に詳しく述べたが、たとえ100の行を返せばよい場合でも、すべてのパーティションからの行を検索、記憶かつソートし、すべてのパーティションが処理されるまですべての結果をブロックするために過度にオーバーヘッドを消費することが含まれる。
この発明のある実施例では、サーバは、contains()演算子に加え、rank()演算子の評価を各個々のパーティションへとプッシュダウンし、各パーティションから結果がポーリングされる。これは、rank()の配列で行を返すことのできるインデックスをパーティションで維持することによって実現してもよい。各パーティションは、そのパーティション内で序列化された指定された数の行を返す。サーバはすべてのパーティションをポーリングし、パーティションからそれぞれの結果を収集する。ポーリングの第1のラウンドの後、サーバは結果の行のサブセットをユーザに返すことができ、さらにポーリングを行なうべきかを決定する。もしそうであれば、ポーリングが行なわれ、パーティションから行の別の結果のセットが返される。上述のように、それぞれのポーリングのラウンドが完了した後に、パーティションのサブセットをポーリングから排除することができる。
rank()を評価するコストが比較的高い場合、一実施例によると、各ポーリングのラウンド中に少ない行が検索される。しかしながら、rank()を評価する計算の費用が比較的安い場合、各パス中により多くの行が検索される。たとえば、何らかのシステムでこの種の補助的な演算子を評価することは、外部のコールアウトを必要とし、これは、通常、固有のファンクションコールよりもはるかに高価である。
一実施例では、この発明のプロセスは、この発明の恩恵を受け得る特定の照会を識別し、これら識別された照会にのみこの発明を適用するステップをさらに含む。ある実施例では、そのような照会を識別するために組合せであれ単独であれ使用することのできる特徴の例は次の通りである。(a)合計スループットよりも応答時間について最適化されるべき照会、(b)ソート要素または配列要素を有する(たとえば、「ORDER BY」の句を有する)照会、(c)パーティションが設けられたオブジェクトに対する照会、(d)照会されているパーティションに対して配列情報を与えるためにインデックスまたは他の構成が既に利用可能である、(e)(たとえば、「WHERE rownum<n」の句を使用して)応答の数を制限しようとする照会。
システムアーキテクチャの概要
図4を参照すると、ある実施例では、コンピュータシステム420は、複数の個々のユーザステーション424に接続されるホストコンピュータ422を含む。ある実施例では、ユーザステーション424は各々、1つまたは複数のアプリケーション、すなわちプログラムを記憶しかつ独立して作動させることのできる、たとえば、パーソナルコンピュータ、ポータブルラップトップコンピュータ、または個人用携帯情報端末(「PDA」)などであるがこれらに限らない、好適なデータ端末を含む。図示のため、ユーザステーション424の一部は、ローカルエリアネットワーク(「LAN」)426を介してホストコンピュータ422に接続される。他のユーザステーション424は、公衆交換電話網(「PSTN」)428および/または無線ネットワーク430を介してホストコンピュータ422に遠隔で接続される。
ある実施例では、ホストコンピュータ422はデータ記憶システム431とともに動作し、データ記憶システム431は、ホストコンピュータ422によって容易にアクセス可能なデータベース432を含む。たとえば、中間アプリケーション層(図示せず)を使用して、ユーザステーション424をデータベース432に接続するために多層アーキテクチャを用いてもよいことに注目されたい。代替の実施例では、データベース432はホストコンピュータ上にあり、たとえば、ホストコンピュータのROM、PROM、EPROM、またはその他のメモリチップ、および/またはそのハードディスクに記憶されてもよい。さらに代替の実施例では、データベース432は、1つまたは複数のフロッピー(R)ディスク、フレキシブルディスク、磁気テープ、その他の磁気媒体、CD−ROM、他の光学媒体、パンチカード、紙テープまたはその他の孔のパターンを備えた物理的媒体、またはコンピュータがそこから読取ることのできるその他の媒体から、ホストコンピュータ422によって読取ってもよい。ある代替の実施例では、ホストコンピュータ422は、上述のさまざまな媒体に記憶された2つ以上のデータベース432にアクセス可能である。
図5を参照すると、ある実施例では、各ユーザステーション424およびホストコンピュータ422は、各々、一般的に処理ユニットと称され、一般的なアーキテクチャ505を実現する。処理ユニットは、命令、メッセージおよびデータをまとめて通信しかつ情報を通信するためにバス506またはその他の通信メカニズムを含み、情報を処理するためにバス506に結合された1つまたは複数のプロセッサ507を含む。処理ユニットは、プロセッサ507によって実行されるべき動的なデータおよび命令を記憶するために、バス506に結合されたランダムアクセスメモリ(RAM)またはその他の動的記憶装置などのメインメモリ508も含む。メインメモリ508は、プロセッサ507による命令の実行中に一時的なデータ、すなわち、変数またはその他の中間情報を記憶するために使用してもよい。処理ユニットは、プロセッサ507に対する静的なデータおよび命令を記憶するために、バス506に結合されたリードオンリメモリ(ROM)509またはその他の静的記憶装置をさらに含んでもよい。プロセッサ507に対するデータおよび命令を記憶するために磁気ディスクまたは光ディスクなどの記憶装置510を設け、バス506に結合してもよい。
情報をユーザに表示するために、バス506を介して、ブラウン管(CRT)などであるがこれに限らない表示装置511に処理ユニットを結合してもよい。入力装置512は、英数字および他の列を含み、バス506に結合されて情報およびコマンド選択をプロセッサ507に通信する。別の種類のユーザ入力装置は、マウス、トラックボール、フィンガーパッド、またはカーソルの方向の列などであるがこれらに限らない、カーソル制御513を含み、方向情報およびコマンド選択をプロセッサ507に通信しかつ表示装置511上でのカーソルの動きを制御する。
この発明の一実施例によると、個々の処理ユニットは、メインメモリ508に含まれる
1つまたは複数の命令の1つまたは複数のシーケンスを実行するそれぞれのプロセッサ507によって特定の動作を行なう。そのような命令は、ROM509または記憶装置510などの別のコンピュータの使用可能な媒体からメインメモリ508に読込まれてもよい。メインメモリ508に含まれる命令のシーケンスの実行は、ここに記載されるプロセスをプロセッサ507に行なわせる。代替の実施例では、この発明を実現するため、配線で接続された(hard-wired)回路をソフトウェアの命令の代わりに、またはこれと組合せて使用してもよい。したがって、この発明の実施例は、ハードウェア回路および/またはソフトウェアの特定の組合せに限定されない。
ここで使用される「コンピュータの使用可能な媒体」という言葉は、情報を与えるかまたはプロセッサ507によって使用可能な媒体を指す。そのような媒体は、不揮発性媒体、揮発性媒体および伝送媒体などを含むがこれらに限らない多くの形を取り得る。不揮発性媒体、すなわち、電力がなくても情報を保持することのできる媒体は、ROM509を含む。揮発性媒体、すなわち、電力がないと情報を保持することができない媒体は、メインメモリ508を含む。伝送媒体は、バス506を含むワイヤを含む、同軸ケーブル、銅線および光ファイバを含む。伝送媒体は、搬送波の形、すなわち、周波数、振幅または位相で変調可能な電磁波の形を取って情報の信号を伝送し得る。さらに、伝送媒体は、無線通信中および赤外線データ通信中に生成されるような音波または光波の形も取り得る。
コンピュータの利用可能な媒体の一般的な形は、たとえば、フロッピー(R)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、その他の磁気媒体、CD−ROM、その他の光学媒体、パンチカード、紙テープ、孔のパターンを備えたその他の物理的媒体、RAM、ROM、PROM(すなわち、プログラマブルリードオンリメモリ)、FLASH−EPROMを含むEPROM、その他のメモリチップまたはカートリッジ、搬送波、またはプロセッサ507がそこから情報を検索できるその他の媒体を含む。1つまたは複数の命令の1つまたは複数のシーケンスをプロセッサ507に与えて実行させるには、さまざまな形のコンピュータの使用可能な媒体がかかわり得る。メインメモリ508によって受取られる命令は、任意で、プロセッサ507による実行の前または後に記憶装置510に記憶してもよい。
各処理ユニットは、バス506に結合された通信インターフェイス514も含んでもよい。通信インターフェイス514は、それぞれのユーザステーション524とホストコンピュータ522との間の2方向の通信を提供する。それぞれの処理ユニットの通信インターフェイス514は、命令、メッセージおよびデータを含むさまざまな種類の情報を表わすデータストリームを含む電気信号、電磁気信号または光信号を伝送し受取る。通信リンク515は、それぞれのユーザステーション524およびホストコンピュータ522をリンクさせる。通信リンク515はLAN426であってもよく、この場合、通信インターフェイス514はLANカードであってもよい。またはこれに代えて、通信リンク515はPSTN428であってもよく、この場合、通信インターフェイス514は総合デジタル通信網(ISDN)カードまたはモデムであってもよい。またはこれに代えて、通信リンク515は無線ネットワーク430であってもよい。処理ユニットは、そのそれぞれの通信リンク515および通信インターフェイス514を介して、プログラム、すなわちアプリケーションコードを含むメッセージ、データ、および命令を伝送し受取ることができる。受取られたプログラムコードは、受取られたときにそれぞれのプロセッサ507によって実行してもよいし、および/または記憶装置510またはその他の関連する不揮発性媒体に記憶して後に実行してもよい。このような態様で、処理ユニットは、メッセージ、データおよび/またはプログラムコードを搬送波の形で受取ることができる。
この発明のある実施例による照会を実行するためのプロセスの図である。 例としてのデータベーステーブルの図である。 図2aのデータベーステーブルに適用される例としてのパーティションを設ける手法を表わす図である。 一実施例による照会を実行するためのこの発明の例示的な使用を表わす図である。 この発明を実行可能なシステムアーキテクチャの図である。 この発明を実現可能なシステムアーキテクチャの図である。

Claims (14)

  1. パーティションが設けられたデータベーステーブルに対する照会の応答時間を改善するための方法であって、
    (a) データベーステーブルに向けられた照会を受取るステップを含み、前記データベーステーブルは複数のパーティションを含み、前記方法はさらに、
    (b) 前記照会を満たすために、前記複数のパーティションからパーティションのセットを識別してアクセスするステップと、
    (c) パーティションの前記セットの各パーティションから検索するための指定された数の行を規定するステップとを含み、前記指定された数の行は、パーティションの前記セットからの前記照会に応答する行の合計の数より少なく、前記方法はさらに、
    (d) パーティションの前記セットの各パーティションから前記指定された数の行を検索して結果のセットを形成するステップと、
    (e) 前記結果のセットを調べて前記照会に与えるための1つまたは複数の応答する行を識別するステップと、
    (f) 前記1つまたは複数の応答する行を与えるステップとを含む、方法。
  2. 前記照会は、1つまたは複数の補助的な演算子を含む、請求項1に記載の方法。
  3. ローカルインデックスがパーティションの前記セットの各パーティションに対して存在し、前記ローカルインデックスは、前記指定された数の行を検索するために使用される、請求項1に記載の方法。
  4. 前記ローカルインデックスの少なくとも1つは、ユーザに規定されるインデックスか、またはB*ツリーインデックスであり、対応するパーティション内の行に対してソートされた配列を与え、および/または動的に生成される、請求項3に記載の方法。
  5. 前記結果のセットを調べる動作は、
    前記結果のセットをソートするステップと、
    前記ソートされた結果のセットから1つまたは複数の応答する行を選択するステップと
    を含む、請求項1に記載の方法。
  6. (d)〜(f)は、前記照会によって要求されるすべての行が与えられるまで繰返される、請求項1に記載の方法。
  7. (d)〜(f)の後続の繰返しは、パーティションの前記セット内の各パーティションから検索するために第2の指定された数の行を使用する、請求項6に記載の方法。
  8. (d)〜(f)の後続の繰返し中に1つまたは複数のパーティションを取除くステップをさらに含む、請求項6に記載の方法。
  9. 前記結果のセットは、前記照会を満たすために返さなければならない行の数と等しい、請求項1に記載の方法。
  10. 前記照会は、複数のパーティションにわたってソートするステップを伴い、スループットではなく、改善され最適化された応答時間で識別され、および/または前記照会に対して返されるべき応答する行を制限する、請求項1に記載の方法。
  11. 前記結果のセットを調べる前記動作は、
    後に検索された行を前記結果のセットに併合するステップを含み、前記結果のセットは、以前に検索された行を含む、請求項1に記載の方法。
  12. 前記第2の指定された数の行は、前記指定された数の行とは異なる、請求項7に記載の方法。
  13. ロセッサによって実行されると、パーティションが設けられたデータベーステーブルに対する照会の応答時間を改善するためのプロセスを前記プロセッサに実行させる複数の命令を含むコンピュータプログラムであって、前記プロセスは、請求項1から11のいずれかに記載の方法を含む、コンピュータプログラム。
  14. パーティションが設けられたデータベーステーブルに対する照会の応答時間を改善するためのシステムであって、前記システムは、請求項1から11のいずれかに記載の方法を実現するための手段を含む、システム。
JP2003500785A 2001-05-31 2002-05-28 パーティションが設けられたデータベースオブジェクトに対する照会の応答時間を改善するための方法およびシステム Expired - Lifetime JP4246623B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/872,670 US6795817B2 (en) 2001-05-31 2001-05-31 Method and system for improving response time of a query for a partitioned database object
PCT/US2002/016775 WO2002097675A1 (en) 2001-05-31 2002-05-28 Method and system for improving response time of a query for a partitioned database object

Publications (3)

Publication Number Publication Date
JP2004528660A JP2004528660A (ja) 2004-09-16
JP2004528660A5 JP2004528660A5 (ja) 2006-01-05
JP4246623B2 true JP4246623B2 (ja) 2009-04-02

Family

ID=25360075

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003500785A Expired - Lifetime JP4246623B2 (ja) 2001-05-31 2002-05-28 パーティションが設けられたデータベースオブジェクトに対する照会の応答時間を改善するための方法およびシステム

Country Status (6)

Country Link
US (1) US6795817B2 (ja)
EP (1) EP1395927A4 (ja)
JP (1) JP4246623B2 (ja)
AU (1) AU2002312104B2 (ja)
CA (1) CA2448730A1 (ja)
WO (1) WO2002097675A1 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434567B1 (en) * 1996-07-30 2002-08-13 Carlos De La Huerga Method for specifying enterprise-wide database address formats
CA2363187A1 (en) * 2001-11-19 2003-05-19 Ibm Canada Limited-Ibm Canada Limitee Index sampled tablescan
US6907422B1 (en) * 2001-12-18 2005-06-14 Siebel Systems, Inc. Method and system for access and display of data from large data sets
US7007024B2 (en) * 2002-03-29 2006-02-28 Panasas, Inc. Hashing objects into multiple directories for better concurrency and manageability
US7127463B2 (en) * 2002-04-18 2006-10-24 International Business Machines Corporation Optimization of database network traffic based upon data-use analysis
US7356523B2 (en) * 2002-05-23 2008-04-08 International Business Machines Corporation Dynamic optimization of prepared statements in a statement pool
WO2004021152A2 (en) * 2002-08-30 2004-03-11 Findwhat.Com System and method for pay for performance advertising employing multiple sets of advertisement listings
US20040111388A1 (en) * 2002-12-06 2004-06-10 Frederic Boiscuvier Evaluating relevance of results in a semi-structured data-base system
US20040236724A1 (en) * 2003-05-19 2004-11-25 Shu-Yao Chien Searching element-based document descriptions in a database
US7464070B2 (en) * 2003-07-29 2008-12-09 Hitachi, Ltd. Database query operations using storage networks
US20050171875A1 (en) * 2004-01-30 2005-08-04 Michael Seitz System and method for synchronizing commitment updates
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
US7962489B1 (en) * 2004-07-08 2011-06-14 Sage-N Research, Inc. Indexing using contiguous, non-overlapping ranges
US20060167845A1 (en) * 2005-01-25 2006-07-27 International Business Machines Corporation Selection of optimal plans for FIRST-N-ROW queries
US7725468B2 (en) * 2005-04-08 2010-05-25 Oracle International Corporation Improving efficiency in processing queries directed to static data sets
US20060242119A1 (en) * 2005-04-20 2006-10-26 Bea Systems, Inc. SQL-style filtered rowset
JP4839706B2 (ja) * 2005-07-12 2011-12-21 株式会社日立製作所 データベース管理システムのインデックス運用方法
US20070113031A1 (en) * 2005-11-16 2007-05-17 International Business Machines Corporation Memory management system and method for storing and retrieving messages
US20080222107A1 (en) * 2006-07-21 2008-09-11 Maluf David A Method for Multiplexing Search Result Transmission in a Multi-Tier Architecture
US7831620B2 (en) * 2006-08-31 2010-11-09 International Business Machines Corporation Managing execution of a query against a partitioned database
US20080071744A1 (en) * 2006-09-18 2008-03-20 Elad Yom-Tov Method and System for Interactively Navigating Search Results
US7953083B1 (en) 2006-12-12 2011-05-31 Qurio Holdings, Inc. Multicast query propagation scheme for a peer-to-peer (P2P) network
US7743013B2 (en) * 2007-06-11 2010-06-22 Microsoft Corporation Data partitioning via bucketing bloom filters
US8201171B2 (en) * 2007-06-27 2012-06-12 Microsoft Corporation Adjacent data parallel and streaming operator fusion
US8886803B1 (en) * 2007-09-20 2014-11-11 Qurio Holdings, Inc. Dynamic query response in a distributed network
US7987164B2 (en) * 2008-01-09 2011-07-26 Oracle International Corporation Method and system for speeding up rebuild of user-defined indexes during partition maintenance operations in the database systems
US20100191717A1 (en) * 2009-01-28 2010-07-29 Goetz Graefe Optimization of query processing with top operations
EP2290562A1 (en) * 2009-08-24 2011-03-02 Amadeus S.A.S. Segmented main-memory stored relational database table system with improved collaborative scan algorithm
US20110153650A1 (en) * 2009-12-18 2011-06-23 Electronics And Telecommunications Research Institute Column-based data managing method and apparatus, and column-based data searching method
US8959094B2 (en) * 2010-05-28 2015-02-17 Oracle International Corporation Early return of partial sort results in a database system
US9449045B2 (en) * 2011-04-08 2016-09-20 Sybase, Inc. System and method for enhanced query optimizer search space ordering
US8918436B2 (en) * 2011-12-22 2014-12-23 Sap Ag Hybrid database table stored as both row and column store
IN2013MU02853A (ja) 2013-09-02 2015-07-03 Tata Consultancy Services Ltd
US10108649B2 (en) * 2014-02-25 2018-10-23 Internatonal Business Machines Corporation Early exit from table scans of loosely ordered and/or grouped relations using nearly ordered maps
KR101679838B1 (ko) 2015-04-27 2016-11-25 주식회사 알티베이스 동적 시퀀싱을 수행하는 어레이시퀀서(Array sequencer)를 이용하는 데이터베이스
US10331645B2 (en) * 2015-08-17 2019-06-25 International Business Machines Corporation Data-partitioning for processing loosely ordered relations
US11138230B2 (en) * 2018-03-26 2021-10-05 Mcafee, Llc Methods, apparatus, and systems to aggregate partitioned computer database data
US11468102B2 (en) * 2020-06-05 2022-10-11 Teradata Us, Inc. Optimizing limit queries over analytical functions

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5813000A (en) * 1994-02-15 1998-09-22 Sun Micro Systems B tree structure and method
US5960194A (en) * 1995-09-11 1999-09-28 International Business Machines Corporation Method for generating a multi-tiered index for partitioned data
USRE37965E1 (en) * 1995-09-27 2003-01-07 International Business Machines Corporation Method for localizing execution or subqueries and determining collocation of execution of subqueries in a parallel database
US5710915A (en) * 1995-12-21 1998-01-20 Electronic Data Systems Corporation Method for accelerating access to a database clustered partitioning
US5893104A (en) * 1996-07-09 1999-04-06 Oracle Corporation Method and system for processing queries in a database system using index structures that are not native to the database system
US6510435B2 (en) * 1996-09-02 2003-01-21 Rudolf Bayer Database system and method of organizing an n-dimensional data set
JP3836928B2 (ja) * 1997-02-26 2006-10-25 株式会社日立製作所 データベース処理方法
US6192358B1 (en) 1997-07-10 2001-02-20 Internatioanal Business Machines Corporation Multiple-stage evaluation of user-defined predicates
US6219662B1 (en) 1997-07-10 2001-04-17 International Business Machines Corporation Supporting database indexes based on a generalized B-tree index
US6405198B1 (en) * 1998-09-04 2002-06-11 International Business Machines Corporation Complex data query support in a partitioned database system
US6338056B1 (en) * 1998-12-14 2002-01-08 International Business Machines Corporation Relational database extender that supports user-defined index types and user-defined search
US6401083B1 (en) * 1999-03-18 2002-06-04 Oracle Corporation Method and mechanism for associating properties with objects and instances
US6370522B1 (en) * 1999-03-18 2002-04-09 Oracle Corporation Method and mechanism for extending native optimization in a database system
US6665684B2 (en) * 1999-09-27 2003-12-16 Oracle International Corporation Partition pruning with composite partitioning
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
US6470331B1 (en) * 1999-12-04 2002-10-22 Ncr Corporation Very large table reduction in parallel processing database systems
US6564221B1 (en) * 1999-12-08 2003-05-13 Ncr Corporation Random sampling of rows in a parallel processing database system

Also Published As

Publication number Publication date
US20020184253A1 (en) 2002-12-05
US6795817B2 (en) 2004-09-21
JP2004528660A (ja) 2004-09-16
WO2002097675A1 (en) 2002-12-05
AU2002312104B2 (en) 2008-04-10
CA2448730A1 (en) 2002-12-05
EP1395927A4 (en) 2007-04-25
EP1395927A1 (en) 2004-03-10

Similar Documents

Publication Publication Date Title
JP4246623B2 (ja) パーティションが設けられたデータベースオブジェクトに対する照会の応答時間を改善するための方法およびシステム
AU2002312104A1 (en) Method and system for improving response time of a query for a partitioned database object
US10055461B1 (en) Ranking documents based on large data sets
US7158996B2 (en) Method, system, and program for managing database operations with respect to a database table
US6581055B1 (en) Query optimization with switch predicates
Chu et al. A transaction-based approach to vertical partitioning for relational database systems
CA2511098C (en) Dispersing search engine results by using page category information
US7376649B2 (en) Relevancy-based database retrieval and display techniques
US7567952B2 (en) Optimizing a computer database query that fetches n rows
Yagoubi et al. Massively distributed time series indexing and querying
US6304872B1 (en) Search system for providing fulltext search over web pages of world wide web servers
US8849775B2 (en) Caching web documents in two or more caches
KR100672277B1 (ko) 개인화 검색 방법 및 검색 서버
NO338518B1 (no) Flerregisterbasert informasjonsgjenfinningssystem
US20070016574A1 (en) Merging of results in distributed information retrieval
EP3602351A1 (en) Apparatus and method for distributed query processing utilizing dynamically generated in-memory term maps
Cheung et al. Constructing suffix tree for gigabyte sequences with megabyte memory
US8239394B1 (en) Bloom filters for query simulation
Puppin et al. Tuning the capacity of search engines: Load-driven routing and incremental caching to reduce and balance the load
AU2006279520A1 (en) Ranking functions using a biased click distance of a document on a network
KR20060048940A (ko) 효율적으로 페이지 순위를 계산하는 방법 및 시스템
US20100121847A1 (en) Exploring Large Textual Data Sets Via Interactive Aggregation
Kim et al. Efficient distributed selective search
US6470331B1 (en) Very large table reduction in parallel processing database systems
US7925617B2 (en) Efficiency in processing queries directed to static data sets

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050517

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080527

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080826

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080902

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080926

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081003

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081016

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4246623

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130116

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20130116

Year of fee payment: 4

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

EXPY Cancellation because of completion of term