JP6823626B2 - データベース管理システム及び方法 - Google Patents

データベース管理システム及び方法 Download PDF

Info

Publication number
JP6823626B2
JP6823626B2 JP2018146963A JP2018146963A JP6823626B2 JP 6823626 B2 JP6823626 B2 JP 6823626B2 JP 2018146963 A JP2018146963 A JP 2018146963A JP 2018146963 A JP2018146963 A JP 2018146963A JP 6823626 B2 JP6823626 B2 JP 6823626B2
Authority
JP
Japan
Prior art keywords
query
query plan
cost
candidate
storage device
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.)
Active
Application number
JP2018146963A
Other languages
English (en)
Other versions
JP2020021417A (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.)
Hitachi Ltd
University of Tokyo NUC
Original Assignee
Hitachi Ltd
University of Tokyo NUC
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, University of Tokyo NUC filed Critical Hitachi Ltd
Priority to JP2018146963A priority Critical patent/JP6823626B2/ja
Priority to US16/282,342 priority patent/US11061907B2/en
Publication of JP2020021417A publication Critical patent/JP2020021417A/ja
Application granted granted Critical
Publication of JP6823626B2 publication Critical patent/JP6823626B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/2452Query translation
    • G06F16/24524Access plan code generation and invalidation; Reuse of access plans
    • 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/24558Binary matching operations
    • G06F16/2456Join operations
    • 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Power Sources (AREA)

Description

