JP2012048332A - データベース処理方法、データベース処理システム及びデータベースサーバ - Google Patents

データベース処理方法、データベース処理システム及びデータベースサーバ Download PDF

Info

Publication number
JP2012048332A
JP2012048332A JP2010187798A JP2010187798A JP2012048332A JP 2012048332 A JP2012048332 A JP 2012048332A JP 2010187798 A JP2010187798 A JP 2010187798A JP 2010187798 A JP2010187798 A JP 2010187798A JP 2012048332 A JP2012048332 A JP 2012048332A
Authority
JP
Japan
Prior art keywords
order
query
list
data
column
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
JP2010187798A
Other languages
English (en)
Other versions
JP5199317B2 (ja
Inventor
Michiko Tanaka
美智子 田中
Kazutomo Ushijima
一智 牛嶋
Akira Shimizu
清水  晃
Seisuke Tokuda
晴介 徳田
Nobuo Kawamura
信男 河村
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2010187798A priority Critical patent/JP5199317B2/ja
Priority to PCT/JP2011/051938 priority patent/WO2012026140A1/ja
Priority to US13/814,976 priority patent/US9348866B2/en
Publication of JP2012048332A publication Critical patent/JP2012048332A/ja
Application granted granted Critical
Publication of JP5199317B2 publication Critical patent/JP5199317B2/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/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations

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)
  • Operations Research (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ソートされたデータの抽出を高速化する。
【解決手段】データを格納するデータベースを管理するデータベース管理システムが実行される計算機において、要求されたデータを出力するデータベース処理方法であって、抽出されたデータを指定した順序で出力する問合せ要求を受け付けるステップと、問合せ要求に基づいて、データを抽出する問合せ実行プランを生成するステップと、問合せ実行プランに基づいて要求されたデータを取得するステップと、取得されたデータを含む中間結果を生成するステップと、生成された中間結果を指定された順序に並び替えるステップと、並び替えられた中間結果の順序が確定したか否かを中間結果ごとに判定するステップと、順序が確定した中間結果を問合せ結果として出力するステップとを含む。
【選択図】図1

Description

本発明は、データベースからデータを抽出する技術に関し、特に、ソートされたデータを抽出する技術に関する。
近年、企業活動に関連する大量のデータ収集ツールが整備され、現場の担当者が蓄積された大量の販売データを使って分析するビジネスデータ分析が普及しつつある。ビジネスデータ分析では、仮説立案・動向分析・要因分析のように段階ごとに分析が進められる。
ビジネスデータ分析では、現場の担当者が試行錯誤をして、いくつもの仮説立案と動向分析を繰り返すため、大量のデータを抽出する必要がある。そのため、このような大量のデータを効率的に処理するためにデータベースによって管理される。
大量のデータを処理するデータベースシステムでは、分析対象のデータを複数の表に格納している。そして、データを抽出する場合には、複数の表に格納されたデータを連結し、分析者が指定した条件を満たすデータを抽出する。
そこで、このようなデータを抽出する処理を高速化するために、データが格納された二次記憶装置(ストレージ装置)にデータ読み出し要求を多重に発行することによってデータの抽出を高速化する可能な非順序型データベース(DB)が開発された(特許文献1参照)。
一方、動向分析では、蓄積された大量のデータから重要な順にデータを抽出して解析者に見せることが求められることが多い。抽出したデータの規模が大きいと、指定されたソート順に並べるのに時間がかかる。非順序型DBにおいて、インデクスが作成された列を対象として、それに対するソート結果を高速に変換する技術については特許文献2に記載されている。
特開2007−34414号公報 米国特許公開2010/0211577号
ビジネスデータ分析では、動向分析などにおいて、蓄積された大量のデータから必要なデータを抽出し、分析しやすいように抽出したデータを指定した順序で並び替える必要がある。このとき、抽出したデータ量が多ければ、指定された順序でデータを並び替えるために多くの処理時間を必要としてしまう。
特許文献1に開示された非順序型DBでは、データの抽出を高速化することは可能であるが、抽出されたデータの並び替え(ソート)については非順序型DBの特性を生かしたものではなかった。したがって、データの抽出を高速化しても、抽出されたデータのソートがボトルネックになってしまうおそれがあった。
本発明は、二次記憶装置に格納されたデータを取得するデータベース処理システムにおいて、ソートされたデータを抽出する処理を高速化することを目的とする。
本発明の代表的な一形態によれば、データが格納されたデータベースを管理するデータベース管理システムが実行される計算機において、要求されたデータを出力するデータベース処理方法であって、前記計算機は、前記データベース管理システムを実行するプロセッサと、前記データベース管理システムを記憶するメモリとを備え、前記方法は、前記要求されたデータを指定された順序で問合せ結果を出力するように指定された問合せ要求を受け付ける第1ステップと、前記受け付けた問合せ要求に基づいて、前記データを格納する表にアクセスする順序を含む問合せ実行プランを生成する第2ステップと、前記生成された問合せ実行プランに基づいて、前記問合せ要求に基づいて要求されたデータを前記データベースから取得する第3ステップと、前記取得されたデータを含む中間結果を生成する第4ステップと、前記生成された中間結果を、前記問合せ要求で指定された順序に並び替える第5ステップと、前記並び替えられた中間結果の順序が確定したか否かを前記中間結果ごとに判定する第6ステップと、前記順序が確定した中間結果を、前記問合せ結果として先頭から順に出力する第7ステップと、を含む。
本発明の一形態によれば、データの抽出と、データのソート及び返送とを並行して実行することによって、抽出開始から問合せ結果の送信開始までの時間を短縮することによって、ソートされたデータを抽出する処理を高速化することができる。
本発明の第1の実施の形態の計算機システムの構成を示すブロック図である。 本発明の第1の実施の形態の実行コンテキスト管理部によって実行コンテキストを分類する手順を示すフローチャートである。 本発明の第1の実施の形態の結果順序確定部分判定部によって問合せ結果のソート順が確定したか否かを判定する手順を示すフローチャートである。 本発明の第1の実施の形態の問合せ要求に対応するSQLの一例を示す図である。 本発明の第1の実施の形態の問合せ要求によって抽出されるデータを格納する表の一例を示す図である。 本発明の第1の実施の形態の問合せ要求に対応するSQLに対応する問合せ実行プランの一例を示す図である。 本発明の第1の実施の形態におけるソートされたデータをデータベースから抽出し、問合せ結果として出力する過程の具体例を説明する図である。 本発明の第2の実施の形態の計算機システムの構成を示すブロック図である。
(第1の実施の形態)
図1は、本発明の第1の実施の形態の計算機システムの構成を示すブロック図である。
本発明の第1の実施の形態の計算機システムは、データベースサーバ101、1又は複数の外部記憶装置103を含む。データベースサーバ101及び外部記憶装置103は、ネットワーク102を介して互いに接続される。
データベースサーバ101は、外部記憶装置103に格納されたデータを管理するプログラムであるデータベース管理システム132を実行する。そして、データベースサーバ101で実行されるアプリケーションプログラム131又は図示しないクライアント計算機などによって要求された問合せを処理し、問合せ結果を応答する。
データベースサーバ101は、メモリ111、プロセッサ112及びインターフェース113を備える。メモリ111は、データベース管理システム132などのプログラム及び当該プログラムの実行に必要なデータを記憶する。プロセッサ112は、メモリ111に記憶されたプログラムを実行することによって、各種処理を実行する。
インターフェース113は、ネットワーク102を介して外部記憶装置103に接続する。ネットワーク102がストレージエリアネットワーク(SAN)である場合には、インターフェース113はいわゆるホストバスアダプタ(HBA)であってもよい。メモリ111に記憶されたプログラムが実行されると、必要に応じて、インターフェース113を介して外部記憶装置103に入出力要求を発行する。
ネットワーク102は、例えば、ファイバーチャネル(FC)プロトコルが適用されるストレージエリアネットワーク(SAN)であるが、その他の任意の形態のネットワークであってもよい。具体的には、ネットワーク102がインターネットプロトコル(IP)ネットワークであれば、データベースサーバ101と外部記憶装置103との間をiSCSIプロトコルで通信するようにしてもよい。
外部記憶装置103は、データベースサーバ101が管理するデータを格納し、データベースサーバ101から送信された入出力要求に基づいて、要求されたデータを読み書きする。
外部記憶装置103は、インターフェース123、制御装置122及び記憶装置121を備える。インターフェース123は、ネットワーク102に接続される。制御装置122は、データベースサーバ101から送信された入出力要求を処理する。
記憶装置121は、入出力要求によって読み書きされるデータを管理するデータベースを格納する。記憶装置121は、ハードディスクドライブ(HDD)、光ディスクドライブ、半導体記憶装置又はその他の記憶装置であってもよい。図1では、1つの記憶装置121が外部記憶装置103に備えられているが、記憶装置121の数は任意である。また、複数の記憶装置121が備えられている場合には、ディスクアレイを構成するようにしてもよい。
続いて、データベースサーバ101で実行されるプログラムについて説明する。メモリ111に記憶されるプログラムには、アプリケーションプログラム(AP)131、データベース管理システム132及びオペレーティングシステム(OS)133が含まれる。
プロセッサ112は、AP131を実行することによって、各種業務処理を実行する。このとき、AP131によって、データベース管理システム132に問合せ要求を発行し、問合せ結果を受信する。本発明の第1の実施の形態ではデータベース管理システム132と同一の計算機(データベースサーバ101)でAP131が実行されているが、ネットワークを介して接続された別の計算機でアプリケーションプログラムが実行される構成としてもよい。
データベース管理システム132は、要求された問合せで指定された条件に合致するデータを外部記憶装置103に格納されたデータベースから検索する。そして、検索結果(問合せ結果)となるデータを取得し、要求元に応答する。
データベース管理システム132には、関係モデルをベースとした関係データベース管理システム(RDBMS)、又はオブジェクトモデルをベースとしたオブジェクト指向データベース管理システムがある。本発明の第1の実施の形態では、特に、RDBMSを対象とする。
RDBMSでは、複数種類のデータによって構成されるレコード単位でデータを表161に格納し、少ないI/O要求でレコードにアクセスするための索引162を備える。索引162のデータ構造は、B木であってもよいし、ハッシュであってもよい。データに対する問合せはSQL(Structured Query Language)によって記述される。SQLでは、問合せ結果の出力順序指定はOrder by句によって表現され、集計演算はGroup by句によって表現される。
なお、本発明の第1の実施の形態では、データベース管理システム132はネットワーク102を介して接続された外部記憶装置103に表161及び索引162を格納しているが、データベースサーバ101に記憶装置が備えられている場合には、データベースサーバ101内の記憶装置に格納してもよい。
OS133は、データベースサーバ101の資源(プロセッサ112及びメモリ111)を管理するプログラムである。また、データベース管理システム132からの入出力要求を受け付け、外部記憶装置103に入出力要求を発行する。
ここで、さらに、データベース管理システム132の詳細な構成について説明すると、データベース管理システム132には、問合せ受付部141、問合せ実行部143、問合せ実行プラン生成部142、実行タスク管理部144、DBバッファ145、及び問合せ結果保存部146が備えられる。
問合せ受付部141は、AP131から要求された問合せ要求を受け付ける。さらに、問合せ受付部141は、受け付けた問合せ要求を解析し、解析結果に応じて問合せ実行プラン生成部142又は問合せ実行部143を実行する。
問合せ実行プラン生成部142は、問合せ受付部141が受け付けた問合せ要求の処理手順である問合せ実行プランを生成する。問合せ実行プランについては後述する。
問合せ実行部143は、問合せ実行プラン生成部142によって生成された問合せ実行プランに基づいて要求された問合せを処理するために必要な処理を実行する。
問合せ実行部143は、問合せ結果を生成するための基本的なデータベースオペレーションを実行可能である。問合せ実行プランは、問合せに応じた結果を生成するために必要なデータベースオペレーションを組み合わせたものである。
問合せ実行部143は、実行コンテキスト管理部150、結果順序確定部分判定部160、及び問合せ結果返送部170を備える。
前述のように、問合せ実行部143は、複数のタスクを生成して、問合せ要求を処理する。この複数のタスクには、問合せ実行プランにおいて論理的に並列実行可能な実行コンテキストが割り当てられる。また、実行コンテキストは、問合せ実行プランを構成するオペレーションに対応する処理が含まれる。実行コンテキストが実行される際には、オペレーションごとにタスクが生成され、生成されたタスクが実行されることによって問合せ処理が実行される。
実行コンテキスト管理部150は、複数の実行コンテキストを、それぞれの処理の進捗ごとに分類管理する。また、実行コンテキスト管理部150は、結果候補リスト151(第1リスト、第2リスト)及び結果確定リスト152(第3リスト)を含み、処理の進捗に応じて実行コンテキストをいずれかのリストに分類する。このとき、処理中の実行コンテキストにおいて取得済のデータを含む中間結果を分類するようにしてもよい。実行コンテキストを分類する手順については、図2にて後述する。
結果候補リスト151は、問合せを処理するためのタスクの一部が実行された結果のうち、ソート結果が未確定の実行コンテキストを格納(分類)する。結果候補リスト151には、判定列未取得リスト153(第1リスト)及び判定列取得済リスト154(第2リスト)が含まれる。判定列未取得リスト153は、ソート指定列に対応するデータが未取得の実行コンテキストが格納される。一方、判定列取得済リスト154は、ソート指定列に対応するデータが取得済みの実行コンテキストが格納される。結果確定リスト152は、問合せ要求の結果が確定した実行コンテキストが格納される。
結果順序確定部分判定部160は、分類管理された実行コンテキストについて、問合せ結果のソート順序確定部分を判定し、ソート順序が確定したレコードを問合せ結果返送部170に通知する。
具体的には、結果候補リスト151の判定列未取得リスト153に分類される実行コンテキストが無い場合に、判定列取得済リスト154のうち、ソート順序が最先頭の実行コンテキストのソート指定列の値を参照する。そして、結果確定リスト152のうち、ソート指定列の値が参照された値よりも順序が先の実行コンテキストによって生成された問合せ結果は、ソート順序が確定していると判定する。問合せ結果のソート順序確定部分を判定する手順については、図3にて後述する。
問合せ実行部143は、問合せ要求の処理の過程で、オペレーティングシステム133にI/O要求を発行し、I/O結果をDBバッファ145に保持する。そして、問合せ要求の結果を問合せ結果保存部146に保存する。
問合せ結果返送部170は、問合せ結果保存部146に保存された問合せ要求の結果をアプリケーションプログラム131に返送する。
実行タスク管理部144は、問合せ実行プランを実行するために生成されたタスクを管理する。
DBバッファ145は、データアクセスを高速化するために、キャッシュされたデータが格納される。
問合せ結果保存部146は、問合せ実行部143によって実行された問合せの結果を保存する。
図2は、本発明の第1の実施の形態の実行コンテキスト管理部150によって実行コンテキストを分類する手順を示すフローチャートである。本処理は、実行コンテキスト管理部150に含まれるプログラムを実行することによって実行される。
本処理は、前述のように、処理中又は処理が完了した実行コンテキストを分類する処理である。実行コンテキストの分類は、処理中又は処理が完了した実行コンテキストを、結果候補リスト151(判定列未取得リスト153、判定列取得済リスト154)又は結果確定リスト152に格納する(割り当てる)ことである。
また、結果候補リスト151及び結果確定リスト152で実行コンテキストを管理する場合、実行コンテキストに対応するデータ(中間結果)そのものを管理してもよく、データへの参照(ポインタ)を管理してもよい。なお、結果確定リスト152では、当該結果確定リスト152に分類される実行コンテキストによって生成され、問合せ結果保存部146に保存されている結果データへの参照を管理するようにしてもよい。
プロセッサ112は、まず、実行コンテキストを選択し、ソート指定列、すなわち、ソート順序を判定する対象の列(判定列)の値がデータベースの表161から取得済であるか否かを判定する(S201)。
プロセッサ112は、判定列の値が取得済でない場合には(S201の結果が「N」)、結果候補リスト151の判定列未取得リスト153に選択された実行コンテキストを分類する(S202)。
一方、プロセッサ112は、判定列の値が取得済である場合には(S201の結果が「Y」)、選択された実行コンテキストの実行が完了しているか否かを判定する(S203)。
プロセッサ112は、選択された実行コンテキストの実行が完了していない場合には(S203の結果が「N」)、結果候補リスト151の判定列取得済リスト154に選択された実行コンテキストを分類する(S204)。一方、選択された実行コンテキストの実行が完了している場合には(S203の結果が「Y」)、結果確定リスト152に選択された実行コンテキストを分類する(S205)。
以上のように、本発明の第1の実施の形態では、ソート指定列の値が取得されたか否か、さらに、実行コンテキストで取得されるデータをすべて取得したか否かによって、実行コンテキストを分類する。そして、すべての実行コンテキストについて、ソート指定列の値が取得されると、すなわち、すべての実行コンテキストが結果候補リスト151の判定列取得済リスト154又は結果確定リスト152に分類されると、結果確定リスト152に含まれる実行コンテキストに対応する問合せ結果のソート順が確定したか否かを判定する。問合せ結果のソート順が確定したか否かを判定する手順については、図3を参照しながら説明する。
図3は、本発明の第1の実施の形態の結果順序確定部分判定部160によって問合せ結果のソート順が確定したか否かを判定する手順を示すフローチャートである。
プロセッサ112は、まず、結果候補リスト151の判定列未取得リスト153が空か否かを判定する(S301)。すなわち、ソート指定列の値がすべて取得されたか否かを判定する。結果候補リスト151の判定列未取得リスト153が空でない場合には(S301の結果が「N」)、ソート対象の値がすべて取得されておらず、データの順序を確定することができないため、本処理を終了する。
プロセッサ112は、結果候補リスト151の判定列未取得リスト153が空の場合には(S301の結果が「Y」)、対象となるソート指定列の値がすべて取得されているため、少なくとも結果確定リスト152に分類された実行コンテキストに対してソート処理を実行することが可能となる。このとき、結果候補リスト151の判定列取得済リスト154及び結果確定リスト152に分類された実行コンテキストに対応するソート指定列の値はソート済みとなっている。
そして、プロセッサ112は、結果候補リスト151の判定列取得済リスト154で最先頭順序の実行コンテキストのソート指定列の値(順序確定判定値)をNとする(S302)。そして、結果確定リスト152の先頭の実行コンテキストのソート指定列の値(判定列値)が、Nよりも先行するか否かを判定する(S303)。Nよりも先行しない場合には(S303の結果が「N」)、ソート順が確定した実行コンテキストが結果確定リスト152に含まれていないため、本処理を終了する。
プロセッサ112は、結果確定リスト152の先頭の実行コンテキストの判定列値が、ソートした場合にNよりも先行する場合には(S303の結果が「Y」)、結果確定リスト152の先頭の実行コンテキストの結果を問合せ結果返送部170に通知し、結果確定リスト152から削除する(S304)。そして、新たに先頭になった実行コンテキストの判定列値がNよりも先行するか否かを判定し(S303)、先頭の実行コンテキストの判定列値がNよりも先行しなくなるまで(若しくは結果確定リスト152が空になるまで)、S303及びS304の処理を実行する。
以下、本発明の第1の実施の形態におけるソートされたデータを抽出する方法について図面を参照しながらに具体的に説明する。
以下に説明する具体例では、商品明細表(T1)、販売履歴データ表(T2)、顧客表(T3)の3つの表から指定された順序でデータを抽出する。データを抽出する問合せ要求は、一般的なSQLによって表現される。
図4は、本発明の第1の実施の形態の問合せ要求に対応するSQLの一例を示す図である。
図4に示す問合せ要求であるSQLは、指定された条件を満たす商品明細表(T1)、販売履歴データ表(T2)、顧客表(T3)に格納されたデータを指定された順序で抽出する。
まず、SQLの詳細を説明する前に、図5を参照しながら商品明細表(T1)、販売履歴データ表(T2)、顧客表(T3)の構成について説明する。
図5は、本発明の第1の実施の形態の問合せ要求によって抽出されるデータを格納する表の一例を示す図である。
商品明細表(T1)、販売履歴データ表(T2)、顧客表(T3)の3つの表は、外部記憶装置103の記憶装置123に格納された表161に含まれる。
商品明細表(T1)は、「itemID」列、「category」列、及び「price」列を含む。
「itemID」列の値は、商品を識別する識別子である。「category」列の値は、itemIDによって識別される商品のカテゴリーを示す。具体的には、「coffee(コーヒー)」、「tea(お茶)」などの値が設定される。「price」列の値は、itemIDによって識別される商品の価格を示す。
販売履歴データ表(T2)は、「orderID」列、「itemID」列、「custID」列、及び「num」列を含む。
「orderID」列の値は、注文を識別する識別子である。「itemID」列の値は、注文された商品を識別する識別子である。「custID」列の値は、注文を行った顧客を識別する識別子である。「num」列の値は、商品を注文した数である。
顧客表(T3)は、「custID」列、「gender」列、及び「age」列を含む。
「custID」列の値は、顧客を識別する識別子である。「gender」列の値は、custIDによって識別される顧客の性別を示す情報である。「age」列の値は、custIDによって識別される顧客の年齢を示す情報である。
ここで、図4に示したSQLの説明に戻る。図4に示したSQLは、20歳から29歳までの女性で、コーヒーを注文したという条件を満たす、商品明細表(T1)、販売履歴データ表(T2)、顧客表(T3)の該当するレコード(データ)を抽出することを示している。
さらに詳しく説明すると、商品明細表(T1)の「category」列の値が「coffee」であって、商品明細表(T1)の「itemID」列と販売履歴データ表(T2)の「itemID」列の値が同じ、かつ、販売履歴データ表(T2)の「custID」列と顧客表(T3)の「custID」列の値が同じ、すなわち、itemIDで商品明細表(T1)及び販売履歴データ表(T2)を結合し、custIDで販売履歴データ表(T2)及び顧客表(T3)を結合する。そして、顧客表(T3)の「gender」列の値が「F」、かつ、顧客表(T3)の「age」列の値が20から29である条件を満たすデータ(レコード)を結合された3つの表(T1、T2、T3)から抽出し、商品明細表(T1)の「price」列の値が降順となるように出力する。
図5に示した各表のレコード間を接続する矢印は、各レコードの結合状態を図示したものである。具体的に説明すると、「category」列の値が「coffee」である商品明細表(T1)の「itemID」列の値が“0001”のレコードは、販売履歴データ表(T2)の「itemID」列の値が“0001”である2レコードに連結する。さらに、この2レコードの「custID」列の値はそれぞれ“0001”“0003”であり、それぞれ対応する顧客表(T3)のレコードに連結される。このとき、図4に示したSQLでは、「女性」かつ「20歳から29歳」の条件が指定されているため、「custID」列の値が“0003”のレコードは抽出されない。
続いて、図4に示したSQLに基づいて生成された、表及び索引にアクセスする順序を示す問合せ実行プラン(処理順序)について説明する。
図6は、本発明の第1の実施の形態の問合せ要求に対応するSQLに対応する問合せ実行プランの一例を示す図である。
本発明の第1の実施の形態では、商品明細表(T1)の「category」列、販売履歴データ表(T2)の「itemID」列、及び、顧客表(T3)の「custID」列に索引が作成されている。これらの索引は、外部記憶装置103の記憶装置123に格納された索引162に含まれる。
図6に示す問合せ実行プランは、6つのオペレーション(OP1〜OP6)によって構成され、OP6でソートされた問合せ結果が出力される。実行コンテキストは、OP1からOP6までの処理を含み、途中のオペレーションで複数のデータが抽出された場合には、抽出されたデータの数の実行コンテキストに分割される。分割後の実行コンテキストは、それぞれ並行して処理可能である。
また、問合せ実行部143は、前述のように、問合せ実行プラン生成部142によって生成された問合せ実行プランを構成する各オペレーションを実行するために、オペレーションごとにタスクを生成する。同じ実行コンテキストで生成されたタスクはオペレーションの実行順序に従って順次実行されるが、異なる実行コンテキストで生成されたタスクは並行して実行することが可能である。
図6に示す問合せ実行プランでは、まず、商品明細表(T1)の「category」列の索引を使用して「category」列の値が「coffee」であるレコードを検索し、該当するレコードを表T1から取得する。
続いて、販売履歴データ表(T2)の「itemID」列の索引を使用して「itemID」列の値が商品明細表(T1)から取得したレコードの「itemID」列の値と同じレコードを検索する。そして、該当するレコードを販売履歴データ表(T2)から取得し、商品明細表(T1)から取得したレコードと結合する。
続いて、顧客表(T3)の「custID」列の索引を使用して、「custID」の列の値が履歴データ表(T2)から取得したレコードの「custID」列の値と同じ行を検索し、該当するレコードを顧客表(T3)から取得する。さらに、取得したレコードの「gender(性別)」列の値が「F(女性)」であり、「age(年齢)」列の値が20から29という条件を満たすか否かを判定する。条件を満たす場合には、取得したT1及びT2のレコードを結合することによって生成されたレコードと、顧客表(T3)から取得した結合し、問合せ結果保存部146に保存する。
問合せ結果を返送する場合には、問合せ結果保存部146に保存されている結果であって、商品明細表(T1)の「price」列の値が降順となるように結合されたレコードを、問合せ要求の送信元に返送する。
続いて、図6に示した問合せ実行プランにしたがって、データを取得し、問合せ結果を出力する過程について説明する。
図7は、本発明の第1の実施の形態におけるソートされたデータをデータベースから抽出し、問合せ結果として出力する過程の具体例を説明する図である。
図6に示した問合せ実行プランでは、図5に示した商品明細表(T1)の1レコード分のデータから、対応する販売履歴データ表(T2)及び顧客表(T3)のレコードを結合した問合せ結果を検索及び抽出する一連の処理が1つの実行コンテキストとなる。したがって、実行コンテキストが分割される前の段階で、「category」列の値が「coffee」である行ごとに実行コンテキストが生成される。これらの実行コンテキストは並行して処理可能である。
図7のphase1は、問合せ処理の実行開始直後の状態を示している。具体的には、最初に実行された実行コンテキストにおいて、商品明細表(T1)の「category」列の索引検索処理部分が1つのタスクにより実行されている状態である。すなわち、図6の問合せ実行プランにおけるOP1が終了した状態である。phase1における実行コンテキストは、ソート指定列である商品明細表(T1)の「price」の値を取得していないため、結果候補リスト151の判定列未取得リスト153に分類される(図2のS202)。
図7のphase2は、前述したphase1よりも処理が進行した状態を示している。具体的には、実行コンテキストは、「category」列の値が「coffee」である1つめのレコードを商品明細表(T1)から取得し、対応する「price」列の値が500であることが判明する。この段階では、図6の問合せ実行プランにおけるOP2が終了した状態となっている。
続いて、商品明細表(T1)の「itemID」列の値(具体的には“0001”)に基づいて、販売履歴データ表(T2)の「itemID」列の索引検索を実行し(OP3)、販売履歴データ表(T2)から該当するレコードを取得する(OP4)。このとき、販売履歴データ表(T2)から2件のレコードが取得されているため、実行コンテキストが2つに分割されている。
phase2では、ソート指定列の値が取得されたため、結果候補リスト151の判定列取得済リスト154に分類される(図2のS204)。また、商品明細表(T1)の「category」列の索引検索処理を並行して開始した別の実行コンテキストが、結果候補リスト151の判定列未取得リスト153に分類されている。phase2が終了した段階では、図6の問合せ実行プランにおけるOP4が終了した状態となっている。
phase3は、phase2よりもさらに処理が進行した状態を示している。具体的には、「price」列の値が500であった実行コンテキストは、さらに処理が進行して顧客表(T3)のレコードの取得及び条件判定まで終了している。このとき、図6の問合せ実行プランにおけるOP6が終了した状態となっている。したがって、実行コンテキストは「結果確定リスト」に分類される(図2のS205)。
なお、phase2で分割された他方の実行コンテキストは、検索条件を満たさなかったため、結果確定リスト152には分類されない。検索条件を満たさない実行コンテキストについては、検索条件を満たさないことが判明した時点で破棄され、いずれのリストにも分類されなくなる。
phase4では、結果候補リスト151の判定列未取得リスト153に分類される実行コンテキストが無くなったため、結果確定リスト152からソート順序が確定した結果を判定する。すなわち、少なくとも検索条件を満たす可能性があるレコードのソート指定列に値がすべて取得されたことになる。したがって、結果候補リスト151の判定列取得済リスト154に分類された実行コンテキストのうち、ソート指定列である「price」列の値が最も大きい実行コンテキストを取得し、当該「price」列の値を順序確定判定値とする(図3のS302)。そして、「price」列の値が順序確定判定値よりも大きい値の実行コンテキストが結果確定リスト152に分類されていれば、問合せ結果として要求元に返送することが可能となる。
具体的に説明すると、図7のphase4では、結果候補リスト151の判定列取得済リスト154に分類された実行コンテキストの「price」列の値が200であり、順序確定判定値は200となる。そして、結果確定リスト152の実行コンテキストから、「price」列の値が200以上の実行コンテキスト(1000、500)を選択する。選択された実行コンテキストによって生成されたレコード(中間結果)は順序を確定することが可能であるため、選択された実行コンテキストによって生成されたレコードを「price」列の値の順にソートする。そして、当該レコードを問合せ結果返送部170に通知し、問合せ要求に対するすべての検索処理が終了する前に、問合せ結果の返送を開始する。
なお、結果候補リスト151の判定列取得済リスト154又は結果確定リスト152に実行コンテキストを分類する場合には、受け付けられた問合せ要求で指定された順序となるように各リスト内であらかじめソートしておくとよい。
結果確定リスト152内でソート指定列の値でソートすると、先頭の実行コンテキストから順にソート指定列の値と順序確定判定値とを比較し、ソート指定列の値が順序確定判定値よりも先の順序にならなくなった時点で比較を中止し、結果確定リスト152内の比較済の実行コンテキストのレコード(中間結果)を問合せ結果返送部170に通知すればよい。また、比較時に問合せ結果返送部170に通知するようにしてもよい。
また、結果候補リスト151の判定列取得済リスト154内でソート指定列の値でソートすると、先頭の実行コンテキストのソート指定列の値を順序確定判定値とすることが可能となり、順序確定判定値を取得する処理を効率化することができる。
さらに、結果候補リスト151の判定列取得済リスト154から結果確定リスト152にコンテキストの分類先を変更する場合に、リストの先頭から順に比較することによって結果確定リスト152の格納位置を決定することが可能となる。
このとき、結果確定リスト152及び結果候補リスト151の判定列取得済リスト154に分類された実行コンテキストをソート指定列の値の順序で管理するデータ構造としては、単方向リストであってもよいし、双方向リストであってもよい。また、木構造であってもよい。
また、リスト内の実行コンテキストをソート指定列の値の順序で管理する場合、ソート処理は、リストに実行コンテキストが挿入されるたびに実行してもよく、所定数の実行コンテキストが分類されたタイミングで実行してもよく、その他任意のタイミングで実行してもよい。
また、結果順序確定部分判定部160が順序確定判定を実行するタイミングは、結果候補リスト151の判定列未取得リスト153に分類された実行コンテキストがなくなった直後が最初のタイミングとなる。以降、ユーザから結果返送を要求されたタイミングで実行してもよく、問合せ結果保存部146に一定数以上のレコード(問合せ結果)が挿入されたタイミングであってもよい。
また、本発明の第1の実施の形態では、ソート指定列の値の取得をできるだけ早くすべての実行コンテキストにおいて完了させれば、問合せ結果の返送開始時期を早めることができる。したがって、問合せ実行プランを生成する場合に、ソート指定列を含む表のアクセス順序が早くなるように設定することによって、問合せ結果の返送開始時期を早めることができる。
なお、実行タスク管理部144は、複数の実行コンテキストの実行順序を管理することが可能だが、結果候補リスト151の判定列未取得リスト153に分類された実行コンテキストを最も優先的に実行し、続いて結果候補リスト151の判定列取得済リスト154に分類された実行コンテキストを優先的に実行することによって、問合せ処理開始から問合せ結果返送処理が開始されるまでの時間を、より短縮することが可能となる。
本発明の第1の実施の形態によれば、すべての問合せ結果を取得する前にソートされた問合せ結果を順次返送することが可能となる。したがって、問合せ処理開始から問合せ結果返送処理が開始されるまでの時間を短縮することが可能となる。また、結果確定リスト152に分類された問合せ結果をソート指定列の値に基づいてあらかじめソートして格納しているため、全結果を抽出した後にデータをソートする処理を実行する必要がなくなる。
また、本発明の第1の実施の形態によれば、索引を利用せずにソート指定列の値をソートすることができるため、索引が作成されていないソート指定列でソートする場合であっても迅速にソートされたデータを抽出することが可能となる。
(第1の実施の形態の変形例)
以上説明した第1の実施の形態では、複数の実行コンテキストにおいて、データの読み出しを並行して実行することが可能な非順序型データベースに本発明を適用していたが、非順序型データベースでない一般的なデータベースに適用してもよい。以下、第1の実施の形態の変形例として説明する。
非順序型データベースでない一般的なデータベースでは、図1に示したシステム構成において、データベース管理システム132に実行タスク管理部144が含まれていない点で相違し、その他の点で共通している。すなわち、1つのタスクで実行コンテキストが逐次的に実行されるため、同時に処理される実行コンテキストは1つとなる。
したがって、処理が開始されていない実行コンテキストが、結果候補リスト151の判定列未取得リスト153に分類され、処理中の実行コンテキストが結果候補リスト151の判定列取得済リスト154に分類される。そして、処理が終了した実行コンテキストが結果確定リスト152に分類される。
このとき、結果確定リスト152をソート指定列順に管理することによって、最後の実行コンテキストが結果候補リスト151の判定列取得済リスト154に分類された時点で、結果確定リスト152の順序確定部分を返送する。
以上のように、本発明の第1の実施の形態の変形例によれば、問合せ処理の半ばで問合せ結果を返送することはできないが、結果確定リスト152に分類される実行コンテキストの結果をソート指定列の値に基づいてソートして管理することによって、結果抽出処理後のソート処理が不要になり、ソートされたデータを抽出する処理を高速化することができる。
(第2の実施の形態)
次に、本発明の第2の実施の形態について説明する。第1の実施の形態では、非順序型データベースに本発明を適用していたが、第2の実施の形態では、複数の計算機で並列して問合せ要求が処理される並列データベースシステムに適用する。以下、第2の実施の形態が第1の実施の形態と相違する点について説明する。
図8は、本発明の第2の実施の形態の計算機システムの構成を示すブロック図である。
本発明の第2の実施の形態の計算機システムは、要求受付サーバ104、複数の実行サーバ106及び外部記憶装置103を含む。
要求受付サーバ104及び複数の実行サーバ106は、ネットワーク105を介して互いに接続される。複数の実行サーバ106及び外部記憶装置103を含む。データベースサーバ101及び外部記憶装置103は、ネットワーク102を介して互いに接続される。
要求受付サーバ104は、データベースサーバ101と同様に、メモリ111、プロセッサ112及びインターフェース113を含む。メモリ111には、データベース管理システム132が記憶される。インターフェース113は、ネットワーク105に接続される。
実行サーバ106は、メモリ201、プロセッサ202、インターフェース203及びインターフェース204を含む。メモリ201には、外部記憶装置103からデータを取得するデータ処理部210が記憶される。インターフェース203は、ネットワーク105を介して要求受付サーバ104に接続される。インターフェース204は、ネットワーク102を介して外部記憶装置103に接続される。
要求受付サーバ104は、問合せ要求を受け付け、実行サーバ106に実行コンテキストを割り当てる。すなわち、要求受付サーバ104は、第1の実施の形態におけるデータベースサーバ101と同様に、複数の実行コンテキストを生成する。このとき、外部記憶装置103には直接アクセスせずに、実行コンテキストを処理するために必要な情報を実行サーバ106に送信する。
実行サーバ106は、要求受付サーバ104によって指示された実行コンテキストを、データ処理部210によって処理することによって問合せ結果を取得する。実行サーバ106は、一般的なデータベースサーバと同様に、同時に1つの実行コンテキストのみを処理することができる。
要求受付サーバ104は、第1の実施の形態のデータベースサーバと同様に結果候補リスト151及び結果確定リスト152を保持する。要求受付サーバ104は、問合せ実行プラン生成後、実行コンテキストを処理する実行サーバ106を選択する。そして、選択された実行コンテキストを選択された実行サーバ106に割り当てると、処理の開始を指示する。このとき、要求受付サーバ104は、割り当てた実行コンテキストを、結果候補リスト151の判定列未取得リスト153に分類する。
実行サーバ106は、割り当てられた実行コンテキストを処理し、ソート指定列の値を取得すると、中間結果を要求受付サーバ104に送信する。要求受付サーバ104は、ソート指定列の値を取得した中間結果を受信すると、対応する実行コンテキストを結果候補リスト151の判定列取得済リスト154に分類する。
その後、実行サーバ106は、実行コンテキストの処理を継続し、すべてのオペレーションの実行が完了すると、処理結果を要求受付サーバ104に送信する。要求受付サーバ104は、受信した処理結果に対応する実行コンテキストを結果確定リスト152に分類する。
なお、実行サーバ106が実行コンテキストを処理している間に、実行コンテキストが複数に分割された場合には、実行サーバ106で順次処理するようにしてもよいし、1つの実行コンテキストを除いて要求受付サーバ104に送信し、要求受付サーバ104が別の実行サーバ106に割り当てするようにしてもよい。
以上のように、本発明の第2の実施の形態によれば、既存の並列データベースシステムに本発明を適用することができる。したがって、各実行サーバ106にデータの読み出しを実行させ、要求受け付けサーバで結果候補リスト151及び結果確定リスト152を管理することによって、すべての問合せ結果を取得する前にソートされた問合せ結果を順次返送することが可能となり、ソートされたデータを抽出する処理を高速化することができる。
101 データベースサーバ
102 ネットワーク
103 外部記憶装置
104 要求受付サーバ
105 ネットワーク
106 実行サーバ
111 メモリ
112 プロセッサ
113 インターフェース
121 インターフェース
122 制御装置
123 記憶装置
131 アプリケーションプログラム(AP)
132 データベース管理システム
133 オペレーティングシステム(OS)
141 問合せ受付部
142 問合せ実行プラン生成部
143 問合せ実行部
144 実行タスク管理部
145 DBバッファ
146 問合せ結果保存部
150 実行コンテキスト管理部
151 結果候補リスト
152 結果確定リスト
153 判定列未取得リスト
154 判定列取得済リスト
160 結果順序確定部分判定部
161 表
162 索引
170 問合せ結果返送部
201 メモリ
202 プロセッサ
203 インターフェース
204 インターフェース
210 データ処理部

Claims (16)

  1. データが格納されたデータベースを管理するデータベース管理システムが実行される計算機において、要求されたデータを出力するデータベース処理方法であって、
    前記計算機は、前記データベース管理システムを実行するプロセッサと、前記データベース管理システムを記憶するメモリとを備え、
    前記方法は、
    前記要求されたデータを指定された順序で問合せ結果を出力するように指定された問合せ要求を受け付ける第1ステップと、
    前記受け付けた問合せ要求に基づいて、前記データを格納する表にアクセスする順序を含む問合せ実行プランを生成する第2ステップと、
    前記生成された問合せ実行プランに基づいて、前記問合せ要求に基づいて要求されたデータを前記データベースから取得する第3ステップと、
    前記取得されたデータを含む中間結果を生成する第4ステップと、
    前記生成された中間結果を、前記問合せ要求で指定された順序に並び替える第5ステップと、
    前記並び替えられた中間結果の順序が確定したか否かを前記中間結果ごとに判定する第6ステップと、
    前記順序が確定した中間結果を、前記問合せ結果として先頭から順に出力する第7ステップと、を含むデータベース処理方法。
  2. 請求項1に記載のデータベース処理方法であって、
    前記問合せ結果は、データに対応する1以上の列によって構成されるレコード単位で処理され、
    前記第3ステップは、前記列ごとにデータを取得し、
    前記第4ステップは、前記レコード単位で前記中間結果を生成し、
    前記第6ステップは、前記レコードを構成する列に対応するデータがすべて取得されていない場合には順序が確定していないと判定するデータベース処理方法。
  3. 請求項2に記載のデータベース処理方法であって、
    前記レコードを構成する列は、前記指定された順序を決定する値に対応するソート指定列を含み、
    前記方法は、
    前記第4ステップで生成された中間結果を、前記ソート指定列の値が取得されていない中間結果によって構成される第1リスト、前記ソート指定列の値が取得され、かつ、前記レコードを構成する列に対応するデータがすべて取得されていない中間結果によって構成される第2リスト、又は、前記レコードを構成する列に対応するデータがすべて取得されている中間結果によって構成される第3リストのいずれかに分類する第8ステップを、さらに備え、
    前記第5ステップは、前記第3リストに分類された中間結果の順序を前記指定された順序で並び替えるステップを含み、
    前記第6ステップは、
    前記第1リストに分類された中間結果が存在するか否かを判定する第9ステップと、
    前記第2リストに分類された中間結果を前記指定された順序で並び替えた場合に、最も順序が先となる中間結果の前記ソート指定列の値を順序確定判定値として取得する第10ステップと、を含み、
    前記第1リストに分類された中間結果が存在しない場合に、前記第3リストに分類され、前記順序確定判定値を有する中間結果よりも順序が先になる前記ソート指定列の値を有する中間結果を順序が確定したと判定し、
    前記第7ステップは、前記第3リストに分類され、かつ、順序が確定した中間結果を先頭から順に前記問合せ結果として出力するデータベース処理方法。
  4. 請求項3に記載のデータベース処理方法であって、
    前記第3ステップは、
    前記問合せ実行プランに基づいて、前記問合せ結果を取得する処理を含み、並列して実行可能な処理単位である実行コンテキストを生成するステップと、
    前記実行コンテキストを処理することによって前記データを取得するステップと、を含み、
    前記第9ステップは、前記ソート指定列の値を取得するすべての実行コンテキストが完了している場合に、前記第1リストに分類された中間結果が存在しないと判定するデータベース処理方法。
  5. 請求項4に記載のデータベース処理方法であって、
    前記第8ステップは、
    前記実行コンテキストを処理する過程で前記ソート指定列の値の取得が完了した場合に、前記生成された中間結果を前記第2リストに分類するステップと、
    前記実行コンテキストに含まれる前記問合せ結果を取得する処理が完了した場合に、前記生成された中間結果を前記第3リストに分類するステップと、を含むデータベース処理方法。
  6. 請求項4に記載のデータベース処理方法であって、
    前記第3ステップは、前記ソート指定列の値が取得されていない実行コンテキストを優先して処理するステップを含むデータベース処理方法。
  7. 請求項4に記載のデータベース処理方法であって、
    前記第3ステップは、前記第2リストに分類される中間結果に対応する実行コンテキストについて、当該中間結果の前記ソート指定列の値に基づき順序が先となる実行コンテキストを優先して処理するステップを含むデータベース処理方法。
  8. 請求項3に記載のデータベース処理方法であって、
    前記第5ステップは、前記第2リストに分類される中間結果の順序を前記指定された順序で並び替えるステップを含み、
    前記第10ステップは、前記第2リストに分類された先頭の中間結果の前記ソート指定列の値を順序確定判定値とするデータベース処理方法。
  9. 請求項3に記載のデータベース処理方法であって、
    前記第2ステップは、前記ソート指定列を含む表が優先してアクセスされるように問合せ実行プランを生成するデータベース処理方法。
  10. 請求項1に記載のデータベース処理方法であって、
    前記第6ステップは、前記問合せ結果の出力要求を受け付けた場合に、前記並び替えられた中間結果の順序が確定したか否かを判定するデータベース処理方法。
  11. 請求項1に記載のデータベース処理方法であって、
    前記第6ステップは、前記生成された中間結果の数が所定数を超えた場合に、前記並び替えられた中間結果の順序が確定したか否かを判定するデータベース処理方法。
  12. データを格納するストレージ装置と、前記ストレージ装置に格納されたデータを管理し、要求されたデータを出力するデータベース管理システムが実行される計算機と、を含むデータベース処理システムであって、
    前記計算機は、
    前記要求されたデータを指定された順序で問合せ結果を出力するように指定された問合せ要求を受け付ける問合せ要求受付部と、
    前記受け付けた問合せ要求に基づいて、前記データを格納する表にアクセスする順序を含む問合せ実行プランを生成する問合せ実行プラン生成部と、
    前記生成された問合せ実行プランに基づいて、前記問合せ要求によって要求されたデータを前記ストレージ装置から取得し、前記取得されたデータを格納する1以上の列によって構成されるレコードごとに処理して、前記問合せ要求に対する問合せ結果を出力する問合せ実行部とを備え、
    前記問合せ実行部は、
    前記列ごとにデータを取得し、
    前記取得されたデータを含む中間結果を前記レコードごとに生成し、
    前記生成された中間結果を、前記問合せ要求で指定された順序に並び替え、
    前記並び替えられた中間結果の順序が確定したか否かを前記中間結果ごとに判定し、
    前記順序が確定した中間結果を、前記問合せ結果として先頭から順に出力するデータベース処理システム。
  13. 請求項12に記載のデータベース処理システムであって、
    前記レコードを構成する列は、前記指定された順序を決定する値に対応するソート指定列を含み、
    前記問合せ実行部は、
    前記生成された中間結果を、前記ソート指定列の値が取得されていない中間結果によって構成される第1リスト、前記ソート指定列の値が取得され、かつ、前記レコードを構成する列に対応するデータがすべて取得されていない中間結果によって構成される第2リスト、又は、前記レコードを構成する列に対応するデータがすべて取得されている中間結果によって構成される第3リストのいずれかに分類し、
    前記第3リストに分類された中間結果の順序を前記指定された順序で並び替え、
    前記第1リストに分類された中間結果が存在するか否かを判定し、
    前記第2リストに分類された中間結果を前記指定された順序で並び替えた場合に、最も順序が先となる中間結果の前記ソート指定列の値である順序確定判定値を取得し、
    前記第1リストに分類された中間結果が存在しない場合に、前記第3リストに分類され、前記順序確定判定値を有する中間結果よりも順序が先になる前記ソート指定列の値を有する中間結果を順序が確定したと判定し、
    前記第3リストに分類され、かつ、順序が確定した中間結果を先頭から順に前記問合せ結果として出力するデータベース処理システム。
  14. 請求項13に記載のデータベース処理システムであって、
    前記問合せ実行部は、
    前記問合せ実行プランに基づいて、前記問合せ結果を取得する処理を含み、並列して実行可能な処理単位である実行コンテキストを生成し、
    前記実行コンテキストを処理することによって前記データを取得し、
    前記ソート指定列の値を取得するすべての実行コンテキストが完了している場合に、前記第1リストに分類された中間結果が存在しないと判定するデータベース処理システム。
  15. 請求項14に記載のデータベース処理システムであって、
    前記問合せ実行部は、
    前記ソート指定列の値を取得する実行コンテキストが完了した場合に、前記生成された中間結果を前記第1リストに分類し、
    前記問合せ実行プランに含まれるすべての実行コンテキストが完了した場合に、前記生成された中間結果を前記第3リストに分類するデータベース処理システム。
  16. ストレージ装置に格納されたデータを管理するデータベース管理システムが実行され、要求されたデータを出力するデータベースサーバあって、
    前記データベース管理システムを実行するプロセッサと、前記データベース管理システムを記憶するメモリとを備え、
    前記プロセッサは、
    前記要求されたデータを指定された順序で問合せ結果を出力するように指定された問合せ要求を受け付け、
    前記受け付けた問合せ要求に基づいて、前記データを格納する表にアクセスする順序を含む問合せ実行プランを生成し、
    前記生成された問合せ実行プランに基づいて、前記問合せ要求によって要求されたデータを前記ストレージ装置から取得し、
    前記取得されたデータを含む中間結果を生成し、
    前記生成された中間結果を、前記問合せ要求で指定された順序に並び替え、
    前記並び替えられた中間結果の順序が確定したか否かを前記中間結果ごとに判定し、
    前記順序が確定した中間結果を、前記問合せ結果として先頭から順に出力するデータベースサーバ。
JP2010187798A 2010-08-25 2010-08-25 データベース処理方法、データベース処理システム及びデータベースサーバ Expired - Fee Related JP5199317B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010187798A JP5199317B2 (ja) 2010-08-25 2010-08-25 データベース処理方法、データベース処理システム及びデータベースサーバ
PCT/JP2011/051938 WO2012026140A1 (ja) 2010-08-25 2011-01-31 データベース処理方法、データベース処理システム及びデータベースサーバ
US13/814,976 US9348866B2 (en) 2010-08-25 2011-01-31 Database processing method, database processing system and database server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010187798A JP5199317B2 (ja) 2010-08-25 2010-08-25 データベース処理方法、データベース処理システム及びデータベースサーバ

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012244730A Division JP5458330B2 (ja) 2012-11-06 2012-11-06 データベース処理方法及びデータベース処理システム

Publications (2)

Publication Number Publication Date
JP2012048332A true JP2012048332A (ja) 2012-03-08
JP5199317B2 JP5199317B2 (ja) 2013-05-15

Family

ID=45723161

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010187798A Expired - Fee Related JP5199317B2 (ja) 2010-08-25 2010-08-25 データベース処理方法、データベース処理システム及びデータベースサーバ

Country Status (3)

Country Link
US (1) US9348866B2 (ja)
JP (1) JP5199317B2 (ja)
WO (1) WO2012026140A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013136442A1 (ja) * 2012-03-13 2013-09-19 株式会社野村総合研究所 データ利用システム、時限データの履歴管理システム及びデータ処理システム

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9665620B2 (en) 2010-01-15 2017-05-30 Ab Initio Technology Llc Managing data queries
US9116955B2 (en) * 2011-05-02 2015-08-25 Ab Initio Technology Llc Managing data queries
JP5858307B2 (ja) 2012-04-27 2016-02-10 株式会社日立製作所 データベース管理システム、計算機、データベース管理方法
JP5858308B2 (ja) * 2012-05-24 2016-02-10 株式会社日立製作所 データベース管理システム、計算機、データベース管理方法
US10417281B2 (en) 2015-02-18 2019-09-17 Ab Initio Technology Llc Querying a data source on a network
JP2016177347A (ja) * 2015-03-18 2016-10-06 日本電気株式会社 データベースシステム
JP7006013B2 (ja) * 2017-08-22 2022-01-24 富士通株式会社 データ提供プロラム、データ提供方法、及びデータ提供装置
US11093223B2 (en) 2019-07-18 2021-08-17 Ab Initio Technology Llc Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods
CN112769880B (zh) * 2019-11-01 2022-09-16 腾讯科技(深圳)有限公司 属性查询方法、装置、存储介质和计算机设备
CN113297206A (zh) * 2020-07-31 2021-08-24 阿里巴巴集团控股有限公司 多表连接的处理方法、装置、设备及机器可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0212461A (ja) * 1988-04-07 1990-01-17 Internatl Business Mach Corp <Ibm> リレーシヨナル・データベース・システムの問合せ文処理方法
JPH09231115A (ja) * 1996-02-23 1997-09-05 Mitsubishi Electric Corp データベース処理方法
JP2007034414A (ja) * 2005-07-22 2007-02-08 Masaru Kiregawa データベース管理システム及び方法
US20100211577A1 (en) * 2009-02-13 2010-08-19 Hitachi, Ltd. Database processing system and method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6343286B1 (en) * 1998-09-24 2002-01-29 International Business Machines Corporation Efficient technique to defer large object access with intermediate results

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0212461A (ja) * 1988-04-07 1990-01-17 Internatl Business Mach Corp <Ibm> リレーシヨナル・データベース・システムの問合せ文処理方法
JPH09231115A (ja) * 1996-02-23 1997-09-05 Mitsubishi Electric Corp データベース処理方法
JP2007034414A (ja) * 2005-07-22 2007-02-08 Masaru Kiregawa データベース管理システム及び方法
US20100211577A1 (en) * 2009-02-13 2010-08-19 Hitachi, Ltd. Database processing system and method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013136442A1 (ja) * 2012-03-13 2013-09-19 株式会社野村総合研究所 データ利用システム、時限データの履歴管理システム及びデータ処理システム
JPWO2013136442A1 (ja) * 2012-03-13 2015-08-03 株式会社野村総合研究所 データ処理システム

Also Published As

Publication number Publication date
JP5199317B2 (ja) 2013-05-15
US20130144867A1 (en) 2013-06-06
US9348866B2 (en) 2016-05-24
WO2012026140A1 (ja) 2012-03-01

Similar Documents

Publication Publication Date Title
JP5199317B2 (ja) データベース処理方法、データベース処理システム及びデータベースサーバ
US9317613B2 (en) Large scale entity-specific resource classification
CN102521416B (zh) 数据关联查询方法和数据关联查询装置
US9639542B2 (en) Dynamic mapping of extensible datasets to relational database schemas
CN103020204B (zh) 一种对分布式顺序表进行多维区间查询的方法及其系统
US20060069672A1 (en) Query forced indexing
CN103136228A (zh) 一种图片搜索方法以及图片搜索装置
US10810174B2 (en) Database management system, database server, and database management method
CN117725283B (zh) 一种基于大数据的档案数据存储系统
US9552415B2 (en) Category classification processing device and method
CN112269816B (zh) 一种政务预约事项相关性检索方法
CN103353901B (zh) 基于Hadoop分布式文件系统的表数据的有序管理方法以及系统
KR101744892B1 (ko) 시계열 계층 인덱싱을 이용한 데이터 검색 시스템 및 데이터 검색 방법
US11106739B2 (en) Document structures for searching within and across messages
JP5558514B2 (ja) 多重範囲スキャンでのnソートクエリを最適に処理する方法及び装置
JP5844895B2 (ja) データの分散検索システム、データの分散検索方法及び管理計算機
JP5458330B2 (ja) データベース処理方法及びデータベース処理システム
CN102339284B (zh) 数据库索引的建立方法及其电脑系统
JP5031416B2 (ja) 検索方法および検索装置
JP6201053B2 (ja) 素性データ管理システム、および素性データ管理方法
CN103891244B (zh) 一种进行数据存储和检索的方法及装置
JP5954742B2 (ja) 文書を検索する装置及び方法
JP2006092409A (ja) 複合データベース検索システムおよび複合データベース検索方法ならびにそのためのプログラム
WO2013069149A1 (ja) データ検索装置、データの検索方法及びプログラム
US12072939B1 (en) Federated data enrichment objects

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120604

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121106

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20121113

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130207

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

Free format text: PAYMENT UNTIL: 20160215

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5199317

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees