JP5791149B2 - データベース・クエリ最適化のためのコンピュータで実装される方法、コンピュータ・プログラム、およびデータ処理システム - Google Patents

データベース・クエリ最適化のためのコンピュータで実装される方法、コンピュータ・プログラム、およびデータ処理システム Download PDF

Info

Publication number
JP5791149B2
JP5791149B2 JP2011249258A JP2011249258A JP5791149B2 JP 5791149 B2 JP5791149 B2 JP 5791149B2 JP 2011249258 A JP2011249258 A JP 2011249258A JP 2011249258 A JP2011249258 A JP 2011249258A JP 5791149 B2 JP5791149 B2 JP 5791149B2
Authority
JP
Japan
Prior art keywords
query
predicates
computer
bitwise
predicate
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 - Fee Related
Application number
JP2011249258A
Other languages
English (en)
Other versions
JP2012113706A (ja
Inventor
バイバブ・ムーリダール・カルカーニ
スウェッタ・シン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2012113706A publication Critical patent/JP2012113706A/ja
Application granted granted Critical
Publication of JP5791149B2 publication Critical patent/JP5791149B2/ja
Expired - Fee Related 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/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2448Query languages for particular applications; for extensibility, e.g. user defined types
    • 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/24547Optimisations to support specific applications; Extensibility of optimisers

Landscapes

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

Description

関連出願
本発明は、2010年10月21日に出願された、「QUERY OPTIMIZATION」という題の、本発明の譲受人に譲渡された同時係属の米国特許出願第12/909029号(代理人整理番号IN920100163US1)と類似した主題に関し、その内容を参照によって本願明細書に引用したものとする。
本発明は、クエリ最適化に関し、特に、クエリ最適化を使用してデータ・リポジトリからデータのサブセットを検索することに関する。
データ・リポジトリ、特にデータベースは、コンピュータ化された情報記憶・検索システムである。データベース・クエリは、データベースに記憶されたデータを検索するための一連のコマンド又は節を指す。クエリは、ユーザ、アプリケーション・プログラム、又は遠隔システムから生じ得る。クエリは、データが検索されるデータベース内のテーブル又は列などの特定の位置、複数のテーブルの複数の列の結合方法、および特定のデータ・レコードがクエリ結果セットに含められるために満たされなければならない条件を指定することもある。現在の構造化データは、典型的にはリレーショナル・データベースであり、クエリ言語によって指定される厳格なフォーマットで書かれたクエリを処理する。例えば、広く使用されている構造化クエリ言語(SQL:Structured Query Language)は、多くのリレーショナル・データベースでサポートされている。
ライフサイエンスなど、データベースに依存する分野は多数あり、ますます複雑なデータベースおよびデータベース・クエリが必要とされている。大きなクエリ又は複雑なクエリの実行は、通常、複数のリソースを使用し、研究および関心の対象となってきた。
本発明の実施形態は、データベース・トランザクションを最適化する方法、システム、およびコンピュータ・プログラムを対象にする。したがって、本発明の実施形態は、クエリを受け取る。クエリは、述語のセットを指定し、そのうち最低限数(minimum number)の述語が、クエリが真となるためには満たされる必要がある。このクエリを使用して、コンピュータ可読記憶媒体に記憶されているリポジトリに対する動作が実行される。最低数(minimal number)の述語を満たす結果のセットがレンダリングされる。
コンピュータ・プログラムを対象にする実施形態は、データベース・トランザクションを最適化するためのコンピュータ使用可能コードを含む。この実施形態は、クエリを受け取るためのコンピュータ使用可能コードを含む。クエリは、クエリに提供された述語のセットと、このセットの中で、クエリが真となるために満たされなければならない述語の最低数とを指定する。この実施形態はさらに、クエリを使用する動作を、コンピュータ可読記憶媒体内に記憶されたリポジトリに対して実行するための、コンピュータ使用可能コードを含む。この実施形態は、最低数の述語を満たす結果のセットをレンダリングするためのコンピュータ使用可能コードをさらに含む。
データベース・トランザクションを最適化するデータ処理システムを対象にする実施形態は、コンピュータ使用可能プログラム・コードを記憶する記憶デバイスと、コンピュータ使用可能プログラム・コードを実行するプロセッサとを含む。この実施形態のコンピュータ使用可能プログラム・コードは、クエリに提供された述語のセットと、このセットの中で、クエリが真となるために満たされなければならない述語の最低数とを指定するクエリを受け取るためのコンピュータ使用可能コードと、クエリを使用する動作を、コンピュータ可読記憶媒体に記憶されたリポジトリに対して実行するためのコンピュータ使用可能コードと、最低数の述語を満たす結果のセットをレンダリングするためのコンピュータ使用可能コードとを含む。
データ・リポジトリからデータのサブセットを検索する方法のフローチャートの例示としての実施形態を示す。 リレーショナル・データベースからデータのサブセットを検索するフローチャートの例示としての実施形態を示す。 データ・リポジトリからデータのサブセットを検索するために使用されるコンピュータ・システムの概要の例示としての実施形態を示す。
添付の概略図を参照しながら、単なる例として本発明の実施形態について以下に記載する。
本発明の側面について、本発明の実施形態による方法、装置(システム)およびコンピュータ・プログラムのフローチャート図もしくはブロック図又はその両方を参照して以下に記載する。当然のことながら、フローチャート図もしくはブロック図又はその両方の各ブロック、およびフローチャート図もしくはブロック図又はその両方の複数ブロックの組み合わせは、コンピュータ・プログラム命令により実装可能である。当該コンピュータ・プログラム命令が、マシンを生じるよう、汎用コンピュータ、専用コンピュータ、又はその他のプログラム可能データ処理装置のプロセッサに提供されて、この命令が、コンピュータ又はその他のプログラム可能データ処理装置のプロセッサを用いて実行されて、フローチャートもしくはブロック図又はその両方のブロックもしくは複数ブロックにおいて指定された機能/動作を実装する手段を作り出すようにすることもできる。
本発明の実施形態は、データ・リポジトリからデータのサブセットを検索するためのデータベース・クエリを最適化する方法、システム、およびコンピュータ・プログラムを対象とする。図1は、データ・リポジトリからデータのサブセットを検索するフローチャート100の例示としての実施形態を示す。ステップ110は、クエリの受け取りを示す。クエリが受け取られると、次に、ステップ120において、クエリが解析され、クエリから、クエリ内の述語の総数、およびその動作を実行するのに必要な述語の最低数が判断される。これが判断されると、ステップ130において、このクエリの動作対象のデータ・ソースが特定される。ステップ140において、クエリがそのデータ・ソースに対し実行される。ステップ150において、データ・ソースに対し動作したクエリに基づき、クエリを満たすデータ・サブセットが検索され、ユーザに対してレンダリングされる。
クエリの受け取りは、述語のセットと、所定の閾値とを受け取ることを含み、所定の閾値は、述語のセットから、真である必要のある述語の最低限数を示す。一実施形態において、述語のセットの各述語は、好適には、ビット単位述語パターン(bitwise predicate pattern)として表現され、ビット単位述語パターンのセットが生成されると有利である。必要に応じて、そのビット単位述語パターンおよび複数の論理演算子のセットを使用して、第2のクエリが、本願明細書に引用したものとする関連出願に記載の実施形態の方法で生成される。この複数の論理演算子は、ブール演算子を含む。
実施形態による、第2のクエリを生成するステップは、述語の所定の閾値を使用する。データのサブセットが、クエリを使用してデータ・リポジトリから検索される。第2のクエリの生成はさらに、第1のクエリを使用して、ビット単位述語パターンのセットから妥当なビット単位パターン(bitwise pattern)のセットを特定すること、および複数の論理演算子を使用して妥当なビット単位パターンのセットを構文解析して、論理ビット単位式(logical bitwise expression)を生成すること、および続いてその論理ビット単位式を因数分解することを含む。構文解析および因数分解には、ブール性が使用されることが好ましい。続いて、述語のセットの対応する述語に対する、因数分解された論理ビット単位式のマッピングが作成され、論理述語式(logical predicate expression)が生成される。第2のクエリは、第1のクエリを、論理述語式を使用して変更することによって生成される。一実施形態では、データ・リポジトリは、リレーショナル又はオブジェクト指向データベース内などの構造化データであり、第1のクエリおよび第2のクエリは、どちらも構造化クエリ言語(SQL)クエリである。
実施形態によるクエリは、「ATLEAST」節と、述語のセットから、真である必要がある述語の最低限数を示す、述語の所定の閾値とを含むことが好ましい。例示としての形態において、データのサブセットをデータ・リポジトリから検索する例を、以下に挙げる。データベース・クエリ・オプティマイザは、述語の数を減らしてクエリ・パフォーマンスを最適化することを試みる。なお、SQLクエリは、OR条件で結合された多数の述語を有することがあり、これは、述語の数を減らすことを困難にする。
ビジネス上の決定が前提条件の最低セットを満たすことに基づく、例示としての実施形態が、下記に記載される。
毎年の賞与の配分に関して、5つの条件、すなわち述語のうち、少なくとも3つを満たす従業員が賞与を得られるように基準が設定されている。例示としての述語は、以下の通りである。
1.1又は2+の業績評価(Rating)
2.上司による推薦(Manager_Recom)
3.事業単位利益>3%(BU_profit)
4.その従業員の階級の平均給与よりも給与が低いこと
5.組織に2年超にわたり雇用されている(Current_dt−Join_dt)
従業員データがデータベースに記憶されていると仮定すると、クエリを記述して、前提条件を満たす従業員レコードを得る必要がある。これが、データベース内に記憶されているデータのサブセットである。典型的には、5つの条件のうち少なくとも3つに一致する行をテーブルから選択するクエリが、SQLの「AND」および「OR」節の典型的な組み合わせを使用して記述される。すべてのデータがこの従業員テーブル内で得られると仮定すると、典型的なクエリは以下の通りと考えられる。
Figure 0005791149
上記のクエリから分かるように、このクエリは、いくつかのOR節および多数の述語から成り、従来のSQLでは、こうしたクエリを記述して、当該クエリの述語数を減らす容易な方法はない。こうしたクエリは、記述および処理に時間がかかり、実行にはかなりの量のコンピューティング・リソースを使用する。
本発明の実施形態は、オプティマイザの内部で述語のビット表現を使用し、SQLにおいて述語の数を減らすことを助ける。述語を凝縮させることで、クエリ実行のための処理サイクルを減らす助けとなり、したがってクエリ・パフォーマンスが改善する。例示としての実施形態は、よく研究されているブール性を使用する。
Figure 0005791149
なお、論理「AND」は、「&」又は「*」として表されており、論理「OR」は、「|」又は「+」として表されている。2つの式間に演算子がなければ、「AND」であると想定され、例えば、01(0+1)は、0&1&(0|1)、すなわち0*1*(0+1)と等しい。
下記の事項は、上記の例に関して、および実施形態においてビット単位述語パターンがどのように形成されるかに関して理解されるべきである。各論理述語は、ビットのセットによって表現される。そのようなビットのセットは、本願明細書において、「ビット単位述語パターン」と呼ばれる。各セットが同じ数のビットを有するとよい。各ビット単位述語パターンは、1つのみのビットONを有する。各ビット単位述語パターンは、論理述語の対応するもの1つを一意的に表現する。各ビット単位述語パターンのONである1つのビットによって、その特定のビット単位述語パターンが論理述語のうちのどれを表現するかが示される。
よく研究されたブール代数を使用する例として、A、B、C、D、およびEが、5つの論理式/述語を表現するとする。一度に3つをとる順列は、=10の可能な順列という結果になる。
Figure 0005791149
論理「AND」および論理「OR」演算子を使用して、式においてすべての順列を表現する。
Figure 0005791149
「&」は、論理「AND」を表現し、「|」は、論理「OR」演算子を表現する。ブール代数の分配法則を使用すると、この式を以下のように表現することができる。
Figure 0005791149
この式はさらに、分配法則を適用して次のように表現することができる。
Figure 0005791149
この式は、ビット表現を使用して得ることができる望ましい結果であり、これは、参照によって本願明細書に引用したものとする関連の開示の中に記載されている。
本発明の例示としての実施形態は、このようなクエリに関して新たな節「ATLEAST」をサポートするよう、現在のSQLを拡張する。ATLEAST節の構文は、次の通りとするとよい。
Figure 0005791149
Kは述語の総数であり、Nは満たされなければならない述語の最低限数である。上記に表現されたようなクエリは、いくつかのOR節を備えるクエリと比べて、クエリの記述を簡素化し、より読みやすくもする。例示としての形態において、データベース・オプティマイザは、SQL構文で「ATLEAST」節をサポートするよう変更されるとよい。述語の上記セットに関する第1のクエリは、以下のように記述され得る。
Figure 0005791149
ここで重要なのは、複数の「OR」節を有するクエリが、「ATLEAST」節を有する当該の第1のクエリと実質的に同じであるこということである。ただし、「OR」節はデータベース技術で既にサポートされている一方、「ATLEAST」節は本発明の実施形態である。
本発明の一実施形態によれば、データベース・オプティマイザは、第1のクエリを記述し直し、クエリを最適化して以下のように第2のクエリを生成する。
Figure 0005791149
以下の例は、ビット・フォーマットで複数の述語を表現する実施形態のさらに詳しい説明である。クエリが受け取られる。例示としての第1のクエリは次の通りである。
Figure 0005791149
別の例示としての実施形態では、2つのみの述語AおよびBがSQLクエリにあり、そのうち1つが、SQLが妥当なサブセットを検索するためには真である必要がある場合、従来のSQLクエリは次のようになる。
Figure 0005791149
この従来のSQLクエリは、例示としての「ATLEAST」表現により、次のように記述し直すことができる。
Figure 0005791149
本発明の実施形態は、述語の数が多い場合により優れたパフォーマンスをもたらす。
図2は、リレーショナル・データベースからデータのサブセットを検索する全般的な方法のフローチャート200の例示としての実施形態を示す。なお、フローチャート200は、図2がリレーショナル・データベースであるデータ・リポジトリに関連することを除いては、図1のフローチャート100に似ている。ステップ210では、クエリが、ATLEAST(N,P1,P2....PK)として明確に示されている。Kは述語の総数であり、Nは満たされなければならない述語の最低限数である。ステップ220において、クエリが、設計済みの新しいフォーマットであるかどうかチェックし、フォーマットがOKであれば、そのクエリは、関連のあるリポジトリ230に対して動作し、ステップ240で結果が出力される。
図3は、本発明の様々な実施形態を実装するために使用することができる例示としてのコンピュータ・システム300のブロック図である。一部の実施形態では、コンピュータ・システム300は、図1もしくは図2のいずれか又は両方において記載されたステップを実行するために使用可能である。コンピュータ・システム300は、プロセッサ304を含む。当然のことながら、図3は単一のプロセッサを示すが、当業者には当然のことながら2つ以上のプロセッサが必要に応じて含まれ得る。プロセッサ304は、通信インフラストラクチャ302(例えば、通信バス、クロスオーバ・バー(cross−over bar)、又はネットワーク)に接続され、通信インフラストラクチャ302は、例示としてのコンピュータ・システム300の様々な構成要素間の通信を促進するよう構成されている。様々なソフトウェア実施形態が、この例示としてのコンピュータ・システムに関して記載されている。本明細書を読むと、当該技術分野(単数又は複数)の当業者には、他のコンピュータ・システムもしくはコンピュータ・アーキテクチャ又はその両方を使用して本発明を実装する方法が分かる。
例示としてのコンピュータ・システム300は、ディスプレイ・ユニット310上で表示するために画像、テキスト、およびその他のデータを通信インフラストラクチャ302から(又は図示されていないフレーム・バッファから)転送するよう構成されたディスプレイ・インターフェイス308を含むことができる。コンピュータ・システム300はさらに、ランダム・アクセス・メモリ(RAM:random access memory)とすることができるメイン・メモリ306を含み、二次メモリ312も含むこともできる。二次メモリ312は、例えば、フレキシブル・ディスク・ドライブ、磁気テープ・ドライブ、光ディスク・ドライブなどを表現する、ハード・ディスク・ドライブ314もしくはリムーバブル記憶ドライブ316又はその両方を含むこともできる。リムーバブル記憶ドライブ316は、当業者には周知の方法で、リムーバブル記憶ユニット318に対する読み取りもしくは書き込み又はその両方を行う。リムーバブル記憶ユニット318は、例えば、フレキシブル・ディスク、磁気テープ、光ディスクなどを表現し、これは、リムーバブル記憶ドライブ316によって読み取りおよび書き込みされる。当然のことながら、リムーバブル記憶ユニット318は、コンピュータ・ソフトウェアもしくはデータ又はその両方が記憶されているコンピュータ使用可能記憶媒体を含む。
例示としての実施形態では、二次メモリ312は、コンピュータ・プログラム又はその他の命令がコンピュータ・システムにロードされることを可能にする、他の同様の手段を含むこともできる。そのような手段は、例えば、リムーバブル記憶ユニット322およびインターフェイス320を含むこともできる。そうしたものの例は、プログラム・カートリッジおよびカートリッジ・インターフェイス(ビデオ・ゲーム・デバイスにあるものなど)、リムーバブル・メモリ・チップ(EPROM(erasable programmable read−only memory:消去可能プログラム可能読み取り専用メモリ)又はPROMなど)、ならびに関連するソケット、ならびにソフトウェアおよびデータがリムーバブル記憶ユニット322からコンピュータ・システム300へ転送されることを可能にするその他のリムーバブル記憶ユニット322およびインターフェイス320を含むこともできる。
コンピュータ・システム300はさらに、通信インターフェイス324を含むこともできる。通信インターフェイス324は、コンピュータ・システムと、外部デバイスとの間でのソフトウェアおよびデータの転送を可能にする。通信インターフェイス324の例は、モデム、ネットワーク・インターフェイス(イーサネット(R)カードなど)、通信ポート、PCMCIAスロットおよびカードなどを含むこともできる。さらに、本発明の側面は、コンピュータ可読プログラム・コードが具現化されたコンピュータ・プログラム、当該コンピュータ・プログラムが記憶されたコンピュータ可読媒体の形式をとることもできる。なお、図示しないが、コンピュータ・システム300はさらに、入出力インターフェイスを含むこともできる。入出力インターフェイスは、コンピュータ・システムのユーザからのデータ入力や操作を受け付けるキーボードやマウス、前記ユーザへのデータ出力を行うプリンタ装置などとのデータや命令の通信を可能にする。
各図面のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラムの考えられる実装のアーキテクチャ、機能性および動作を示す。この関連で、フローチャート又はブロック図内の各ブロックは、指定の論理機能(単数又は複数)を実装する1つ以上の実行可能命令を含むモジュール、セグメント、又はコードの一部を表現することもできる。なお、さらに、いくつかの代わりの実装では、ブロック内に示されている機能が、図面に示されているのとは異なる順序で生じてもよい。例えば、関連する機能性次第で、連続して示されている2つのブロックが実際には事実上同時に実行されてもよく、又は、各ブロックが逆順で実行されることがあってもよい。なお、さらに、ブロック図もしくはフローチャート図又はその両方の各ブロック、およびブロック図もしくはフローチャート図又はその両方の複数ブロックの組み合わせは、指定の機能もしくは動作を実行する専用ハードウェア・ベース・システム、又は専用ハードウェアおよびコンピュータ命令の組み合わせにより実装することができる。
当業者であれば当然のことであるが、本発明の側面は、システム、方法又はコンピュータ・プログラムとして具現化され得る。したがって、本発明の側面は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、又は本願明細書においてすべて概して「回路」、「モジュール」もしくは「システム」と呼ばれ得る、ソフトウェアおよびハードウェアの側面を兼ね備えた実施形態の形式をとってもよい。さらに、本発明の側面は、コンピュータ可読プログラム・コードが具現化されたコンピュータ・プログラム、当該コンピュータ・プログラムが記憶されたコンピュータ可読媒体の形式をとることもできる。
さらに、特定の形で機能するようコンピュータ、その他のプログラム可能データ処理装置、又はその他のデバイスに指示することができる当該コンピュータ・プログラム命令は、コンピュータ可読媒体に記憶されて、コンピュータ可読媒体に記憶されたこの命令が、フローチャートもしくはブロック図又はその両方のブロックもしくは複数ブロックにおいて指定された機能/動作を実装する命令を含む製品を生じるようにすることもできる。
さらに、コンピュータ・プログラム命令は、コンピュータ、その他のプログラム可能データ処理装置、又はその他のデバイスにロードされて、コンピュータ、その他のプログラム可能装置、又はその他のデバイス上で一連の動作ステップが実行されるようにしてコンピュータに実装されるプロセスを生じさせ、コンピュータ又はその他のプログラム可能装置上で実行される命令が、フローチャートもしくはブロック図又はその両方のブロックもしくは複数ブロックにおいて指定された機能/動作を実装するためのプロセスを提供するようにすることもできる。
1つ以上のコンピュータ可読媒体(単数又は複数)の任意の組み合わせが利用され得る。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読記憶媒体とされ得る。コンピュータ可読記憶媒体は、例えば、限定はされないが、電子、磁気、光学、電磁気、赤外線、もしくは半導体システム、装置、もしくはデバイス、又は前述のものの任意の適切な組み合わせとすることもできる。コンピュータ可読記憶媒体のより具体的な例(包括的でないリスト)には、1つ以上のワイヤを有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read−only memory)、消去可能プログラム可能読み取り専用メモリ(EPROM又はフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD−ROM:compact disc read−only memory)、光学式記憶デバイス、磁気記憶デバイス又は前述のものの任意の適切な組み合わせが含まれるであろう。この文書の文脈では、コンピュータ可読記憶媒体は、命令実行システム、装置もしくはデバイスによって、又はそれに関連して使用されるプログラムを含むこと、又は記憶することができる任意の有形の媒体であればよい。
コンピュータ可読信号媒体は、例えば、ベースバンドに、又は搬送波の一部として、コンピュータ可読プログラム・コードが具現化された伝播データ信号を含み得る。そのような伝播信号は、限定はされないが、電磁気、光学、又はその任意の適切な組み合わせを含む様々な形式のいずれかをとってよい。こうした伝播信号は、通信インターフェイス324に、通信路(すなわちチャネル)326を介して提供される。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体でなく、命令実行システム、装置もしくはデバイスによって、又はそれに関連して使用されるプログラムを伝達すること、伝播させること、又は搬送することができる、任意のコンピュータ可読媒体としてよい。
コンピュータ可読媒体上に具現化されたプログラム・コードは、限定はされないが、無線、有線、光ファイバ・ケーブル、RFなど、又は前述のものの任意の適切な組み合わせを含む任意の適切な媒体を使用して送られてもよい。
本発明の側面の動作を実行するコンピュータ・プログラム・コードは、Java(R)、Smalltalk(R)、C++又は同様のものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは同様のプログラミング言語などの従来の手続きプログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されていてよい。プログラム・コードは、スタンド・アロン・ソフトウェア・パッケージとして、完全にユーザのコンピュータ上で実行されること、部分的にユーザのコンピュータ上で実行されること、又は部分的にユーザのコンピュータ上で、かつ部分的に遠隔コンピュータ上で実行されること、又は完全に遠隔コンピュータもしくはサーバ上で実行されることもできる。後者のシナリオでは、ローカル・エリア・ネットワーク(LAN:local area network)、もしくは広域ネットワーク(WAN:wide area network)を含む任意のタイプのネットワークを介して遠隔コンピュータがユーザのコンピュータに接続されてもよく、又は、外部コンピュータに接続されてもよい(例えば、インターネット・サービス・プロバイダを使用しインターネットを介して)。
本発明の様々な実施形態の利点には、データ・リポジトリを検索するためのクエリの作成の単純化が含まれる。その他の実施形態の一部の他の利点には、エラーがより起こりにくいクエリ作成が含まれる。本発明の一部の実施形態のその他のいくつかの利点には、限定はされないが中央処理ユニット(CPU:Central Processing Unit)などのコンピューティング・リソースの最適利用が含まれる。本発明は、本発明の一部の特定の実施形態の様々な利点を説明するが、実施形態の教示から当業者には、本発明の利点が上述のものに限られないことが分かる。
本願明細書で使用される専門用語は、特定の実施形態を説明するためのものでしかなく、本発明の限定となることは目的としていない。本願明細書で使用される、単数形「a」、「an」および「the」は、文脈によりそうでないことが明確に示されていない限り、複数形も含むものとする。さらに、当然のことながら、「含む」もしくは「含んでいる」又はその両方の用語は、本明細書で使用されるとき、記載された機能、整数、ステップ、動作、構成要素、もしくはコンポーネント、又はそのいずれかの組み合わせの存在を指定するが、1つ以上の他の機能、整数、ステップ、動作、構成要素、コンポーネント、もしくはそのグループ、又はそのいずれかの組み合わせの存在又は追加を除外するものではない。
本発明の例示としての実施形態について詳しく記載したが、当然のことながら、それに対する様々な変更、置換、交代が、添付の特許請求の範囲によって定義される本発明の意図および範囲から逸脱することなくなされることが可能であろう。本発明の例示としての実施形態に関して記載された変形は、特定の用途それぞれに望ましい任意の組み合わせで実現されることが可能である。したがって、本願明細書に記載された特定の制限もしくは実施形態の拡張又はその両方は、特定の用途に特定の利点があり得、すべての用途に使用される必要はない。さらに、本発明の例示としての実施形態に関して記載された1つ以上の概念を含む制限すべてが、方法、システム、もしくは装置、又はそのいずれかの組み合わせに実装される必要はない。
本願明細書で使用される専門用語は、特定の実施形態を説明するためのものでしかなく、本発明の限定となることは目的としていない。本願明細書で使用される、単数形「a」、「an」および「the」は、文脈によりそうでないことが明確に示されていない限り、複数形も含むものとする。さらに、当然のことながら、「含む」もしくは「含んでいる」又はその両方の用語は、本明細書で使用されるとき、記載された機能、整数、ステップ、動作、構成要素、もしくはコンポーネント、又はそのいずれかの組み合わせの存在を指定するが、1つ以上の他の機能、整数、ステップ、動作、構成要素、コンポーネント、もしくはそのグループ、又はそのいずれかの組み合わせの存在又は追加を除外するものではない。