本発明は、概して、データ処理に関し、例えば、データベース管理に関する。
近年、いわゆるビッグデータ分析又はその他のデータ処理に関し、消費電力の上昇が懸念されている。
データベースに格納されている複数の関係表のうちの三個以上の関係表を結合するクエリを実行する場合、全ての関係表をパイプラインで結合するよりも一時表を一旦生成し、当該一時表を用いて残りの関係表を結合する方が、消費電力を低減できることがある。結合済の関係表に対するI/O(Input/Output)を抑制できるため、当該関係表を格納している記憶デバイスユニットの状態を省電力状態にすることができるからである。なお、「一時表」は、一部の関係表の結合結果である。「記憶デバイスユニット」は、一つ以上の記憶デバイスを意味する。
データベース管理の省電力化に関する技術は、特許文献1に開示されており、一時表に関する技術は、特許文献2に開示されている。
特開2008-210003号公報 国際公開第2011/118425号パンフレット
一時表を用いて残りの関係表を結合する方が常に消費電力を低減できるとは限らない。例えば、一時表のサイズによっては、消費電力の低い記憶デバイスユニット(例えば主記憶メモリ)に一時表を格納できず、消費電力の高い記憶デバイスユニット(例えばHDD(Hard Disk Drive))に一時表を格納することとなり、却って消費電力量が高くなることがあり得る。つまり、一時表のサイズによって一時表の格納先が変わり、その結果、消費電力量が高くなることがあり得る。特許文献1及び2のいずれも、このような課題やこのような課題を解決する手段を開示も示唆もしていない。
クエリがN個(Nは3以上の整数)の関係表の結合を示している場合、データベース管理システムは、第一、第二及び第三のクエリプラン候補を含む複数のクエリプラン候補を生成し、各クエリプラン候補の各々についてクエリコストを算出する。データベース管理システムは、複数のクエリプラン候補から相対的にクエリコストが低い(例えば、クエリコストが最も低い)クエリプラン候補を選択し、選択されたクエリプラン候補に基づくクエリを実行する。各クエリプラン候補について、クエリコストは、当該クエリプラン候補に基づきクエリを実行する際のコストであり当該クエリプラン候補に基づくクエリ実行に関わる消費電力量に基づいたコストである。第一のクエリプラン候補は、N個の関係表のうちのM個(Mは2以上且つN未満の整数)の関係表の結合結果としての一時表を生成し当該一時表を第一のアクセスコストの記憶デバイスユニットに格納することを経てN個の関係表の結合結果を得るクエリプランである。第二のクエリプラン候補は、上記一時表を生成し第一のアクセスコストよりも高い第二のアクセスコストの記憶デバイスユニットに当該一時表を格納することを経てN個の関係表の結合結果を得るクエリプランである。第三のクエリプラン候補は、上記一時表を生成すること無しにN個の関係表の結合結果を得るクエリプランである。第一のアクセスコストが、第一のクエリプラン候補のクエリコストに影響する。第二のアクセスコストが、第二のクエリプラン候補のクエリコストに影響する。
なお、「第一のアクセスコストの記憶デバイスユニット」と「第二のアクセスコストの記憶デバイスユニット」は、アクセスコストが異なっていれば記憶デバイスユニットそれ自体は同一でも異なっていてもよい。同一の記憶デバイスユニットであっても、クエリプランによってアクセス方法が異なると、アクセスコストが異なる。例えば、HDD(Hard Disk Drive)に対する連続参照と非連続参照ではI/O性能(アクセス性能)が異なる。
クエリの実行のための消費電力量を低く抑えることの確実性を高めることができる。
本発明の一実施形態に係るシステム全体の構成例を示す図である。 クエリプラン候補の生成の一例を示す概要図である。 一実施形態に係るデータベース管理システムが奏する効果の一例を示す概要図である。 ユーザ定義情報の構成を示す図である。 一実施形態に係るデータベース管理システムが行う処理の全体の流れを示すフローチャートである。 非パイプライン化拡張処理(図5のS503)の流れを示すフローチャートである。 クエリプラン候補の拡張の模式図である。 候補選択処理(図5のS505)の流れを示すフローチャートである。
以下の説明では、データベース管理システムを「DBMS」と言い、DBMSを有するサーバを「DBサーバ」と言う。DBMSに対するクエリの発行元は、DBMSの外部のコンピュータプログラム(例えばアプリケーションプログラム)でよい。外部のコンピュータプログラムは、DBサーバ内で実行されるプログラムでもよいし、DBサーバに接続された装置(例えばクライアント)で実行されるプログラムでもよい。
また、以下の説明では、「インターフェースユニット」は、一つ以上のインターフェースである。一つ以上のインターフェースは、一つ以上の同種のインターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種のインターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
また、以下の説明では、「記憶デバイスユニット」は、一つ以上の記憶デバイスである。記憶デバイスは、揮発性メモリ(例えば、主記憶メモリ)でもよいし、不揮発性メモリ(例えば、フラッシュメモリ又はそれを有するSSD(Solid State Drive))でもよいし、ディスクデバイス(例えば、HDD(Hard Disk Drive))でもよい。記憶デバイスユニットでは、全て同種の記憶デバイスの存在でもよいし、異種の記憶デバイスの混在でもよい。
また、以下の説明では、「プロセッサユニット」は、一つ以上のプロセッサである。少なくとも一つのプロセッサは、典型的には、CPU(Central Processing Unit)である。プロセッサは、処理の一部又は全部を行うハードウェア回路を含んでもよい。
また、以下の説明では、「kkk部」の表現にて機能を説明することがあるが、機能は、一つ以上のコンピュータプログラムがプロセッサユニットによって実行されることで実現されてもよいし、一つ以上のハードウェア回路(例えばFPGA(Field-Programmable Gate Array)又はASIC(Application Specific Integrated Circuit))によって実現されてもよい。プログラムがプロセッサユニットに実行されることによって機能が実現される場合、定められた処理が、適宜に記憶デバイスユニット及び/又はインターフェースユニットを用いながら行われるため、機能はプロセッサユニットの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサユニットあるいはそのプロセッサユニットを有する装置が行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。各機能の説明は一例であり、複数の機能が1つの機能にまとめられたり、1つの機能が複数の機能に分割されたりしてもよい。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通部分を使用し、同種の要素を区別する場合は、参照符号を使用することがある。例えば、記憶装置を区別しない場合には、「記憶装置150」と言い、記憶装置を区別する場合には、「記憶装置150A」、「記憶装置150B」、「記憶装置150C」のように言う。
以下、図面を参照しながら、本発明の一実施形態を説明する。なお、以下の説明により本発明が限定されるものではない。
図1は、本発明の一実施形態に係るDBMSを実行するDBサーバを含むシステム全体の構成例を示す図である。
DBサーバ100は、計算機システムの一例である。DBサーバ100は、例えば、パーソナルコンピュータ、ワークステーション又はメインフレームであってよいし、これらの計算機において仮想化プログラムによって構成された仮想的な計算機であってよいし、クラウド環境(例えば、インターフェースデバイス、記憶デバイス及びプロセッサといった複数の計算リソースを含んだ計算リソースプール)上で実現されてもよい。
DBサーバ100に、クライアント190及びストレージシステム110が接続される。
具体的には、例えば、DBサーバ100に、ネットワーク160Dを介してクライアント190が接続される。クライアント190は、クエリ発行元の一例であり、DBサーバ100にデータベースに対するクエリを発行する。
ストレージシステム110は、記憶装置150を有している。ストレージシステム110は、DBサーバ100からI/O要求を受けた場合には、当該I/O要求に応答して、記憶装置150に対するデータのI/Oを行う。ストレージシステム110として、例えば、記憶装置150Aを有するストレージシステム110Aと、記憶装置150Bを有するストレージシステム110Bとがある。DBサーバ100に、ネットワーク160Aを介してストレージシステム110Aが接続される。DBサーバ100に、ネットワーク160Bを介してストレージシステム110Bが接続される。ストレージシステム110Aとストレージシステム110B同士が、ネットワーク160Cを介して接続され、ネットワーク160Cが、DBサーバ100に接続される。
ネットワーク160A〜160Dは、通信速度及び消費電力の異なるネットワークでもよいし、ネットワーク160A〜160Dのうちの少なくとも二つが同一のネットワークでもよい。例えば、ネットワーク160A及び160Bの各々は、FC(Fibre Channel)ネットワークでよく、ネットワーク160Cは、イーサネット(登録商標)又はInfiniBandでよく、ネットワーク160Dは、LAN(Local Area Network)でよい。
DBサーバ100は、インターフェースユニット101、記憶装置150C及びそれらに接続されたプロセッサユニット102を有する。DBサーバ100は、キーボードやポインティングデバイス等の入力デバイス(図示しない)と液晶ディスプレイ等の出力デバイス(図示しない)を有してもよい。入力デバイス及び出力デバイスは、プロセッサユニット102に接続されていてよい。入力デバイスと出力デバイスは一体であってもよい。
インターフェースユニット101が、ネットワーク160A〜160Dに接続される。インターフェースユニット101経由で(ネットワーク160A〜160D経由で)、DBサーバ100は、ストレージシステム110A、110B及びクライアント190と通信することができる。
記憶装置150A〜150Cのいずれも、一つ以上の記憶デバイス170を有する。記憶装置150A〜150Cの構成は同一でも異なっていてもよい。同種の(例えばI/O性能が同等の)二つ以上の記憶デバイスで構成された記憶装置150があってもよいし、異種の(例えばI/O性能が異なる)二つ以上の記憶デバイスで構成された記憶装置150があってもよい。後者の記憶装置150の一例が、記憶装置150Bである。記憶装置150Bは、HDD170H、SSD(Solid State Drive)170S、フラッシュメモリ170F及びDRAM(Dynamic Random Access Memory)170Dといった複数種類の記憶デバイスを有する。HDD170H及びSSD170Sは、補助記憶ドライブの一例である。フラッシュメモリ170Fは、NVM(Non-Volatile Memory)の一例である。DRAM170Dは、主記憶メモリの一例である。記憶装置150A〜150Cの少なくとも一つに、データベースが格納される。
記憶装置150Cが、プロセッサユニット102によって実行されるプログラムと、プログラムが使用するデータを記憶する。プログラムとして、例えば、DBMS130及びOS(Operating System)120がある。DBMS130が、クライアント190からクエリを受け、そのクエリを実行する。そのクエリの実行において、DBMS130は、データベースからデータを読み込むために、又は、データベースにデータを書き込むために、I/O(Input/Output)要求をOS120に発行する。OS120は、そのI/O要求を受け、そのI/O要求に基づくI/O要求を記憶装置150へ発行し、結果をDBMS130に返す。
DBMS130は、クエリ受付部131、クエリプラン生成部132及びクエリ実行部133を有し、ユーザ定義情報145を管理する。なお、DBMS130の構成は一例に過ぎない。例えば、ある構成要素は複数の構成要素に分割されていてもよく、複数の構成要素が1つの構成要素に統合されていてもよい。例えば、後述のコスト算出部142及び候補選択部143は、クエリプラン生成部132の外に存在してもよい。
クエリ受付部131は、データベースに対するクエリをクライアント190から受け付ける。クエリは、例えば、SQL(Structured Query Language)によって記述される。
クエリプラン生成部132は、受け付けたクエリに基づいて当該クエリを実行するために必要なクエリプランを生成する。クエリプランは、例えば、一つ以上のデータベース演算子と、データベース演算子の実行順序の関係を含む情報である。クエリプランは、例えば、データベース演算子をノード、データベース演算子の実行順序の関係をエッジとする木構造で表されることがある。
本実施形態において、「クエリプランを生成」とは、一つ以上のクエリプラン候補を生成し当該一つ以上のクエリプラン候補から実行対象とする一つのクエリプラン候補を選択することである。クエリプラン生成部132は、候補生成部141、コスト算出部142及び候補選択部143を有する。候補生成部141は、一つ以上のクエリプラン候補を生成する。コスト算出部142は、当該一つ以上のクエリプラン候補の各々についてクエリコストを算出する。各クエリプラン候補について、クエリコストは、当該クエリプラン候補に基づきクエリを実行する際のコストであり、当該クエリプラン候補に基づくクエリ実行に関わる消費電力量に基づいたコストである。クエリコストが高い程、消費電力量が大きい(及び/又は、クエリの実行時間が長い)傾向にある。候補選択部143は、一つ以上のクエリプラン候補から相対的にクエリコストが低いクエリプラン候補を選択する。なお、「相対的にクエリコストが低いクエリプラン候補」は、例えば、昇順のクエリコストのうち上位X%(例えばXは0より大きい所定の数値)に属するいずれかのクエリプラン候補でよい。本実施形態では、「相対的にクエリコストが低いクエリプラン候補」は、典型的には(例えば、いずれのクエリプラン候補も後述の実行時間、最大電力及び消費電力量のいずれの上限も超えていなければ)、最もクエリコストが低いクエリプラン候補である。
クエリ実行部133は、生成されたクエリプラン(選択されたクエリプラン候補)に基づいてクエリを実行し当該クエリの実行結果をクライアント190に返す。また、クエリ実行部133は、当該クエリプランに基づき、適宜、一部の記憶デバイス170の状態を省電力状態に変更したり、別の一部の記憶デバイス170の省電力状態を解除したりすることができる。記憶デバイス170の状態を変更するために、クエリ実行部133は、当該記憶デバイス170に対する指示(例えば、当該記憶デバイス170が基になっている論理デバイスを指定した状態遷移指示)を送信することができる。当該指示に応答して、記憶デバイス170(又は、ストレージシステム110)により、当該記憶デバイス170の状態が遷移する。なお、クエリ実行において、クエリ実行部133は、データベース演算子を実行するためのタスクを生成し、生成されたタスクを実行することで、そのタスクに対応したデータベース演算子に必要なデータの読込み要求を発行することができる。クエリ実行部133は、一のタスクで複数のデータベース演算子を実行してもよい。タスクの実装としては、例えば、OS120が実現するプロセスやカーネルスレッド等のほか、ライブラリ等が実現するユーザスレッドを用いてよい。
ユーザ定義情報145は、DBMS130のユーザにより定義されクエリコストの算出に使用される情報である。ユーザ定義情報145の少なくとも一部は、クエリ受付部131が受け付けたクエリに記述されていてもよい。ユーザ定義情報145は、例えば、一時表の格納先、及び、クエリコストの算出に使用されるパラメータ(例えば後述の実行時、最大電力及び消費電力量)の係数及び上限を示す情報を含む。
以上が、本実施形態に係るシステム全体についての説明である。
本実施形態において、データベースは、複数個の関係表を含む。複数個の関係表が、記憶装置150A〜150Cの少なくとも一つにおける複数の記憶デバイス170に格納される。また、選択されたクエリプラン候補によっては、一時表が生成されて、記憶装置150A〜150Cの少なくとも一つに格納される。以下の説明では、関係表と一時表を「表」と総称することがある。一個の表が、一つの記憶デバイス170に収まることもあれば、二つ以上の記憶デバイス170に跨ることもある。各表について、当該表が格納される一つ以上の記憶デバイス170を、以下、「記憶デバイス群」と言うことがある。複数個の表が共通の記憶デバイス群に格納されてもよい。記憶装置150及び記憶デバイス群のいずれも、記憶デバイスユニットの一例でよい。記憶デバイス群は、一つの記憶装置150に存在してもよいし、二つ以上の記憶装置150に跨ってもよい。関係表及び一時表の格納先は任意でもよいし予め定義されていてもよい。例えば、データベース(複数個の関係表)は、ストレージシステム110Aの記憶装置150Aに格納され、一時表は、ストレージシステム110Bの記憶装置150Bに格納されるようになっていてもよい。
また、図1の例によれば、記憶装置150A〜150Cが存在するが、一部の記憶装置150は無くてもよい。例えば、関係表も一時表も、同一のストレージシステム110A(又は110B)における記憶装置150A(又は110B)に格納されてもよい。また、ストレージシステム110A及び110Bが無く、関係表も一時表も、DBサーバ100内の記憶装置150Cに格納されてもよい。
以下、クエリプランの生成について、詳細に説明する。
図2は、クエリプラン候補の生成の一例を示す概要図である。
受け付けたクエリが、図2に示すクエリであるとする。当該クエリによれば、関係表C(customer表)、関係表O(order表)及び関係表L(lineitem表)という三個の関係表の結合が必要である。関係表C、O及びLは、N個(Nは3以上の整数)の表の一例である。関係表C、O及びLの少なくとも一個は、データベースにおけるインデックス経由でアクセスされてもよい。
候補生成部141は、図2に示すクエリに基づいて、複数のクエリプラン候補を生成する。複数のクエリプラン候補は、一時表を生成せずパイプラインで三個の関係表C、O及びLを結合するクエリプラン候補(クエリプラン1(QP1))と、一時表の生成という非パイプライン化処理(データベース演算子の一例)を含むクエリプラン候補(クエリプラン2(QP2))とを含む。QP2によれば、符号d1が、非パイプライン化処理であるデータベース演算子であり、符号q1及びq2は、それぞれ、データベース演算子d1で区切られたQP2の部分木である。すなわち、QP2によれば、関係表Cと関係表Oの結合結果としての一時表が生成され(部分木q1)、その後、当該一時表と残りの関係表Lが結合される(部分木q2)。関係表Cと関係表Oの結合結果としての一時表は、M個(Mは2以上且つN未満の整数)の関係表の結合結果としての一時表の一例である。
図3は、DBMS130が奏する効果の一例を示す概要図である。
関係表C、O及びLが記憶装置150Aに格納されているとする。具体的には、関係表Cが、記憶デバイス群300−A1に格納されており、関係表Oが、記憶デバイス群300−A2に格納されており、関係表Lが、記憶デバイス群300−A3に格納されているとする。
QP1の実行では、期間T1の間、関係表C、O及びLそれぞれへのI/Oが、短い時間の間にインターリーブするため、記憶デバイス群300−A1〜300−A3のいずれも省電力状態にすることが難しい。なお、記憶デバイス群300について、「省電力状態」とは、当該記憶デバイス群300に属する少なくとも一つの記憶デバイス(例えば全ての記憶デバイス)が消費電力を低減するためI/O要求への応答を停止している状態(例えば、電源オフ、スリープ状態又はスタンバイ状態)である。省電力状態以外の状態は、「通常状態」と呼ばれてよい。QP1は、第三のクエリプラン候補の一例である。
一方、QP2の実行では、図示の通り、I/Oに時間的局所性を持たせることが可能となり、結果として、クエリ実行期間中に一部の記憶デバイス群300の状態を省電力状態にすることができる。具体的には、例えば、関係表Cと関係表Oの結合処理の期間(一時表を生成する期間)T2には、クエリ実行部133は、関係表Lを格納している記憶デバイス群300−A3の状態を省電力状態にする。関係表Lに対するI/Oが行われないためである。作成された一時表は、当該一時表の基になった関係表C及びOを格納するデバイス群300−A1及び300−A2以外の場所、例えば、DBサーバ100の記憶装置150Cに格納される。その後、一時表と関係表Lの結合処理の期間T3には、クエリ実行部133は、関係表Lを格納している記憶デバイス群300−A3の省電力状態を解除し、関係表C及びOを格納するデバイス群300−A1及び300−A2の状態を省電力状態にする。関係表Lに対するI/Oが行われ、関係表C及びOに対するI/Oが行われないためである。
複数のクエリプラン候補の一例であるQP1及びQP2の各々について、コスト算出部142が、クエリコストを算出する。図3の例では、QP2の方がQP1よりもクエリコストが低く、故に、QP2が候補選択部143により選択される。
本実施形態では、一時表の格納先となり得る記憶デバイス群300は、アクセスコストの異なる複数の記憶デバイス群300のいずれかである。言い換えれば、例えば、QP2ように非パイプライン化処理が走るクエリプラン候補は、一時表の格納先として選択され得る記憶デバイス群300毎に生成され得る。このため、本実施形態では、少なくとも、候補生成部141は、第一のアクセスコストの記憶デバイス群300に一時表を格納することを含むクエリプラン候補(第一のクエリプラン候補の一例)と、第一のアクセスコストよりも高い第二のアクセスコストの記憶デバイス群300に一時表を格納することを含むクエリプラン候補(第二のクエリプラン候補の一例)とを生成する。第一のアクセスコストが、第一のクエリプラン候補のクエリコストに影響し、第二のアクセスコストが、第二のクエリプラン候補のクエリコストに影響する。このように、本実施形態では、QP1の他に、一時表の格納先に応じた第一及び第二のクエリプラン候補が生成される。そして、それらのクエリプラン候補を含む複数のクエリプラン候補の各々についてクエリコストが算出され、複数のクエリプラン候補からクエリコストが最も低いクエリプラン候補が選択される。つまり、一時表のサイズによって一時表の格納先が変わり得ること、及び、一時表を生成することを経ることが却ってクエリコストが高くなり得ることのいずれもが考慮される。故に、クエリの実行のための消費電力量を低く抑えることの確実性を高めることができる。
各クエリプラン候補についてのクエリコストの算出の一例を説明する。以下、一つのクエリプラン候補を例に取る(ここから図4の説明の開始までにおいて、「対象クエリプラン候補」と言う)。
対象クエリプラン候補は、一つ以上のデータベース演算子(di)から構成されている。対象クエリプラン候補(データベース演算子の集合)をQとすると、Q=d1, …, dnと表現することができる。この場合、対象クエリプラン候補(Q)について、実行時間を、数1のように表現でき、最大電力を、数2のように表現でき、消費電力量を、数3のように表現できる。
すなわち、対象クエリプラン候補(Q)について、実行時間、最大電力及び消費電力量は、それぞれ例えば下記の通りである。
・実行時間(例えば[sec])は、一つ以上のデータベース演算子にそれぞれ対応した一つ以上の実行時間の総和である。
・最大電力(例えば[W])は、一つ以上のデータベース演算子にそれぞれ対応した一つ以上の消費電力のうちの最大値である。
・消費電力量(例えば[Wsec])は、一つ以上のデータベース演算子にそれぞれ対応した一つ以上の消費電力量の総和である。
また、各データベース演算子について、実行時間は、例えば下記のうちの少なくとも一つに基づく。以下、一つのデータベース演算子を例に取る(以下、「対象データベース演算子」と言う)。
・対象データベース演算子によってアクセスされる(I/Oがされる)表部分のサイズ、及び、当該表部分を格納した記憶領域の容量、の少なくとも一方。表部分のサイズは、例えば、当該表部分を構成するレコードの数と、一つのレコードのサイズとに基づく。表部分を格納した記憶領域の容量は、例えば、当該表部分を格納するページの数と、一つのページのサイズとに基づく。一つ以上の記憶デバイス170に基づく論理的な記憶領域がデータベース領域として提供され、データベース領域が、複数のページで構成され、ページ単位でアクセスがされてよい。
・対象データベース演算子でのスループット、及び、対象データベース演算子でのレイテンシ、のうちの少なくとも一方。対象データベース演算子でのスループットは、例えば、対象データベース演算子に関わる複数の機器(例えば、ストレージシステム110、記憶デバイス170、ネットワーク160及びDBサーバ100のうちの一つ以上の機器)にそれぞれ対応した複数のスループットのうちの最小値でよい。最小のスループットの機器が対象データベース演算子のボトルネックとなり得るからである。対象データベース演算子でのレイテンシも、例えば、対象データベース演算子に関わる複数の機器にそれぞれ対応した複数のレイテンシのうちの最小値でよい。
また、各データベース演算子について、消費電力は、例えば下記に基づく。以下、一つのデータベース演算子を例に取る(以下、「対象データベース演算子」と言う)。
・対象クエリプラン候補の実行においてアクセスされる一つ以上の記憶デバイス170の消費電力と、当該一つ以上の記憶デバイス170を有する一つ以上の装置の消費電力とのうちの少なくとも一つ。例えば、対象データベース演算子の消費電力は、対象データベース演算子に関わる複数の機器(例えば、ストレージシステム110、記憶デバイス170、ネットワーク160及びDBサーバ100のうちの一つ以上の機器)にそれぞれ対応した複数の消費電力の総和である。
また、各データベース演算子について、消費電力量は、例えば下記である。以下、一つのデータベース演算子を例に取る(以下、「対象データベース演算子」と言う)。
・対象データベース演算子の実行時間と対象データベース演算子の消費電力との積。
コスト算出部142は、対象クエリプラン候補(Q)のクエリコストを、対象クエリプラン候補についての消費電力量に基づき算出する。コスト算出部142は、対象クエリプラン候補のクエリコストを、対象クエリプラン候補についての消費電力量に代えて又は加えて、対象クエリプラン候補についての実行時間に基づき算出してもよい。対象クエリプラン候補のクエリコストは、消費電力量それ自体でもよい。実行時間及び消費電力量の両方にクエリコストが基づく場合、実行時間の係数(重み)を実行時間に反映すること、及び、消費電力量の係数を消費電力量に反映すること、のうちの少なくとも一つが行われてよい。
なお、対象クエリプラン候補が、上述した第一のクエリプラン候補である場合、対象クエリプラン候補のクエリコスト(例えば実行時間)が、第一のアクセスコスト(第一のクエリプラン候補に従う一時表格納に係るアクセスコスト)の影響を受ける。第一のアクセスコストは、例えば、一時表の格納先の記憶デバイスユニットへアクセスする場合のレイテンシ、スループット、及び、当該記憶デバイスユニットの容量、うちの少なくとも一つに基づく。同様に、対象クエリプラン候補が、上述した第二のクエリプラン候補である場合、対象クエリプラン候補のクエリコスト(例えば実行時間)が、第二のアクセスコスト(第二のクエリプラン候補に従う一時表格納に係るアクセスコスト)の影響を受ける。第二のアクセスコストは、例えば、一時表の格納先の記憶デバイスユニットへアクセスする場合のレイテンシ、スループット、及び、当該記憶デバイスユニットの容量、うちの少なくとも一つに基づく。第一のアクセスコストの基になるレイテンシ、スループット、及び容量のうちの少なくとも一つは、第二のアクセスコストの基になるレイテンシ、スループット、及び容量のうちの少なくとも一つよりも優れている。
対象クエリプラン候補のクエリコスト(例えば、対象クエリプラン候補の実行時間、最大電力及び消費電力量のうちの少なくとも一つ)の算出では、更に詳細なパラメータが使用されてよい。詳細なパラメータとしては、例えば、結合方法(例えば、ネステッドループジョインであるかハッシュジョインであるか)や、データベース演算子に関わる機器の稼働率等を採用することができる。
図4は、ユーザ定義情報145の構成を示す図である。
ユーザ定義情報145は、例えば、クエリ毎に存在してもよいし、二つ以上のクエリで共通でもよい。ユーザ定義情報145は、一時表格納先401、拡張フラグ402、強制フラグ403、実行時間係数404、消費電力量係数405、実行時間上限406、最大電力上限407、及び、消費電力量上限408といった情報要素を含む。これらの情報要素401〜408のうちの少なくとも一つが、受け付けたクエリで指定されていてもよい。以下、一つのクエリを例に取る(図4の説明において「対象クエリ」と言う)。なお、情報要素404〜408の各々の値について、図示の間隔は一例であり、図示の間隔よりも大きな間隔又は小さな間隔が採用されてもよい。
一時表格納先401は、対象クエリの実行において生成され得る一時表の格納先となり得る場所を示す。一時表格納先401としての値は、記憶デバイス170の種類及び数のうちの少なくとも一つでもよいし、一つ以上の記憶デバイス170に基づく論理記憶領域のIDでもよい。
拡張フラグ402は、クエリプラン候補の拡張を行うか否か(非パイプライン化処理を含んだクエリプラン候補を生成するか否か)を示す。“1”は、クエリプラン候補の拡張を行うことを意味し、“0”は、クエリプラン候補の拡張を行わないことを意味する。
強制フラグ403は、強制実行を行うか否かを示す。「強制実行」とは、実行時間上限406、最大電力上限407及び消費電力量上限408の全てを満たすクエリプラン候補が一つも無くても対象クエリを実行することを意味する。“1”は、強制実行を行うことを意味し、“0”は、強制実行を行わないことを意味する。
実行時間係数404は、各クエリプラン候補についての実行時間の重みを示し、各クエリプラン候補について、クエリコストの算出の際に当該クエリプラン候補の実行時間T(Q)の係数とされる。
消費電力量係数405は、各クエリプラン候補についての消費電力量の重みを示し、各クエリプラン候補について、クエリコストの算出の際に当該クエリプラン候補の消費電力量E(Q)の係数とされる。
実行時間上限406は、各クエリプラン候補について、当該クエリプラン候補の実行時間の上限を示す。
最大電力上限407は、各クエリプラン候補について、当該クエリプラン候補の最大電力の上限を示す。
消費電力量上限408は、各クエリプラン候補について、当該クエリプラン候補の消費電力量の上限を示す。
以下、本実施形態で行われる処理の一例を説明する。
図5は、DBMS130が行う処理の全体の流れを示すフローチャートである。
クエリ受付部131が、クエリをクライアント190から受け付ける(S501)。
候補生成部141が、S501で受け付けられたクエリに基づきクエリプラン候補を生成し(S502)、S502で生成されたクエリプラン候補を拡張する処理である非パイプライン化拡張処理を行う(S503)。なお、S503の非パイプライン化拡張処理は、S502のクエリプラン候補生成で実施されてもよい。具体的には、例えば、候補生成部141は、S502において、実行時間が遅くなると予想される(例えば実行時間が実行時間上限406を超えると予想される)クエリプラン候補を生成しないという枝刈りを実施するが、非パイプライン化拡張処理がクエリプラン候補生成で実施されることで、枝刈りが走ることを避けることができる。例えば、拡張フラグ402=“1”且つ強制フラグ403=“1”の場合には、枝刈りが走らない。結果として、実行時間上限406、最大電力上限407及び消費電力量上限408のうちの少なくとも一つを満たさないがクエリコストが低いクエリプラン候補が生成されることが期待できる。
コスト算出部142が、S502及びS503において生成されたクエリプラン候補毎にクエリコストを算出する(S504)。候補選択部143が、一つのクエリプラン候補を選択する候補選択処理を行う(S505)。
クエリ実行部133が、S505で選択されたクエリプラン候補に基づきクエリを実行し、実行結果をクライアント190に返す(S506)。
図6は、非パイプライン化拡張処理(図5のS503)の流れを示すフローチャートである。
候補生成部141が、拡張フラグ=“1”か否かを判断する(S601)。S601の判断結果が偽の場合(S601:No)、非パイプライン化拡張処理が終了する。
S601の判断結果が真の場合(S601:Yes)、候補生成部141が、S502で生成された各クエリプラン候補について、S602〜S604を行う。以下、一つのクエリプラン候補を例に取る(図6の説明において「対象クエリプラン候補」と言う)。
候補生成部141が、対象クエリプラン候補に結合可能箇所(非パイプライン化処理が可能な箇所)があるか否かを判断する(S602)。S602の判断結果が偽の場合(S602:No)、対象クエリプラン候補についてS603及びS604は行われない。
S602の判断結果が真の場合(S602:Yes)、候補生成部141が、結合可能箇所の数に応じて対象クエリプラン候補を拡張する(S603)。結果として、対象クエリプラン候補を基に、結合可能箇所の数に応じた数のクエリプラン候補が生成される。次に、S603で生成された各クエリプラン候補について、候補生成部141が、当該クエリプラン候補を、一時表の格納先(一時表格納先401から特定される格納先)の数に応じて対象クエリプラン候補を拡張する(S604)。結果として、S603で生成された各クエリプラン候補について、当該クエリプラン候補を基に、一時表の格納先の数に応じた数のクエリプラン候補が生成される。
図7は、クエリプラン候補の拡張の模式図である。
S502で、クエリに基づき一つ以上のクエリプラン候補が生成される。次に、S603で、S502で生成された各クエリプラン候補について、当該クエリプラン候補を基に、当該クエリプラン候補における結合可能箇所の数に応じた数のクエリプラン候補が生成される。最後に、S604で、S603で生成された各クエリプラン候補について、当該クエリプラン候補を基に、一時表の格納先の数に応じた数のクエリプラン候補が生成される。一個の一時表が二つ以上の記憶デバイス170に跨る場合、その記憶デバイス170の組合せの数に応じて、S604で生成されるクエリプラン候補は更に多いことが期待される。
このように、クエリプラン候補の数は、結合可能箇所(結合結果としての一時表を生成することが可能なデータベース演算子)の数に依存する。クエリプラン候補の数は、更に、一時表の格納先の数に依存する。
図8は、候補選択処理(図5のS505)の流れを示すフローチャートである。
候補選択部143が、少なくとも一つのクエリプラン候補が実行時間上限406、最大電力上限407及び消費電力量上限408の全てを満たすか否かを判断する(S801)。
S801の判断結果が真の場合(S801:Yes)、候補選択部143が、実行時間上限406、最大電力上限407及び消費電力量上限408の全てを満たす一つ以上のクエリプラン候補の中から、最もクエリコストが低いクエリプラン候補を選択する(S803)。
S801の判断結果が偽の場合(S801:No)、候補選択部143が、強制フラグ403=“1”か否かを判断する(S802)。S802の判断結果が偽の場合(S802:No)、候補選択処理が終了する。
S802の判断結果が真の場合(S802:Yes)、候補選択部143が、実行時間上限406、最大電力上限407及び消費電力量上限408の少なくとも一つを満たさない一つ以上のクエリプラン候補の中から、最もクエリコストが低いクエリプラン候補を選択する(S803)。
すなわち、候補選択処理によれば、候補選択部143は、実行時間上限406、最大電力上限407及び消費電力量上限408の全てを満たすクエリプラン候補が一つ以上ある場合、当該一つ以上のクエリプラン候補から最もクエリコストが低いクエリプラン候補を選択する。一方、実行時間上限406、最大電力上限407及び消費電力量上限408の全てを満たすクエリプラン候補が一つもが無いが、強制実行を行うことの設定がある場合、候補選択部143は、実行時間上限406、最大電力上限407及び消費電力量上限408の少なくとも一つを満たさない一つ以上のクエリプラン候補の中から、最もクエリコストが低いクエリプラン候補を選択する。
以上、一実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
100…DBサーバ

Claims (15)

  1. 複数の関係表を含むデータベースに対するクエリをクエリ発行元から受け付けるクエリ受付部と、
    前記受け付けたクエリに基づいて当該クエリを実行するために必要なクエリプランを生成するクエリプラン生成部と、
    前記生成されたクエリプランに基づいて前記クエリを実行し前記クエリの実行結果を前記クエリ発行元に返すクエリ実行部と
    を有し、
    前記クエリが、前記複数の関係表のうちのN個(Nは3以上の整数)の関係表の結合を示している場合、
    前記クエリプラン生成部が、
    第一、第二及び第三のクエリプラン候補を含む複数のクエリプラン候補を生成し、
    前記複数のクエリプラン候補の各々について、当該クエリプラン候補に基づき前記クエリを実行する際のコストであり当該クエリプラン候補に基づくクエリ実行に関わる消費電力量に基づくコストであるクエリコストを算出し、
    前記複数のクエリプラン候補から相対的にクエリコストが低いクエリプラン候補を選択し、
    前記生成されたクエリプランは、前記選択されたクエリプラン候補であり、
    前記第一のクエリプラン候補は、前記N個の関係表のうちのM個(Mは2以上且つN未満の整数)の関係表の結合結果としての一時表を生成し前記一時表を第一のアクセスコストの記憶デバイスユニットに格納することを経て前記N個の関係表の結合結果を得るクエリプランであり、前記第一のアクセスコストが、前記第一のクエリプラン候補のクエリコストに影響し、
    前記第二のクエリプラン候補は、前記一時表を生成し前記第一のアクセスコストよりも高い第二のアクセスコストの記憶デバイスユニットに前記一時表を格納することを経て前記N個の関係表の結合結果を得るクエリプランであり、前記第二のアクセスコストが、前記第二のクエリプラン候補のクエリコストに影響し、
    前記第三のクエリプラン候補は、前記一時表を生成すること無しに前記N個の関係表の結合結果を得るクエリプランである、
    データベース管理システム。
  2. 前記複数のクエリプラン候補の各々について、前記クエリコストは、当該クエリプラン候補の実行にかかる時間である実行時間に基づく、
    請求項1に記載のデータベース管理システム。
  3. 前記複数のクエリプラン候補の各々について、当該クエリプラン候補に基づくクエリ実行に関わる消費電力量は、当該クエリプラン候補に基づくクエリ実行にかかる実行時間と、当該クエリプラン候補に基づくクエリ実行での消費電力とに基づき、
    前記実行時間は、下記のうちの少なくとも一つに基づき、
    当該クエリプラン候補の実行における一つ以上のデータベース演算子の各々について、当該データベース演算子においてアクセスされる表部分のサイズ、及び、当該表部分を格納した記憶領域の容量、の少なくとも一方、
    当該クエリプラン候補の実行における一つ以上のデータベース演算子の各々について、当該データベース演算子でのスループット、及び、当該データベース演算子でのレイテンシ、のうちの少なくとも一方、
    前記消費電力は、当該クエリプラン候補の実行においてアクセスされる一つ以上の記憶デバイスの消費電力と、当該一つ以上の記憶デバイスを有する一つ以上の装置の消費電力とのうちの少なくとも一つに基づく、
    請求項1に記載のデータベース管理システム。
  4. 実行時間の上限があり、
    前記クエリプラン生成部は、実行時間が前記上限以下であるクエリプラン候補から相対的にクエリコストが低いクエリプラン候補を選択する、
    請求項2又は3に記載のデータベース管理システム。
  5. 前記クエリプラン生成部は、
    実行時間が前記上限以下であるクエリプラン候補が一つ以上ある場合、当該一つ以上のクエリプラン候補から相対的にクエリコストが低いクエリプラン候補を選択し、
    実行時間が前記上限以下であるクエリプラン候補が無いが、実行時間が前記上限を超えることを許容することの設定がある場合、実行時間が前記上限を超えるクエリプラン候補から相対的にクエリコストが低いクエリプラン候補を選択する、
    請求項4に記載のデータベース管理システム。
  6. クエリプラン候補の数は、結合結果としての一時表を生成することが可能なデータベース演算子である結合可能箇所の数に依存する、
    請求項1乃至5のうちのいずれか1項に記載のデータベース管理システム。
  7. 前記クエリプラン候補の数は、更に、一時表の格納先の数に依存する、
    請求項6に記載のデータベース管理システム。
  8. 前記第一のアクセスコストの記憶デバイスユニットに関し、当該第一のアクセスコストは、当該記憶デバイスユニットへアクセスする場合のレイテンシ、スループット、及び、当該記憶デバイスユニットの容量、うちの少なくとも一つに基づき、
    前記第二のアクセスコストの記憶デバイスユニットに関し、当該第二のアクセスコストは、当該記憶デバイスユニットへアクセスする場合のレイテンシ、スループット、及び、当該記憶デバイスユニットの容量、うちの少なくとも一つに基づき、
    前記第一のアクセスコストの基になる前記レイテンシ、前記スループット、及び前記容量のうちの少なくとも一つは、前記第二のアクセスコストの基になる前記レイテンシ、前記スループット、及び前記容量のうちの少なくとも一つよりも優れている、
    請求項1乃至6のうちのいずれか1項に記載のデータベース管理システム。
  9. 前記M個の関係表のうちの少なくとも一個の関係表が、第一の記憶デバイスユニットに格納されており、
    前記N個の関係表のうち前記M個の関係表以外のうちの少なくとも一個の関係表が、第二の記憶デバイスユニットに格納されており、
    前記選択されたクエリプラン候補が、前記第一のクエリプラン候補と前記第二のクエリプラン候補のうちのいずれかである場合、前記クエリ実行部は、
    前記一時表の生成のために前記M個の関係表を参照する間、前記第二の記憶デバイスユニットの状態を、省電力状態に変更し、
    前記M個の関係表以外の関係表を参照する間、前記第一の記憶デバイスユニットの状態を、省電力状態に変更する、
    請求項1に記載のデータベース管理システム。
  10. 複数の関係表を含むデータベースに対するクエリをクエリ発行元から受け付け、
    前記受け付けたクエリに基づいて当該クエリを実行するために必要なクエリプランを生成し、
    前記生成されたクエリプランに基づいて前記クエリを実行し前記クエリの実行結果を前記クエリ発行元に返し、
    前記クエリが、前記複数の関係表のうちのN個(Nは3以上の整数)の関係表の結合を示している場合、
    前記クエリプランの生成において、
    第一、第二及び第三のクエリプラン候補を含む複数のクエリプラン候補を生成し、
    前記複数のクエリプラン候補の各々について、当該クエリプラン候補に基づき前記クエリを実行する際のコストであり当該クエリプラン候補に基づくクエリ実行に関わる消費電力量に基づいたコストであるクエリコストを算出し、
    前記複数のクエリプラン候補から相対的にクエリコストが低いクエリプラン候補を選択し、
    前記生成されたクエリプランは、前記選択されたクエリプラン候補であり、
    前記第一のクエリプラン候補は、前記N個の関係表のうちのM個(Mは2以上且つN未満の整数)の関係表の結合結果としての一時表を生成し前記一時表を第一のアクセスコストの記憶デバイスユニットに格納することを経て前記N個の関係表の結合結果を得るクエリプランであり、前記第一のアクセスコストが、前記第一のクエリプラン候補のクエリコストに影響し、
    前記第二のクエリプラン候補は、前記一時表を生成し前記第一のアクセスコストよりも高い第二のアクセスコストの記憶デバイスユニットに前記一時表を格納することを経て前記N個の関係表の結合結果を得るクエリプランであり、前記第二のアクセスコストが、前記第二のクエリプラン候補のクエリコストに影響し、
    前記第三のクエリプラン候補は、前記一時表を生成すること無しに前記N個の関係表の結合結果を得るクエリプランである、
    データベース管理方法。
  11. 前記複数のクエリプラン候補の各々について、前記クエリコストは、当該クエリプラン候補の実行にかかる時間である実行時間に基づく、
    請求項10に記載のデータベース管理方法。
  12. 実行時間の上限があり、
    前記クエリプランの生成では、実行時間が前記上限以下であるクエリプラン候補から相対的にクエリコストが低いクエリプラン候補を選択する、
    請求項11に記載のデータベース管理方法。
  13. クエリプラン候補の数は、結合結果としての一時表を生成することが可能な処理である結合可能箇所の数に依存する、
    請求項10乃至12のうちのいずれか1項に記載のデータベース管理方法。
  14. 前記第一のアクセスコストの記憶デバイスユニットに関し、当該第一のアクセスコストは、当該記憶デバイスユニットへアクセスする場合のレイテンシ、スループット、及び、当該記憶デバイスユニットの容量、うちの少なくとも一つに基づき、
    前記第二のアクセスコストの記憶デバイスユニットに関し、当該第二のアクセスコストは、当該記憶デバイスユニットへアクセスする場合のレイテンシ、スループット、及び、当該記憶デバイスユニットの容量、うちの少なくとも一つに基づき、
    前記第一のアクセスコストの基になる前記レイテンシ、前記スループット、及び前記容量のうちの少なくとも一つは、前記第二のアクセスコストの基になる前記レイテンシ、前記スループット、及び前記容量のうちの少なくとも一つよりも優れている、
    請求項10乃至13のうちのいずれか1項に記載のデータベース管理方法。
  15. 前記M個の関係表のうちの少なくとも一個の関係表が、第一の記憶デバイスユニットに格納されており、
    前記N個の関係表のうち前記M個の関係表以外のうちの少なくとも一個の関係表が、第二の記憶デバイスユニットに格納されており、
    前記選択されたクエリプラン候補が、前記第一のクエリプラン候補と前記第二のクエリプラン候補のうちのいずれかである場合、前記クエリの実行の際に、
    前記一時表の生成のために前記M個の関係表を参照する間、前記第二の記憶デバイスユニットの状態を、省電力状態に変更し、
    前記M個の関係表以外の関係表を参照する間、前記第一の記憶デバイスユニットの状態を、省電力状態に変更する、
    請求項10乃至14のうちのいずれか1項に記載のデータベース管理方法。