Claims (10)

  1. データベース・トランザクションを最適化するための、コンピュータで実装される方法であって、
    クエリを受け取るステップであって、前記クエリは、(i)クエリに提供された述語のセットと、(ii)前記クエリが真となるために前記セットの中で満たされなければならない述語の最低数とを指定する、前記受け取るステップと、
    前記クエリに提供された語の前記セット中の語それぞれについてビット単位述語パターンを生成し、前記ビット単位語パターンのセットを形成するステップであって、前記ビット単位述語パターンは、前記述語の対応するもの1つを一意的に表現し、各ビット単位語単位パターンのONである1つのビットによって、特定のビット単位述語パターンが前記述語のうちのどれを表現するかが示される、前記形成するステップと、
    前記ビット単位語パターンの前記セットを使用して論理式を生成することによって前記クエリを最適化するステップと、
    前記最適化されたクエリを、コンピュータ可読記憶媒体に記憶されたポジトリに対して実行するステップと、
    前記最低数の述語を満たす結果のセットをレンダリングするステップと
    を含む、前記方法。
  2. データベース・トランザクションを高速化するための、コンピュータで実装される方法であって、
    前記コンピュータはコンピュータ可読記憶媒体とプロセッサとを備え、
    前記コンピュータが、通信インターフェイス又は入力インターフェイスを介して、前記コンピュータの外部又は内部からクエリを受け取るステップであって、前記クエリは、(i)クエリに提供された述語のセットと、(ii)前記クエリが真となるために前記セットの中で満たされなければならない述語の最低数とを指定する、前記受け取るステップと、
    前記プロセッサが、
    前記クエリに提供された語の前記セット中の語それぞれについてビット単位述語パターンを生成し、前記ビット単位語パターンのセットを形成するステップであって、前記ビット単位述語パターンは、前記述語の対応するもの1つを一意的に表現し、各ビット単位語単位パターンのONである1つのビットによって、特定のビット単位述語パターンが前記述語のうちのどれを表現するかが示される、前記形成するステップと、
    前記ビット単位語パターンの前記セットを使用して論理式を生成することによって前記クエリを最適化するステップと、
    前記最適化されたクエリを、前記コンピュータ可読記憶媒体に記憶されたポジトリに対して実行するステップと、
    前記最低数の述語を満たす結果のセットをレンダリングするステップと
    を含む、前記方法。
  3. 前記クエリは、ATLEAST(N,p1,p2,p3,.....pK)という構造であり、p1〜pKは、前記クエリに提供された述語の前記セットであり、Nは、前記クエリが真となるために満たされなければならない述語の前記最低数である、請求項1又は2に記載の方法。
  4. 述語の前記最低数は、前記クエリが動作するための所定の閾値である、請求項1〜3のいずれか一項に記載の方法。
  5. 前記リポジトリは、構造化データを含む、請求項1〜4のいずれか一項に記載の方法。
  6. 前記クエリは、構造化クエリ言語(SQL)の形式である、請求項1〜5のいずれか一項に記載の方法。
  7. コンピュータに実行されることにより、請求項1〜6のいずれか一項に記載の方法を前記コンピュータに実行させるコンピュータ・プログラム。
  8. データベース・トランザクションを最適化するためのコンピュータ使用可能コードを含んだコンピュータ可読記憶媒体を含むコンピュータ・プログラムであって、前記コンピュータ使用可能コードは、
    クエリを受け取るためのコンピュータ使用可能コードであって、前記クエリは、(i)クエリに提供された述語のセットと、(ii)前記クエリが真となるために前記セットの中で満たされなければならない述語の最低数とを指定する、前記受け取るためのコンピュータ使用可能コードと、
    前記クエリに提供された語の前記セット中の語それぞれについてビット単位述語パターンを生成し、前記ビット単位語パターンのセットを形成するためのコンピュータ使用可能コードであって、前記ビット単位述語パターンは、前記述語の対応するもの1つを一意的に表現し、各ビット単位語単位パターンのONである1つのビットによって、特定のビット単位述語パターンが前記述語のうちのどれを表現するかが示される、前記形成するためのコンピュータ使用可能コードと、
    前記ビット単位語パターンの前記セットを使用して論理式を生成することによって前記クエリを最適化するためのコンピュータ使用可能コードと、
    前記最適化されたクエリを、コンピュータ可読記憶媒体に記憶されたポジトリに対して実行するためのコンピュータ使用可能コードと、
    前記最低数の述語を満たす結果のセットをレンダリングするためのコンピュータ使用可能コードと
    を含む、コンピュータ・プログラム。
  9. データベース・トランザクションを最適化するデータ処理システムであって、
    記憶媒体を含み、コンピュータ使用可能プログラム・コードを記憶する記憶デバイスと、
    前記コンピュータ使用可能プログラム・コードを実行するプロセッサと
    を備えており、
    前記コンピュータ使用可能プログラム・コードは、
    クエリを受け取るためのコンピュータ使用可能コードであって、前記クエリは、(i)クエリに提供された述語のセットと、(ii)前記クエリが真となるために前記セットの中で満たされなければならない述語の最低数とを指定する、前記受け取るためのコンピュータ使用可能コードと、
    前記クエリに提供された語の前記セット中の語それぞれについてビット単位述語パターンを生成し、前記ビット単位語パターンのセットを形成するためのコンピュータ使用可能コードであって、前記ビット単位述語パターンは、前記述語の対応するもの1つを一意的に表現し、各ビット単位語単位パターンのONである1つのビットによって、特定のビット単位述語パターンが前記述語のうちのどれを表現するかが示される、前記形成するためのコンピュータ使用可能コードと、
    前記ビット単位語パターンの前記セットを使用して論理式を生成することによって前記クエリを最適化するためのコンピュータ使用可能コードと、
    前記最適化されたクエリを、コンピュータ可読記憶媒体に記憶されたポジトリに対して実行するためのコンピュータ使用可能コードと、
    前記最低数の述語を満たす結果のセットをレンダリングするためのコンピュータ使用可能コードと
    を含む、前記データ処理システム。
  10. 前記クエリは、ATLEAST(N,p1,p2,p3,.....pK)という構造であり、p1〜pKは、前記クエリに提供された述語の前記セットであり、Nは、前記クエリが真となるために満たされなければならない述語の前記最低数である、請求項9に記載のデータ処理システム。