JP2018146963A 2018-08-03 2018-08-03 データベース管理システム及び方法 Active JP6823626B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018146963A JP6823626B2 (ja) 2018-08-03 2018-08-03 データベース管理システム及び方法
US16/282,342 US11061907B2 (en) 2018-08-03 2019-02-22 Database management system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018146963A JP6823626B2 (ja) 2018-08-03 2018-08-03 データベース管理システム及び方法

Publications (2)

Publication Number Publication Date
JP2020021417A JP2020021417A (ja) 2020-02-06
JP6823626B2 true JP6823626B2 (ja) 2021-02-03

Family

ID=69229649

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018146963A Active JP6823626B2 (ja) 2018-08-03 2018-08-03 データベース管理システム及び方法

Country Status (2)

Country Link
US (1) US11061907B2 (ja)
JP (1) JP6823626B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10896066B2 (en) * 2018-12-13 2021-01-19 Shopify Inc. Rate limiting in query processing based on computation cost
KR102125010B1 (ko) * 2020-03-17 2020-06-19 김명훈 데이터베이스 전환 분석 시스템 및 방법
US11210288B2 (en) 2020-05-12 2021-12-28 Coupang Corp. Systems and methods for reducing database query latency

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001155018A (ja) * 1999-11-25 2001-06-08 Hitachi Ltd データベースシステム
US20030158842A1 (en) * 2002-02-21 2003-08-21 Eliezer Levy Adaptive acceleration of retrieval queries
JP4908260B2 (ja) * 2007-02-23 2012-04-04 優 喜連川 計算機システム、及び省電力化方法
US8312007B2 (en) * 2008-05-08 2012-11-13 International Business Machines Corporation Generating database query plans
US9189047B2 (en) * 2008-05-08 2015-11-17 International Business Machines Corporation Organizing databases for energy efficiency
US7941426B2 (en) * 2008-05-08 2011-05-10 International Business Machines Corporation Optimizing database queries
WO2011118425A1 (ja) * 2010-03-24 2011-09-29 日本電気株式会社 クエリ最適化システム、クエリ最適化装置、及びクエリ最適化方法
US8447772B2 (en) * 2010-06-23 2013-05-21 International Business Machines Corporation Energy monetary cost aware query optimization
GB2508223A (en) * 2012-11-26 2014-05-28 Ibm Estimating the size of a joined table in a database
US10242058B2 (en) * 2015-07-14 2019-03-26 International Business Machines Corporation Access path optimization through system statistics
JP6690829B2 (ja) * 2015-08-28 2020-04-28 国立大学法人 東京大学 計算機システム、省電力化方法及び計算機

Also Published As

Publication number Publication date
US20200042521A1 (en) 2020-02-06
US11061907B2 (en) 2021-07-13
JP2020021417A (ja) 2020-02-06

Similar Documents

Publication Publication Date Title
JP5276218B2 (ja) リアルタイムでlunをファイルに、またはファイルをlunに変換すること
US8438282B2 (en) Information processing system and load sharing method
US8601213B2 (en) System, method, and computer-readable medium for spool cache management
JP4571609B2 (ja) リソース割当方法、リソース割当プログラム、および、管理コンピュータ
JP6823626B2 (ja) データベース管理システム及び方法
KR102236419B1 (ko) 액세스 요청을 관리하기 위한 방법, 장치, 기기 및 저장 매체
US11030169B1 (en) Data re-sharding
JP4801761B2 (ja) データベース管理方法およびシステム並びにその処理プログラム
JP6707797B2 (ja) データベース管理システム及びデータベース管理方法
US20170228422A1 (en) Flexible task scheduler for multiple parallel processing of database data
JP6269140B2 (ja) アクセス制御プログラム、アクセス制御方法、およびアクセス制御装置
JP2005234834A (ja) 論理ボリュームの再配置方法
WO2017126003A1 (ja) 複数種類のメモリデバイスを含む計算機システム及び方法
US20160139957A1 (en) Method and system for scheduling virtual machines in integrated virtual machine clusters
US11494383B2 (en) Database management system and database management method
Schall et al. Dynamic physiological partitioning on a shared-nothing database cluster
CN105518664B (zh) 管理数据库节点
JP6210501B2 (ja) データベース管理システム、計算機、データベース管理方法
JP6695973B2 (ja) 計算機システム及びデータベース管理方法
US10747446B2 (en) Computer system and storage device activation control method
US11609909B2 (en) Zero copy optimization for select * queries
Zhou et al. ApproxSSD: Data layout aware sampling on an array of SSDs
양영석 A Flexible Architecture for Optimizing Distributed Data Processing
CN117453735A (zh) 镜像缩放云数据库
JP5146440B2 (ja) 無共有型データベース管理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200203

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201210

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210108

R150 Certificate of patent or registration of utility model

Ref document number: 6823626

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150