JP2011249258A 2010-11-19 2011-11-15 データベース・クエリ最適化のためのコンピュータで実装される方法、コンピュータ・プログラム、およびデータ処理システム Expired - Fee Related JP5791149B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/950,156 US9569485B2 (en) 2010-11-19 2010-11-19 Optimizing database query
US12/950156 2010-11-19

Publications (2)

Publication Number Publication Date
JP2012113706A JP2012113706A (ja) 2012-06-14
JP5791149B2 true JP5791149B2 (ja) 2015-10-07

Family

ID=46065319

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011249258A Expired - Fee Related JP5791149B2 (ja) 2010-11-19 2011-11-15 データベース・クエリ最適化のためのコンピュータで実装される方法、コンピュータ・プログラム、およびデータ処理システム

Country Status (3)

Country Link
US (1) US9569485B2 (ja)
JP (1) JP5791149B2 (ja)
CN (1) CN102479255B (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130297586A1 (en) * 2012-05-07 2013-11-07 International Business Machines Corporation Optimizing queries using predicate mappers
CN104216891B (zh) * 2013-05-30 2018-02-02 国际商业机器公司 关系型数据库中的查询语句的优化方法和设备
CN103455573A (zh) * 2013-08-21 2013-12-18 成都云鹰科技有限公司 一种基于逻辑优化的数据库查询优化方法
CN104462095B (zh) * 2013-09-13 2018-06-12 阿里巴巴集团控股有限公司 一种查询语句公共部分的提取方法及装置
CN103646067A (zh) * 2013-12-06 2014-03-19 四川九洲电器集团有限责任公司 一种提高数据库查询效率的方法和***
US10223419B2 (en) * 2015-07-16 2019-03-05 Futurewei Technologies, Inc. System and method for predicate pushdown and partition pruning in a distributed database
CN105183809A (zh) * 2015-08-26 2015-12-23 成都布林特信息技术有限公司 一种云平台数据查询方法
US10162729B1 (en) * 2016-02-01 2018-12-25 State Farm Mutual Automobile Insurance Company Automatic review of SQL statement complexity
CN108170775A (zh) * 2017-12-26 2018-06-15 上海新炬网络技术有限公司 一种数据库sql索引动态优化方法
US11163756B2 (en) * 2019-04-16 2021-11-02 Snowflake Inc. Querying over external tables in database systems

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0462667A (ja) 1990-06-30 1992-02-27 Nippon Telegr & Teleph Corp <Ntt> データベース検索方法
JP4235870B2 (ja) * 2000-09-01 2009-03-11 ソニー株式会社 データ処理装置およびデータ処理方法、復号装置および復号方法、並びに記録媒体
US6665664B2 (en) 2001-01-11 2003-12-16 Sybase, Inc. Prime implicates and query optimization in relational databases
US6968330B2 (en) * 2001-11-29 2005-11-22 International Business Machines Corporation Database query optimization apparatus and method
JP2004220283A (ja) 2003-01-14 2004-08-05 Fujitsu Ltd 抽出方法、抽出装置及びコンピュータプログラム
US7152073B2 (en) 2003-01-30 2006-12-19 Decode Genetics Ehf. Method and system for defining sets by querying relational data using a set definition language
US7111025B2 (en) * 2003-04-30 2006-09-19 International Business Machines Corporation Information retrieval system and method using index ANDing for improving performance
JP4623446B2 (ja) 2004-06-08 2011-02-02 敬史 田島 データ管理プログラムおよびデータ管理システム
US8285739B2 (en) * 2005-07-28 2012-10-09 International Business Machines Corporation System and method for identifying qualifying data records from underlying databases
US7966315B2 (en) * 2005-11-15 2011-06-21 Vmware, Inc. Multi-query optimization
US8732686B2 (en) 2006-06-30 2014-05-20 Intel Corporation Generating optimal instruction sequences for bitwise logical expressions
US8423569B2 (en) 2006-08-09 2013-04-16 International Business Machines Corporation Decomposed query conditions
JP4071816B1 (ja) 2007-03-22 2008-04-02 透 降矢 合成関係演算を利用したマルチオペレーション・プロセッシングを用いたデータベースのクエリー処理システム
US20100005077A1 (en) * 2008-07-07 2010-01-07 Kickfire, Inc. Methods and systems for generating query plans that are compatible for execution in hardware
US7844620B2 (en) * 2007-11-16 2010-11-30 International Business Machines Corporation Real time data replication for query execution in a massively parallel computer
CN101436192B (zh) 2007-11-16 2011-03-16 国际商业机器公司 用于优化针对垂直存储式数据库的查询的方法和设备
US8051069B2 (en) * 2008-01-02 2011-11-01 At&T Intellectual Property I, Lp Efficient predicate prefilter for high speed data analysis
JP5010575B2 (ja) 2008-12-01 2012-08-29 ヤフー株式会社 情報検索装置、検索結果提示方法及びプログラム

Also Published As

Publication number Publication date
US20120130982A1 (en) 2012-05-24
JP2012113706A (ja) 2012-06-14
US9569485B2 (en) 2017-02-14
CN102479255A (zh) 2012-05-30
CN102479255B (zh) 2014-08-20

Similar Documents

Publication Publication Date Title
JP5791149B2 (ja) データベース・クエリ最適化のためのコンピュータで実装される方法、コンピュータ・プログラム、およびデータ処理システム
US11397722B2 (en) Applications of automated discovery of template patterns based on received requests
US20200050968A1 (en) Interactive interfaces for machine learning model evaluations
US10339465B2 (en) Optimized decision tree based models
US9383982B2 (en) Data-parallel computation management
CN104765731B (zh) 数据库查询优化方法和设备
US20150379430A1 (en) Efficient duplicate detection for machine learning data sets
US8417690B2 (en) Automatically avoiding unconstrained cartesian product joins
US20120047125A1 (en) Executing a query plan with display of intermediate results
US9928288B2 (en) Automatic modeling of column and pivot table layout tabular data
US10474675B2 (en) Explain tool for optimizing SPARQL queries
US8489580B2 (en) Query optimization
US10171311B2 (en) Generating synthetic data
US10157234B1 (en) Systems and methods for transforming datasets
US20180365294A1 (en) Artificial intelligence driven declarative analytic platform technology
US11803550B2 (en) Workload-aware column imprints
US11354313B2 (en) Transforming a user-defined table function to a derived table in a database management system
JP2016126788A (ja) 関係型データベース表の列横断的検索
EP3293645B1 (en) Iterative evaluation of data through simd processor registers
US10409871B2 (en) Apparatus and method for searching information
CN112970011B (zh) 记录查询优化中的谱系
CN112970011A (zh) 记录查询优化中的谱系

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140529

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150216

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20150216

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20150216

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20150217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150422

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20150423

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150423

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

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20150721

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20150721

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150731

R150 Certificate of patent or registration of utility model

Ref document number: 5791149

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees