JP2022168859A - コンピュータ実装方法、コンピュータプログラム、及びシステム(予測クエリ処理) - Google Patents
コンピュータ実装方法、コンピュータプログラム、及びシステム(予測クエリ処理) Download PDFInfo
- Publication number
- JP2022168859A JP2022168859A JP2022071984A JP2022071984A JP2022168859A JP 2022168859 A JP2022168859 A JP 2022168859A JP 2022071984 A JP2022071984 A JP 2022071984A JP 2022071984 A JP2022071984 A JP 2022071984A JP 2022168859 A JP2022168859 A JP 2022168859A
- Authority
- JP
- Japan
- Prior art keywords
- input variable
- query statement
- predictive model
- computer
- querying
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24549—Run-time optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2425—Iterative querying; Query formulation based on the results of a preceding query
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/244—Grouping and aggregation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2448—Query languages for particular applications; for extensibility, e.g. user defined types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】アクセス経路の選択を改善することが可能なコンピュータ実装方法、コンピュータプログラム及びシステム(予測クエリ処理)を提供する。【解決手段】方法は、入力変数を含むクエリステートメント表現を含む着信クエリステートメントを受信する段階3002と、入力変数に関連した入力変数値を予測する段階3004と、予測済みの入力変数値に依存した着信クエリステートメントのランタイム実行用のアクセス経路を選択する段階3010と、選択されたアクセス経路を使用して、着信クエリステートメントのランタイム実行を遂行する段階と、を含む。【選択図】図3
Description
データベースは、コンピュータシステムから電子的にアクセスされるデータの編成された収集物によって定義され得る。データベースは、関連したデータベース管理システム(DBMS)を有し得る。データベースのデータは、データの行及び列を有する一連のテーブルにおいて編成され得る。データベーステーブルは、同様にして、1又は複数のインデックスを含み得る。インデックスは、データベーステーブルへのアクセスを改善するデータ構造によって提供され得る。
構造化クエリ言語(SQL)は、データベース管理システム(DBMS)においてプログラミングデータ管理に使用されるドメイン固有言語である。SQLクエリステートメントは、INSERTクエリ動作、UPDATEクエリ動作、SELECTクエリ動作、及びDELETEクエリ動作等の様々なデータベース演算のパフォーマンスに使用され得る。INSERT動作は、レコードをデータベーステーブルに入力するパフォーマンスに使用され得、SELECT動作は、データベーステーブルからデータを取得するために使用され得、UPDATE動作は、データベーステーブル内の値を変更するために使用され得、DELETE動作は、データをデータベーステーブルから除去するために使用され得る。
SQLは、相関的なデータスツール管理システム(RDSMS)のデータをプログラミング及び管理するために使用され得る。SQLは、構造化データを処理するために使用され得る。ここで、定義される関係は、トレーニング済みの異なるエンティティ若しくはデータの変数又はその両方である。SQLは、データクエリ言語(DQL)、データ定義言語(DDL)、データ制御言語(DCL)、及びデータ操作言語(DML)を含む様々なサブ言語を含み得る。SQLの使用と共に、例えば、データクエリ、データ操作(挿入、更新、若しくは削除又はその組み合わせ)、データ定義(スキーマ作成及び修正)、及びデータアクセス制御を含む様々な演算が、データベース上で遂行され得る。
データ構造は、コンピュータシステムの演算を改善するために使用されている。データ構造は、改善されたコンピュータシステムの演算についてのコンピュータ環境におけるデータの編成を指す。データ構造タイプは、コンテナ、リスト、スタック、キュー、テーブル、及びグラフを含む。データ構造は、例えば、アルゴリズム効率、メモリ利用効率、保全性、及び信頼性の観点から、コンピュータシステムの演算を改善するために使用されている。
人工知能(AI)は、マシンによって示される知能を指す。人工知能(AI)リサーチは、検索及び数理最適化、ニューラルネットワーク、並びに確率を含む。人工知能(AI)ソリューションは、コンピュータサイエンス、数学、心理学、言語学、統計学、及び神経科学に及ぶ様々な異なる科学技術の領域におけるリサーチから導出された特徴を含む。機械学習は、明示的にプログラム化されることなくコンピュータに学習する能力を与える研究分野として、説明されている。
アクセス経路の選択が、クエリステートメントの入力変数に関連したクエリステートメントの入力変数値を予測することを含む方法を使用することにより改善され得る。
一態様において、方法の提供を通じて、先行技術の欠点が克服され、追加の利点が提供される。方法は、例えば、着信クエリステートメントを受信する段階であって、着信クエリステートメントは、入力変数を含むクエリステートメント表現を含む、受信する段階と、入力変数に関連した入力変数値を予測する段階と、予測済みの入力変数値に依存したクエリステートメントのランタイム実行用のアクセス経路を選択する段階と、選択されたアクセス経路を使用して、クエリステートメントのランタイム実行を遂行する段階とを含み得る。
他の態様において、コンピュータプログラム製品が提供され得る。コンピュータプログラム製品は、1又は複数の処理回路によって可読であり、方法を遂行するために1又は複数のプロセッサによる実行のための命令を格納するコンピュータ可読記憶媒体を含み得る。方法は、例えば、着信クエリステートメントを受信する段階であって、着信クエリステートメントは、入力変数を含むクエリステートメント表現を含む、受信する段階と、入力変数に関連した入力変数値を予測する段階と、予測済みの入力変数値に依存したクエリステートメントのランタイム実行用のアクセス経路を選択する段階と、選択されたアクセス経路を使用して、クエリステートメントのランタイム実行を遂行する段階とを含み得る。
さらなる態様において、システムが提供され得る。システムは、例えば、メモリを含み得る。さらに、システムは、メモリと通信する1又は複数のプロセッサを含み得る。さらに、システムは、方法を遂行すべく、メモリを介して1又は複数のプロセッサによって実行可能であるプログラム命令を含み得る。方法は、例えば、着信クエリステートメントを受信する段階であって、着信クエリステートメントは、入力変数を含むクエリステートメント表現を含む、受信する段階と、入力変数に関連した入力変数値を予測する段階と、予測済みの入力変数値に依存したクエリステートメントのランタイム実行用のアクセス経路を選択する段階と、選択されたアクセス経路を使用して、クエリステートメントのランタイム実行を遂行する段階とを含み得る。
一態様において、方法の提供を通じて、先行技術の欠点が克服され、追加の利点が提供される。方法は、例えば、着信クエリステートメントを受信する段階であって、着信クエリステートメントは、入力変数を含むクエリステートメント表現を含む、受信する段階と、クエリステートメントのランタイム実行用のアクセス経路を選択する段階と、選択されたアクセス経路を使用して、クエリステートメントのランタイム実行を遂行する段階であって、クエリステートメントのランタイム実行を遂行する段階は、入力変数に対する入力変数値を決定する段階を有する、遂行する段階と、予測モデルをトレーニングするためのトレーニングデータとして、決定された入力変数値を適用する段階であって、予測モデルは、入力変数に関連した入力変数値についての予測を返答するように構成される、適用する段階と、着信クエリステートメントの後続のインスタンスを受信する段階であって、着信クエリステートメントは、入力変数を含むクエリステートメント表現を含む、受信する段階と、着信クエリステートメントの後続のインスタンスにおける入力変数の入力変数値を予測すべく、予測モデルを問い合わせる段階と、予測済みの入力変数値に依存したクエリステートメントの後続のインスタンスのランタイム実行用のアクセス経路を選択する段階と、選択されたアクセス経路を使用して、クエリステートメントの後続のインスタンスのランタイム実行を遂行する段階とを含み得る。
他の態様において、コンピュータプログラム製品が、提供され得る。コンピュータプログラム製品は、1又は複数の処理回路によって可読であり、方法を遂行するために1又は複数のプロセッサによる実行のための命令を格納するコンピュータ可読記憶媒体を含み得る。方法は、例えば、着信クエリステートメントを受信する段階であって、着信クエリステートメントは、入力変数を含むクエリステートメント表現を含む、受信する段階と、クエリステートメントのランタイム実行用のアクセス経路を選択する段階と、選択されたアクセス経路を使用して、クエリステートメントのランタイム実行を遂行する段階であって、クエリステートメントのランタイム実行を遂行する段階は、入力変数に対する入力変数値を決定する段階を有する、遂行する段階と、予測モデルをトレーニングするためのトレーニングデータとして、決定された入力変数値を適用する段階であって、予測モデルは、入力変数に関連した入力変数値についての予測を返答するように構成される、適用する段階と、着信クエリステートメントの後続のインスタンスを受信する段階であって、着信クエリステートメントは、入力変数を含むクエリステートメント表現を含む、受信する段階と、着信クエリステートメントの後続のインスタンスにおける入力変数の入力変数値を予測すべく、予測モデルを問い合わせる段階と、予測済みの入力変数値に依存したクエリステートメントの後続のインスタンスのランタイム実行用のアクセス経路を選択する段階と、選択されたアクセス経路を使用して、クエリステートメントの後続のインスタンスのランタイム実行を遂行する段階とを含み得る。
さらなる態様において、システムが提供され得る。システムは、例えば、メモリを含み得る。さらに、システムは、メモリと通信する1又は複数のプロセッサを含み得る。さらに、システムは、方法を遂行すべく、メモリを介して1又は複数のプロセッサによって実行可能であるプログラム命令を含み得る。方法は、例えば、着信クエリステートメントを受信する段階であって、着信クエリステートメントは、入力変数を含むクエリステートメント表現を含む、受信する段階と、クエリステートメントのランタイム実行用のアクセス経路を選択する段階と、選択されたアクセス経路を使用して、クエリステートメントのランタイム実行を遂行する段階であって、クエリステートメントのランタイム実行を遂行する段階は、入力変数に対する入力変数値を決定する段階を有する、遂行する段階と、予測モデルをトレーニングするためのトレーニングデータとして、決定された入力変数値を適用する段階であって、予測モデルは、入力変数に関連した入力変数値についての予測を返答するように構成される、適用する段階と、着信クエリステートメントの後続のインスタンスを受信する段階であって、着信クエリステートメントは、入力変数を含むクエリステートメント表現を含む、受信する段階と、着信クエリステートメントの後続のインスタンスにおける入力変数の入力変数値を予測すべく、予測モデルを問い合わせる段階と、予測済みの入力変数値に依存したクエリステートメントの後続のインスタンスのランタイム実行用のアクセス経路を選択する段階と、選択されたアクセス経路を使用して、クエリステートメントの後続のインスタンスのランタイム実行を遂行する段階とを含み得る。
追加機能が、本明細書に記載されている技術によって実現される。方法、コンピュータプログラム製品、及びシステムを含むがこれらに限定されない他の実施形態及び態様が、本明細書で詳細に説明され、請求項に係る発明の一部とみなされる。
本発明の1又は複数の態様が、具体的に指摘され、本明細書の結論において特許請求の範囲における例として、明確に請求される。本発明の前述及び他のオブジェクト、特徴、及び利点は、添付図面と併せて以下の詳細な説明から明らかになる。
図1の一実施形態において、データベースの応答時間を改善する際に使用されるシステム100が記載されている。一実施形態によれば、システム100は、関連したデータレポジトリ108を有する管理者システム110と、企業システム120A-120Zと、管理者のクライアントコンピュータデバイス130と、データベースシステム140とを含み得る。一実施形態によれば、管理者システム110、企業システム120A-120Z、管理者のクライアントコンピュータデバイス130、及びデータベースシステム140は、コンピューティングノードベースのデバイス及びシステムによって提供され得、ネットワーク190を介して互いと通信し得る。ネットワーク190は、物理ネットワーク若しくは仮想ネットワーク又はその両方であり得る。物理ネットワークは、例えば、コンピュータサーバ及びコンピュータクライアント等の、多数のコンピュータノード又はシステムを接続する物理遠隔通信ネットワークであり得る。仮想ネットワークは、例えば、多数の物理ネットワーク又はその一部を、論理仮想ネットワークに統合し得る。他の例において、多数の仮想ネットワークは、単一の物理ネットワークにわたって定義され得る。
一実施形態によれば、管理者システム110、企業システム120A-120Z、管理者のクライアントコンピュータデバイス130、及びデータベースシステム140のそれぞれは、互いの外側に位置し得、例えば、異なる物理的なコンピューティングノード等の異なるコンピューティングノードに配置される。一実施形態によれば、管理者システム110、企業システム120A-120Z、管理者のクライアントコンピュータデバイス130、及びデータベースシステム140のうちの1又は複数は、管理者システム110、企業システム120A-120Z、又は管理者のクライアントコンピュータデバイス120、又はデータベースシステム140のうちの少なくとも1つに配置され得る。
一実施形態によれば、データベースシステム140は、構造化クエリ言語(SQL)ベースのクエリステートメントに応答することができるSQLデータベースシステムによって提供され得る。システム100を使用している過程で、データベースシステム140は、企業システム130A-130Zの1又は複数の企業システムからクエリを受信し得る。データベースシステム140によって受信されたクエリは、SQLステートメント等のクエリステートメントの形態を取り得る。データベースシステム140は、データベース136及びデータベース管理システム(DBMS)1400を含み得る。データベース136は、テーブル3121及びインデックス3122を含み得る。テーブル3121は、データをデータの列及び行に論理的に編成し得る。テーブル内のデータの行は、レコードを定義し得る。テーブル3121の各テーブルは、0又はそれより多くのインデックス3122のインデックスをそれに関連付け得る。
本明細書の実施形態によって、クエリステートメントを処理する既存のアプローチを用いて、ランタイム実行処理を遂行する際に使用されるアクセス経路が、クエリステートメントの入力変数に関連したクエリステートメントの入力変数値を決定する時刻より前に選択され得ることを認識する。アクセス経路の複数の候補を選択することは、アクセス経路の候補がスコアリングされ得るコスト解析の対象であり得る。本明細書の実施形態によって、アクセス経路の選択が、クエリステートメントの入力変数に関連したクエリステートメントの入力変数値を予測することを含む方法を使用することにより改善され得ることを認識する。一実施形態によれば、DBMS1400は、(a)クエリステートメントの入力変数に関連したクエリステートメントの入力変数値を予測することと、(b)予測済みのクエリステートメントの入力変数値に依存して、アクセス経路の候補からアクセス経路を選択することとを行うように構成され得る。1つの具体的な実施形態によれば、DBMS1400は、(a)クエリステートメントの入力変数に関連したクエリステートメントの入力変数値を予測することと、(b)予測済みのクエリステートメントの入力変数値に依存して、アクセス経路の候補をスコアリングする際に使用されるフィルタ因子を選択することと、(c)適用されたフィルタ因子を使用してアクセス経路の候補のコストスコアリングを遂行することと、(d)コストスコアリングに基づいて、アクセス経路の候補からアクセス経路を選択することとを行うように構成され得る。
アクセス経路は、(a)アクセス方法の特性、(b)結合順序の特性、(c)結合方法の特性、及び/又は、(d)ソート選択特性のうちの1又は複数によって特徴付けられ得る。
(a)アクセス方法の特性は、ベーステーブルにアクセスする方式を指し得る。一実施形態によれば、以下の2つの方法が存在し得る。(1)テーブルスキャン(リレーショナルスキャン):最初の行から最後の行まで、本ベーステーブルからレコードをスキャンし、SQLにおいて指定された述部を修飾する行をピックアップすることを指し得る。(2)インデックススキャン:ベーステーブル内のレコードにアクセスするインデックスを使用することを指し得る。一実施形態によれば、テーブルスキャンを遂行するデータベースは、例えば、テーブルの全ての行を読み取り得、1又は複数の選択基準をテーブル内の行に適用し得る。テーブル内の行は、保証された順序ではなく処理され得るが、通常、連続的に処理され得る。特定のクエリステートメント値について、テーブルスキャンは、行の非同期的なプリフェッチングによって、ページI/O動作を減らし得る。一実施形態によれば、生産データベースは、処理のために、メインメモリ内に可能な限り多くの行をもたらす大きいI/Oを要求し得、テーブルスキャン動作がメモリ内にページングされている行を待機しないことを保証するために、データを非同期的にプリフェッチングし得る。インデックススキャンによれば、データベースは、例えば、指定されたインデックスの範囲内の行をスキャンすることによって、修飾行のセットを縮小すするインデックスにアクセスし得る。インデックスの指定された範囲内の行をスキャンするとき、生産データベースは、インデックス列が比較されているクエリステートメントの値によってインデックススキャンの範囲を決定し得る。インデックスのみのスキャンの場合において、要求されたデータの全てがインデックス内にあるので、生産データベースは、インデックスされたテーブルにアクセスしなくてよい。
(b)結合順序の特性は、2のベーステーブルの結合、例えば、内部結合(Inner Join)又は外部結合(Outer Join)の結合'順序'を指し得る。
(c)結合方法の特性は、結合の間、2つのテーブルを接続する方式を指し得る。一実施形態によれば、結合方法は、例えば、ネストループ結合(Nest Loop Join)、マージソート結合(Merge Sort Join)、ハイブリッド結合(Hybrid Join)、若しくはハッシュ結合(Hybrid Join)又はその組み合わせを含み得る。図6は、一例として、ネストループ結合を示す。ネストループ結合によれば、例えば、外部テーブルのアクセスされる行ごとに内部テーブルのスキャン、又は、外部テーブルのアクセスされる行ごとに内部テーブルに対するインデックス検索が遂行され得る。
(d)ソート特性は、データベース内のソート動作を指し得る。例示的なものは、例えば、GROUP BY、ORDER BY動作を含み得る。
DBMS1400によって処理されるクエリステートメントは、クエリステートメントのランタイム実行の間、入力変数値によって置換される1又は複数の入力変数を含み得る。入力変数は、ホスト変数又はパラメータマーカーによって提供され得る。クエリステートメントは、静的なクエリステートメント若しくは動的なクエリステートメント又はその両方を含み得る。静的なクエリステートメントは、ホスト変数によって提供される入力変数を含み得、動的なクエリステートメントは、パラメータマーカーによって提供される入力変数を含み得る。ホスト変数は、例えば、PL/I変数、C変数、フォートラン変数、REXX変数、Java(登録商標)変数、COBOLデータ項目、又はアセンブラ言語のストレージ領域等のホスト言語における変数を指し得る。ホスト変数は、例えば、SQL拡張を使用して宣言された変数からSQLプリコンパイラによって生成されたホスト言語構造を指し得る。アプリケーションは、パラメータマーカーを適用変数に関連付け得る。パラメータマーカーは、その値がステートメントの実行の間に取得されるクエリステートメントにおけるプレースホルダによって提供され得る。
テーブルAの例において、クエリステートメント表現"AND O_ORDERDATE>=?"、"AND O_ORDERDATE<?"、及び"AND L_RETURNFLAG=?"は、テーブルAのクエリステートメントのランタイム実行の間に決定される入力変数値と置換される、それぞれの入力変数を含む。
本明細書の実施形態は、クエリステートメントの1又は複数のクエリステートメントの入力変数値を予測することと、クエリステートメントの入力変数値に依存したクエリステートメントのランタイム実行用のアクセス経路を選択することとを含み得る。本明細書の実施形態は、クエリステートメントのランタイム実行より前にクエリステートメントの1又は複数のクエリステートメントの入力変数値を予測することと、クエリステートメントの入力変数値に依存したクエリステートメントのランタイム実行用のアクセス経路を選択することとを含み得る。本明細書の実施形態は、クエリステートメントのランタイム実行の間に1又は複数のクエリステートメントの入力変数値を決定することより前に、クエリステートメントの1又は複数のクエリステートメントの入力変数値を予測することと、クエリステートメントの入力変数値に依存したクエリステートメントのランタイム実行用のアクセス経路を選択することとを含み得る。
本明細書の実施形態によれは、クエリステートメントの処理の既存のアプローチの課題を認識する。クエリステートメントの処理の1つの既存のアプローチによれば、データベースシステムは、異なる生成されたアクセス経路の候補を分析すべく、束縛時間処理の間に、コスト解析に基づいてランタイム実行処理を遂行する際に使用されるアクセス経路を確立し得る。静的なクエリステートメントの場合において、既存のアプローチによれば、生産データベースは、特定の静的なクエリステートメントの第1の受け取りに応答して、アクセス経路を確立するために束縛時間処理を遂行し得、特定の静的なクエリステートメントの後続の受け取りに応答して、ランタイム実行を遂行するために確立されたアクセス経路を使用し得る。動的なクエリステートメントの場合において、既存のアプローチによれば、データベースは、特定の動的なクエリステートメントの第1の受け取り及びそれぞれの後続の受け取りに応答して、アクセス経路を確立するために束縛時間処理を遂行し得る。静的なクエリステートメントを処理する場合又は動的なクエリステートメントを処理する場合のいずれかにおいて、既存のアプローチによる生産データベースは、束縛時間処理の間にアクセス経路を確立し得、ランタイム処理の間に確立されたアクセス経路に従って、クエリステートメントを実行し得る。
本明細書の実施形態によれば、クエリステートメントの入力変数値は、束縛時間処理の間、未知であり得るが、確立されたアクセス経路のパフォーマンスは、クエリステートメントのランタイム実行に対する実行ランタイム時より後に決定及び返答される、異なるクエリステートメントの入力変数値に対して顕著に変化し得ることを認識する。本明細書の実施形態によれば、最適化されたアクセス経路を選択するためのアクセス経路の選択が、ランタイム実行の間のその決定より前に入力変数値を予測し、予測済みの入力変数値に依存したクエリステートメントのランタイム実行用のアクセス経路を選択することによって、顕著に改善され得ることを認識する。本明細書の実施形態によれば、予測済みの入力変数値に依存したアクセス経路を選択するによって、最適化されたパフォーマンスを示す可能性が高いアクセス経路が選択されることをもたらし得ることを認識する。
DBMS1400は、クエリステートメントを処理するためのクエリ処理プロセス141、及びロギングプロセス142を含む様々なプロセスを実行し得る。クエリステートメントを処理するためのクエリ処理プロセス141を実行するDBMS1400は、クエリステートメントの束縛時間処理を遂行し、クエリステートメントのランタイム実行処理を遂行するDBMS1400を含み得る。クエリステートメントの束縛時間処理を遂行する際に、DBMS1400は、クエリステートメントに対する予測済みの入力変数値に依存したクエリステートメントを実行するためのアクセス経路を選択し得る。クエリステートメントの入力変数値を予測することについて、DBMS1400は、クエリステートメント及び関連した入力変数を識別し得、クエリステートメントに関連した予測モデル及び予測済みの入力変数値の返答用の関連した入力変数を問い合わせ得る。クエリステートメントを識別することについて、DBMS1400は、クエリステートメントに関連したメタデータを検査することを遂行し得る。メタデータを検査することは、着信クエリステートメントのメタデータを、DBMS1400のデータレポジトリ138のメタデータを識別するクエリステートメントに相互参照することを含み得る。
DBMS1400のデータレポジトリ138は、クエリステートメントの処理の際に使用されるデータを含む様々なデータを格納し得る論理データレポジトリであり得る。クエリステートメントの領域3131内のデータレポジトリ138は、データレポジトリ138によって処理されている過去のクエリステートメントを識別する、識別メタデータを格納し得る。データベースシステム140の展開期間の間に、共通クエリステートメントが、データベースシステム140の展開期間において数百回、又は、数千回、又はそれ以上処理され得ることが予測され得る。その演算中のデータベースシステム140は、例えば、数十、数百、又は数千の異なるクエリステートメントを同時に処理し得る。クエリステートメントを識別するメタデータは、例えば、任意の割り当てられた識別ラベル、若しくは、クエリステートメントのスキーマの検査によって抽出されたスキーマ署名識別子又はその両方を含み得る。クエリステートメントの領域3131内の固有のクエリステートメントを識別するメタデータの各インスタンスに関連して、識別されたクエリステートメントの属性を指定する属性データが格納され得る。属性データは、例えば、クエリステートメントの1又は複数の入力変数に対する識別子、及び、1又は複数の入力変数に関連した予測モデルの識別子を含み得る。
モデル領域3132において、データレポジトリ138は、入力変数を含むクエリステートメント表現に関連した、トレーニングされ、且つ、アクティブな予測モデルを格納し得る。モデル領域3132に格納されている、トレーニングされ、且つ、アクティブな予測モデルは、クエリステートメント表現の入力変数に関連したクエリステートメントの入力変数値を予測し得る。システム100は、アクティブであると決定されるホスト変数値を予測し、精度を満たす閾値に従って予測を遂行するための予測モデルのトレーニングに関する管理者システム110が、データレポジトリ138に格納するために、アクティブな予測モデルをデータベースシステム140にプッシュし得るように動作可能であり得る。
ロギング領域3133において、データレポジトリ138は、クエリステートメントの過去の実行から再調整されたロギングデータを格納し得る。ロギングデータは、クエリステートメントに関連した過去の入力変数値を含み得る。ロギングデータはまた、例えば、時間全体にわたるテーブルのサイズ、クエリステートメントの実行から返答された返答データセットのサイズ、及びクエリステートメントの過去の実行から返答された過去のテーブルレコードの識別子を示す統計上のロギングデータを含み得る。
決定データ構造領域3134において、データレポジトリ138は、受信したクエリステートメントを評価する際にDBMS1400によって使用される決定データ構造を格納し得る。そのような決定データ構造の例は、アクセス経路の候補のコストスコアリングを容易にするマッピング決定データ構造を含み得る。そのようなマッピング決定データ構造は、クエリステートメント表現をフィルタ因子の値にマッピングするマッピング決定データ構造を含み得る。
着信クエリステートメントを処理するためのクエリ処理プロセス141を実行するときのDBMS1400は、クエリステートメント及び1又は複数の関連した入力変数値を識別するとすぐに、データレポジトリ138のモデル領域3132を検査し得、クエリステートメントの1又は複数の入力変数値に対する予測を返答し得る、クエリステートメントの任意のアクティブな予測モデルを識別し得る。クエリステートメントの入力変数値を予測するアクティブな予測モデルを識別するとすぐに、DBMS1400は、入力変数に関連した予測済みのクエリステートメントの入力変数値を返答するアクティブな予測モデルを問い合わせ得る。DBMS1400は、次に、入力変数に関連した予測済みのクエリステートメントの入力変数値に依存したクエリステートメントを実行するためのアクセス経路を選択し得る。
1つの具体的な実施形態において、DBMS1400は、予測済みの入力変数値を使用してアクセス経路のそれぞれの候補のコストスコアリングを遂行し得、スコアに依存したクエリステートメントの実行のために、アクセス経路の候補のうちの1を選択し得る。
クエリ処理プロセス141を実行するDBMS1400は、アクセス経路を選択するとすぐに、選択されたアクセス経路を使用して、クエリステートメントのランタイム実行処理を遂行し得る。
ロギングプロセス142を実行するDBMS1400は、DBMS1400によって実行された実行クエリステートメントに関するロギングデータを生成し得る。DBMS1400によって処理されたそれぞれのクエリステートメントに対するロギングデータは、クエリステートメントの入力変数に関連した入力変数値を含み得る。ロギングデータはまた、例えば、時間全体にわたるテーブルのサイズ、クエリステートメントの実行から返答された返答データセットのサイズ、及びクエリステートメントの過去の実行から返答された過去のテーブルレコードの識別子を示す統計上のロギングデータを含み得る。ロギングプロセス142を実行するDBMS1400は、生成されたロギングデータをデータレポジトリ138のロギング領域3133に格納し得、入力変数に関連したクエリステートメントの入力変数値を予測する予測モデルをトレーニングする際に管理者システム110によって使用される、選択済みのロギングデータを管理者システム110にプッシュし得る。ロギングプロセス142を実行するDBMS1400は、管理者システム110による処理のために、ロギングプロセス142によって生成されたロギングデータを反復的に送信するDBMS1400を含み得る。ロギングプロセス142を実行するDBMS1400は、ある時間間隔で、又は、代替的に、それぞれの着信クエリステートメントを実行した終わりで、ロギングデータを管理者システム110に送信し得る。DBMS1400によって送信されるロギングデータは、クエリステートメントの1又は複数の入力変数のそれぞれについて、クエリステートメントの実行によって返答される、決定された入力変数値を指定するロギングデータを含み得る。決定された入力変数値は、クエリステートメントの実行ランタイムの間に決定され得る。
管理者システム110がロギングデータを受け取るとすぐに、管理者システム110は、予測モデルをトレーニングすべく、受信したロギングデータを使用し得る。管理者システム110によってトレーニング済みの予測モデルは、クエリステートメントの入力変数に関連したクエリステートメントの入力変数値を予測する予測モデルを含み得る。図1に示されるような管理者システム110は、予測モデルをトレーニングし、クエリステートメントを処理するためにクエリ処理プロセス141を遂行する際にデータベースシステム140によって使用されるアクティブなトレーニング済みの予測モデルをプッシュすることを担当し得る。
データレポジトリ108内の管理者システム110は、管理者システム110によるトレーニングの対象となる予測モデルをモデル領域2121に含み得る。決定データ構造領域2122において、データレポジトリ108は、管理者システム110による動作決定の返答の際に使用される決定データ構造を格納し得る。動作決定は、例えば、予測モデルをアクティブにする動作決定を含み得る。予測モデルは、予測モデルが精度のレベルを満たす閾値を示す予測を生成するときにアクティブになり得る。
ロギング領域2123内のデータレポジトリ108は、クエリステートメントの過去の実行について、入力変数に関連した過去のクエリステートメントの入力変数値を指定するロギングデータを格納し得る。ロギングデータは、DBMS1400によるロギングプロセス142のパフォーマンスにより、DBMS1400からデータベースシステム140が受信したロギングデータを含み得る。管理者システム110は、クエリステートメントの入力変数に関連したホスト変数値を予測する予測モデルをトレーニングするために、ロギング領域2123のロギングデータを使用し得る。機械学習プロセス111を実行する管理者システム110は、モデル領域2121の予測モデルをトレーニングし得る。データベースシステム140によって処理されるそれぞれのクエリステートメントは、ホスト変数値がクエリステートメントのランタイム実行の間の入力変数の置換に対して決定される、1又は複数の入力変数を含み得る。モデル領域2121内のデータレポジトリ108は、データベースシステム140によって処理されるそれぞれのクエリステートメントに関連したそれぞれの入力変数ごとに予測モデルを格納し得る。
機械学習プロセス111を実行する管理者システム110は、データベースシステム140によって処理されるそれぞれのクエリステートメントの入力変数に関連した、説明された予測モデルを反復的にトレーニングし得る。機械学習プロセス111を実行する管理者システム110は、DBMS1400から直近に受信した受信済みのロギングデータを使用して、それぞれの説明されたモデルを反復的にトレーニングする管理者システム110を含み得る。ロギングデータは、クエリステートメントの入力変数とデータベースシステム140によって処理されたクエリステートメントの直近の実行から決定された入力変数値との間でデータをマッピングすることを含み得る。動作決定プロセス112を実行する管理者システム110は、特定の予測モデルが閾値の精度条件を満たすクエリステートメントの入力変数値に対する予測を返答していることを決定する管理者システム110を含み得る。そのような動作決定を遂行することについて、動作決定プロセス112を実行する管理者システム110は、予測モデルに関連してホールドアウトデータによって定義されたグラウンドトゥルースデータに対して、予測モデルによって生成された予測を検査し得る。
動作決定プロセス112を実行する管理者システム110は、予測モデルが閾値の精度条件を満たす予測を返答しているか否かを決定することに応じて、予測モデルに関連したアクティブ/非アクティブなフラグ状態ラベルを制御する管理者システム110を含み得る。動作決定プロセス112を実行する管理者システム110は、予測モデルに関連したアクティブな状態ラベルによって指定され得るように、予測モデルが閾値の精度を満たす予測を生成している、という決定に応じて、動作決定を返答し、モデル領域3132に格納するためにアクティブなトレーニング済みの予測モデルをデータベースシステム140にプッシュし得る。データベースシステム140に一旦プッシュされると、クエリ処理プロセス141を実行するデータベースシステム140は、着信クエリステートメントを処理する際に、アクティブな予測モデルを使用し得る。
図2のフローチャートを参照すると、企業システム120A-120Z及び管理者システム110と相互作用する、データベースシステム140によるパフォーマンスのための方法が、説明される。ブロック1201では、企業システム120A-120Zは、データベースシステム140による受け取りのために、トランザクションクエリデータを反復的に送信し得る。ブロック1201で送信されるトランザクションクエリデータは、複数の企業システムからのクエリステートメントによって定義され得る。それぞれのクエリステートメントを受け取るとすぐに、ブロック1401でのデータベースシステム140は、クエリ処理ブロック1401を遂行し得る。ブロック1401でクエリ処理プロセスを遂行するDBMS1400は、図1に関連して説明されたクエリ処理プロセス141を遂行するDBMSを含み得る。ブロック1401でのDBMS1400は、束縛時間処理及びクエリステートメントのランタイム実行を遂行し得る。束縛時間処理において、DBMS1400は、コスト解析を使用してアクセス経路の様々な候補をスコアリングし得、コスト解析に基づいてアクセス経路の候補のうちの1つを選択し得る。ランタイム実行の間、DBMS1400は、選択されたアクセス経路を使用するクエリステートメントを実行し得る。本明細書で記載されているように、アクセス経路を選択することは、クエリステートメントの入力変数に関連した予測済みのクエリステートメントの入力変数値に依存して遂行され得る。DBMS1400は、クエリステートメントの束縛時間処理の間、クエリステートメントの1又は複数の入力変数に関連した1又は複数の入力変数値を予測し得、アクセス経路の候補のコストスコアリングのパフォーマンスにおいて予測済みの入力変数値を使用し得る。コストスコアリングに基づいて、DBMS1400は、1又は複数の予測済みの入力変数値に依存したクエリステートメントのランタイム実行用のアクセス経路の候補からアクセス経路を選択し得る。
図3は、DBMS1400がクエリ処理ブロック1401で束縛時間処理を遂行する方法3000の一例を説明するフローチャートを示す。図3で説明される方法3000のブロック3002では、DBMS1400は、企業システム120A-120Zの企業システムからクエリステートメントを受信し得る。
ブロック3004では、DBMS1400は、ブロック3004で受信した着信クエリステートメントを識別し得る。一実施形態によれば、データベースシステム140のデータレポジトリ138は、クエリステートメントの領域3131に、DBMS1400によって処理された過去のクエリステートメントの識別メタデータを格納し得る。メタデータは、それぞれのクエリステートメントに割り当てられた、任意の割り当てられたメタデータであり得、及び/又は、クエリステートメントの処理によって外挿された、外挿されたメタデータであり得る。着信クエリステートメントを識別することについて、DBMS1400は、着信クエリステートメントのメタデータの検査を遂行し得る。検査することは、着信クエリステートメントのメタデータを、過去のクエリステートメントを識別するクエリステートメントの領域3131のメタデータにマッチングすることを含み得る。着信クエリステートメントのメタデータは、クエリステートメントに割り当てられた、割り当てられたメタデータ、又は、クエリステートメントの処理によって外挿された、外挿されたメタデータを含み得る。外挿されたメタデータは、着信クエリステートメントのスキーマの検査によって返答されたスキーム署名メタデータを含み得る。ブロック3004でクエリステートメントを識別すると共に、DBMS1400は、クエリステートメントの1又は複数の入力変数を識別し得る。識別されたクエリステートメントの1又は複数の入力変数を識別するDBMS1400は、データレポジトリ138のクエリステートメントの領域3131に格納されている1又は複数の入力変数の識別子を検索するDBMS1400を含み得る。
ブロック3004でクエリステートメントを識別するとすぐに、DBMS1400は、ブロック3006に進み得る。ブロック3006では、DBMS1400は、ブロック3004で識別されたクエリステートメントに関連した1又は複数の予測モデルを問い合わせ得る。クエリステートメントの領域3131において、データレポジトリ138は、クエリステートメントに対する入力変数を識別する識別データ、及び、そのようなクエリステートメントに関連した入力変数値を予測するためにモデル領域3132に格納されているそのような入力変数に関連した予測モデルに対する識別子を含む、クエリステートメントの属性を指定するそれぞれ識別された過去のクエリステートメントデータを格納し得る。それぞれのクエリステートメントは、1個からN個の入力変数を有し得、それぞれのクエリステートメントの入力変数ごとに予測モデルがシステム100内に提供され得る。データレポジトリ138内で、それぞれのクエリステートメントごとに、クエリステートメントの領域3131は、クエリステートメント内で入力変数表現を指定するデータを格納し得る。
ブロック3006では、DBMS1400は、クエリステートメントの1又は複数の入力変数に対して予測済みのクエリステートメントの入力変数値を返答すべく、ブロック3004で識別されたクエリステートメントに関連した1又は複数のアクティブな予測モデルを問い合わせ得る。1又は複数の予測モデルを問い合わせすることは、コンテキストパラメータ値のセットを含む予測モデルのクエリデータを使用することを含み得る。コンテキストパラメータ値のセットは、ブロック3002で受信した受信クエリステートメントに関連した作業負荷の属性を指定し得る。コンテキストパラメータ値のセットは、ブロック3002で受信したクエリステートメントを含む、企業システムから受信したメッセージから抽出され得る。本明細書におけるアクティブな予測モデルは、精度のレベルを満たす閾値内で予測を生成している予測モデルを指し得る。ブロックでは、DBMS1400は、着信クエリステートメントのそれぞれの入力変数に関連したそれぞれの予測モデルについてアクティブ/非アクティブなフラグ状態を検査し得、フラグ状態がアクティブである、という決定に応じて、それぞれのクエリステートメントについてアクティブな予測モデルを選択的にクエリし得る。システム100は、予測モデルが閾値の精度レベルを有する予測を生成している、という決定に応じて、予測モデルのフラグ状態をアクティブに設定し得る。
ブロック3006が完了したことに応じて、DBMS1400は、ブロック3008に進み得る。ブロック3008では、DBMS1400は、アクセス経路の複数の候補のコストスコアリングを遂行し得る。一態様において、スコアリングのパフォーマンスは、述部入力変数値に依存し得る。一態様において、複数のアクセス経路のスコアリングは、予測済みの入力変数値に依存して適用され得るフィルタ因子に依存し得る。
一実施形態によれば、アクセス経路の幾つかの候補のそれぞれに関連しているコストスコアリングを遂行するためのDBMS1400は、それぞれのアクセス経路に関連した合計コストをスコアリングし得る。適用され得る一スコアリング方法によれば、合計コスト値をアクセス経路の候補に割り当てるためのDBMS1400は、CPUコスト因子及びI/Oコスト因子を割り当て得る。CPUコスト因子のサブコンポーネントは、例えば、ベースコスト、ページコスト、スキャンコスト、及び行コストを含み得る。決定データ構造領域3134に格納されている決定データ構造をマッピングするコストによれば、予測済みの入力変数値に基づいて割り当てられたクエリステートメント表現に対して割り当てられたフィルタ因子は、アクセスされる行の数を推定するために使用され得、これは、ベースコスト、ページコスト、スキャンコスト、行コストに対する影響を推定し得、したがって、CPUコスト及びI/Oコストに対する影響を推定し得る。したがって、クエリステートメント表現に対して割り当てられたフィルタ因子は、アクセス経路の候補のコストスコアリングに割り当てされた合計コストに影響を与え得る。
SQL内の述部は、WHERE節又はHAVING節等の真/偽条件を指し得る。SQL述部は、既存のクエリステートメントにおける節、関数、及びSQL表現の最後尾で発見され得る。一態様において、述部は、真(TRUE)、偽(FALSE)、又は未知(UNKNOWN)と評価する表現を指し得る。述部は、例えば、WHERE節及びHAVING節の検索条件、FROM節の結合条件、並びに、ブール値が要求される他の構成で使用され得る。
述部のフィルタ因子は、述部が真であるテーブル内の行の割合を推定する、0.0から1.0までの数を指し得る。それらの行は、当該述部によって修飾されると言われている。例えば、データベースシステムが、データベース136のテーブルTの列C1が、5個の異なる値A、B、C、D、Eのうちの1個のみを含むと決定し得ると仮定する。その他の情報がない場合、データベースシステムは、行の5分の1が、列C1内の可能な値A、B、C、D、又はEのうちの任意の1つを含むと推定し得る。したがって、説明されたシナリオにおいて、デフォルトの入力変数を決定データ構造領域3134に格納されているデータをマッピングするフィルタ因子に使用するDBMS1400は、テーブルTの述部C1='X'に対してフィルタ因子0.2を割り当て得る。
ここで、"X"が未知であり、値A、B、C、D、又はEを想定し得る。 'X'が未知である、説明されるシナリオにおいて、デフォルトの入力変数を決定データ構造領域3134に格納されている決定データ構造をマッピングするフィルタ因子に使用するDBMS1400は、未知の変数'X'を有する述部C1='X'に対して0.2のフィルタ因子を割り当て得る。決定データ構造領域3134に格納されている決定データ構造をマッピングするフィルタ因子への説明されたデフォルトの入力変数は、以下の関連性を格納し得る。C1='X'であるC1の任意の値に対してフィルタ因子0.2を割り当てる。しかしながら、本明細書の実施形態によれば、入力変数の値が正確に予測され得る場合、フィルタ因子がより正確に割り当てられ得ることを認識する。
一実施形態において、データベースシステム140は、説明されるシナリオにおいて、データベース136内のテーブルTの列C1を検査することによって、フィルタ因子が、決定データ構造領域3134への格納のために、テーブルCの決定データ構造によって定義されたデータをマッピングするフィルタ因子への異なる入力変数値に従って、C1='X'の様々な異なる可能な入力変数値に対して割り当てられ得ることを決定し得る。
[テーブルC]
[テーブルC]
データベースシステム140は、データベースシステム140によって処理されているそれぞれの入力変数に対してテーブルCに示されるようにデータ構造をマッピングする異なる入力変数値のフィルタ因子を反復的に更新すべく、入力変数によって参照されるデータベース136のテーブルを、反復的に、例えば、定期的に、検査するように構成され得る。テーブルCを参照すると、異なる入力変数値を、テーブルCのデータ決定データ構造をマッピングするフィルタ因子に使用するDBMS1400は、C1='A'である場合に0.75のフィルタ因子を割り当て得、C1='B'である場合に0.15のフィルタ因子を割り当て得、C1='C'である場合に0.05のフィルタ因子を割り当て得、C1='D'である場合に0.03のフィルタ因子を割り当て得、C1='E'である場合に0.02のフィルタ因子を割り当て得る。
DBMS1400は、テーブルCに関連して説明されるように予測済みの入力変数値に依存したフィルタ因子を割り当て得、割り当てられたフィルタ因子を参照テーブルの返答データセットの行の数を推定するために使用し得、アクセス経路の候補のスコアリングのパフォーマンスにおいて返答される、推定された行の数を適用し得る。
ブロック3008で、一実施形態に係るDBMS1400は、ブロック3006でクエリステートメントの1又は複数の入力変数値を予測したことに応じて、未知の入力変数値を、テーブルBを参照して説明される、決定データ構造をマッピングするデフォルトのフィルタ因子(例えば、未知の変数C1='X'に対して適用される0.2のフィルタ因子)に使用するではなく、テーブルCに従って特徴付けられた決定データ構造を使用して決定された1又は複数の異なる入力変数値のフィルタ因子を適用し得る。本明細書の実施形態によれば、テーブルCに関連して説明されるように、異なる入力変数値を、決定データ構造をマッピングするフィルタ因子に使用することによって、選択されたアクセス経路が、異なる入力変数値を、決定データ構造をマッピングするフィルタ因子に使用することなく選択されたアクセス経路に対して、パフォーマンスを改善するように、アクセス経路を選択することを改善し得ることを認識する。
一実施形態によれば、データベースシステム140は、入力変数に関連したテーブルのテーブル傾向特性を検出することに依存したアクセス経路の候補のコストスコアリングを遂行し得る。入力変数に関連したテーブルは、アクセスされたテーブル行によって定義されるデータセットが、入力変数を有するクエリステートメント表現の実行に応答して返答されるテーブルを指し得る。
ブロック3008では、DBMS1400は、ブロック3006で返答された、予測済みのクエリステートメントの入力変数値に依存したクエリステートメントの実行によってアクセスされる、テーブルの1又は複数のテーブル傾向分類を決定し得る。ブロック3008では、DBMS1400は、ブロック3006で返答された、予測済みの入力変数値を使用して入力変数値に関連した特定のテーブルから返答される予測済みの返答データセットを検査し得、結果として生じる返答データセットを、前のタイムスロットに関するロギング領域3133内で参照された特定のテーブルに対する過去の返答データセットと比較し得る。ブロック3008では、DBMS1400は、処理されている着信クエリステートメントによって参照されるテーブルのテーブル傾向分類を決定すべく、ロギング領域3133のテーブルメトリクスロギングデータを検査し得、アクセス経路の候補のコストスコアリングのパフォーマンス及びアクセス経路の選択においてテーブル傾向分類を使用し得る。データレポジトリ138のロギング領域3133に格納されているロギングデータは、1又は複数の入力変数を有するクエリステートメントの実行に応答して返答された、過去のテーブル識別子及びテーブル行の過去の範囲を指定する、テーブルメトリクスロギングデータを含み得る。
予測済みの入力変数値を使用して返答された、予測済みの返答データセットに基づいて、DBMS1400は、特定の1又は複数の傾向分類を有するものとして、クエリステートメント表現の実行によって参照されるテーブルを分類し得る。DBMS1400は、次に、予測済みの入力変数値に依存し、且つ、決定されたテーブル傾向分類に依存したアクセス経路の候補のコストスコアリングを遂行し得る。
可能なテーブル傾向分類は、例えば、フィルタ因子の安定、フィルタ因子の変更、返答データセットの安定、返答データセットの変更、返答データセットサイズの安定、返答データセットサイズの変更を含み得る。実行されるときに入力変数を有するクエリステートメント表現は、クエリステートメントに関連した参照テーブルから返答されるテーブル行(レコード)によって定義される返答データセットをもたらし得る。図4に関連して説明されるように、本明細書の実施形態は、予測済みの入力変数値に基づいてアクセス経路の選択を遂行する際に、返答データセット4004の時系列データ及びそのような返答データセットに関連した参照テーブル4002を使用し得る。図4に示される返答データセット4004は、入力変数を含むクエリステートメント表現のパフォーマンスによって、関連したテーブル4002から返答されたテーブルデータの行を指し得る。
図4を参照すると、テーブル傾向A、テーブル傾向B、及びテーブル傾向C等の傾向は、それぞれの入力変数を含む異なる例示的なクエリステートメント表現によって参照される異なるテーブルに関して識別され得る。時刻t=T-3と時刻t=Tとの間で、傾向Aに示されるテーブル4002のテーブル行のサイズが拡大し得、返答データセット4004が安定し得る、すなわち、(同一の指定されたタイムスタンプの範囲の)同一のデータセット4004が、タイムスロットごとに返答され得る。傾向レベルAで示されるシナリオにおいて、DBMS1400は、安定した返答データセット及び変更(具体的には、縮小)充填因子を有するものとして、傾向Aに関連したクエリステートメント表現の参照テーブル4002を分類し得る。
図4の傾向レベルBで示されるシナリオにおいて、参照テーブル4002のテーブルサイズは、タイムスロットを進めることによって一定に保ち得、タイムスロットごとの返答データセット4004のサイズは、異なるタイムスロットを通して一貫性を保ち得る。そのようなシナリオにおいて、DBMS1400は、安定したサイズの返答データセット4004及び安定したフィルタ因子、並びに、変更した返答データセットを有するものとして、参照テーブル4002を分類し得る。
傾向レベルCで示されるシナリオにおいて、DBMS1400は、安定した期間、及び、安定したフィルタ因子、安定した返答データセットのサイズ、並びに、変更した返答データセット4004を有するものとして、参照テーブル4002を分類し得る。例えば、データベースシステム140が、定期的に、例えば、1日ごとに、テーブル4002の行サイズを自動的に減らし得る場合、傾向Cが生じ得る。傾向Cは、例えば、トランザクションデータが、予め定められた期間、例えば、先月のみ利用可能にし得る場合、銀行アプリケーションにおいて共通であり得る。そのようなシナリオにおいて、DBMS1400は、日が進む毎にテーブルから1つのテーブル行を除去し得る。
図4に示される説明された傾向A、傾向B、及び傾向Cのそれぞれにおいて、タイムスロットTは、ブロック3006で返答された、予測済みのクエリステートメントの入力変数値を使用して予測された、DBMS1400によって予測済みのデータセットの返答に関連した次の期間のタイムスロットを指し得る。タイムスロットT-1は、ロギングデータがデータレポジトリ138のロギング領域3133内に存在する、現在のクエリステートメントの直近の実行のタイムスロットを指し得る。タイムスロットT-2及びタイムスロットT-3は、ロギングデータがデータレポジトリ138のロギング領域3133内に存在する、現在のクエリステートメントの次の事前の実行のタイムスロットを指し得る。ブロック3008では、DBMS1400は、処理されている着信クエリステートメントによって参照されるテーブルのテーブル傾向分類を決定すべく、ロギング領域3133のテーブルメトリクスロギングデータを検査し得、アクセス経路の候補のコストスコアリングのパフォーマンス及びアクセス経路の選択においてテーブル傾向分類を使用し得る。
テーブルCを参照して説明されるように、アクセス経路の候補のコストスコアリングのパフォーマンスにおいて、DBMS1400は、フィルタ因子が、参照テーブルの返答された行の数を推定するために使用され得る、予測済みの入力変数値に依存したフィルタ因子を適用し得、推定されたデータセットの行の数は、アクセス経路の候補のスコアリングのパフォーマンスに使用され得る。一実施形態において、図4に関連して説明されるように、返答された行の数が、予測済みの入力変数値に基づくテーブル傾向分類を使用して予測され得る場合、DBMS1400は、返答された行推定に変換するためにフィルタ因子を指定することなく、テーブルから返答される予測済みの行の数を、アクセス経路のスコアリングへの入力として、直接使用し得る。
図4及びテーブルDを参照すると、(フィルタ因子を使用して返答データセットの行の数を推定することとは対照的に)返答される行の数を予測することを含むアクセス経路のコストスコアリング方法の適用をもたらす行1の条件は、傾向Aが検出され、傾向Aに関連したテーブル傾向分類が適用される場合に適用され得、フィルタ因子を使用すること含むアクセス経路のコストスコアリング方法の適用をもたらす行2の条件は、図4で説明されるような傾向B又は傾向Cが検出され、傾向B又は傾向Cに関連したテーブル傾向分類が適用される場合に適用され得る。
本明細書で記載されるように、ブロック3008でアクセス経路の候補のコストスコアリングを遂行することに応答して、DBMS1400は、処理されている着信クエリステートメントのランタイム実行のパフォーマンス用のアクセス経路を選択すべく、ブロック3010に進み得る。ブロック3010では、DBMS1400は、処理されている着信クエリステートメントのランタイム実行のパフォーマンス用のアクセス経路として、ブロック3008で遂行されたコストスコアリングに従って最も低いコストスコアを有するアクセス経路の候補を選択し得る。
ブロック3008でのアクセス経路の候補のコストスコアリングのパフォーマンス及びブロック3010でのクエリステートメントのランタイム実行の際に使用するためのアクセス経路の選択に応じて、DBMS1400は、現在のクエリステートメントのランタイム実行を遂行することに進み得る。クエリステートメントのランタイム実行の間、DBMS1400は、クエリステートメントの1又は複数の入力変数に関連する1又は複数の予測済みのクエリステートメントの入力変数値に依存してブロック3010で選択された、選択されたアクセス経路を使用して、処理されている受信したクエリステートメントを実行し得る。
ブロック1401を完了し得る、クエリステートメントの実行が完了するとすぐに、DBMS1400は、ブロック1402に進み得る。ブロック1402では、DBMS1400は、処理されたばかりのクエリステートメントに関するロギングデータを収集すべく、ロギング動作を遂行し得る。クエリステートメントに対するロギングデータは、クエリステートメントのランタイム実行の間にDBMS1400によって決定及び返答された、決定及び返答された入力変数値に関連したクエリステートメントの入力変数のリストを含み得る。ロギングデータはまた、1又は複数の入力変数を有するクエリステートメントの実行に応答して返答された、テーブル識別子及びテーブル行の範囲を指定する、テーブルメトリクスロギングデータを含み得る。ブロック1401及びブロック3008を反復中のDBMS1400は、ブロック3008でテーブル分類を決定するために、説明されたテーブルメトリクスデータを検査し得る。ブロック1402では、DBMS1400は、収集されたロギングデータをDBMS1400のロギング領域3133に格納し得る。
ブロック1402では、DBMS1400は、機械学習処理のパフォーマンスに使用するために管理者システム110が受け取るために、ロギングデータを管理者システム110に送信し得る。ブロック1402でロギングデータを送信することが、例えば、それぞれのクエリステートメントのランタイム実行の完了時に、又は、一実施形態において、周期的な時間間隔で、遂行され得る。ブロック1402で送信されたロギングデータを受け取ったことに応答して、管理者システム110は、ブロック1101で、ブロック1402で送信された入力変数値のロギングデータを使用して、1又は複数の機械学習モデルのトレーニングを遂行し得る。
管理者システム110は、ブロック1101で、クエリステートメントの入力変数を、クエリステートメントのランタイム実行の間に決定される、決定された入力変数値にマッピングするマッピングロギングデータを使用して複数の予測モデルをトレーニングし得る。一実施形態によれば、システム100は、入力変数値がクエリステートメント表現の実行で返答される入力変数を含む、クエリステートメントのクエリステートメント表現ごとに予測モデルを提供し得る。管理者システム110は、機械学習プロセス111を実行し得る。トレーニングブロック1101では、管理者システム110は、図5に示されるように、トレーニングデータを予測モデル5002に適用し得る。
予測モデル5002をトレーニングするためのトレーニングデータは、(a)コンテキストパラメータ及び(b)決定された入力変数値の時系列データの反復を含み得る。トレーニングデータの反復は、データベースシステム140によってブロック1402で送信され、且つ、管理者システム110によって受信されるロギングデータから取得され得る。トレーニングデータの反復は、追加的に又は代替的に、データベースシステム140に従構成される追加の1又は複数のデータベースシステムによって送信され、且つ、管理者システム110によって受信されるロギングデータを含み得る。コンテキストパラメータ値のセット(a)が、ブロック1201で企業システム120A-120Zによって送信されるトランザクションクエリデータを含むメッセージデータから取得され得る。本明細書の実施形態によれば、クエリステートメントを含むメッセージが、ブロック1201でトランザクションクエリデータを送信する企業システム120A-120Zの作業負荷及び特定の企業システムを示し得るコンテキストデータを含み得ることを認識する。
本明細書の実施形態によれば、1つの特定の作業負荷及び企業システムに関連したクエリステートメントが、複数の異なる企業システム120A-120Zからのクエリステートメントより予想可能パターンを示す可能性が高い場合があることも認識する。したがって、本明細書の実施形態は、予測モデル5002が、決定された時系列データに関連する作業負荷及び企業システムを示すコンテンツデータに依存した作業負荷傾向を学習し得るように、コンテキストパラメータ値のセットを使用して予測モデル5002をトレーニングすることを含み得る。
コンテキストパラメータ値のセットは、企業システム120A-120Zから受信したクエリステートメントを含むメッセージデータからDBMS1400によって抽出されたパラメータ値のセットを含み得る。コンテキストパラメータ値のセットに使用するためのパラメータ値は、1又は複数の、例えば、会計情報、収集名、接続タイプ、相互関係情報、LU名、ネットID、パッケージ名、遂行、プレーン名、優先度、プロシージャ名、プロセス名、スケジューリング環境、サブシステム収集名、サブシステムインスタンス、サブシステムパラメータ、Sysplex名、システム名、トランザクションクラス/ジョブクラス、トランザクション名/ジョブ名、若しくは、ユーザID又はその組み合わせを含み得る。
予測モデル5002は、一旦トレーニングされると、クエリデータに応答することができる。予測モデル5002をクエリするためのクエリデータは、ブロック1401(図2)での処理及び図3を参照して説明されるように処理300による対象である、受信した着信クエリステートメントに関連した現在の作業負荷の属性を指定するコンテキストパラメータ値のセットを含み得る。トレーニング済みの予測モデル5002が、データベースシステム140の動作中の様々な時刻、例えば、クエリステートメントが処理されているとき、及び、予測モデル5002が精度のレベルを満たす閾値を有する予測を生成しているか否かを決定するために予測モデル5002がテストされているときにも、ブロック1401でクエリされ得る。
様々な機械学習モデリング技術が、過去の入力変数値に依存した次の入力変数値を予測する予測モデルをプロビジョニングするために使用され得る。適用され得る機械学習モデル化方法は、例えば、フーリエ変換解析曲線フィッティング、ニューラルネットワーク、サポートベクターマシン、線形回帰、及び同類のものを含み得る。機械学習方法論が組み合わせられ得、例えば、一例によれば、ディープフーリエニューラルネットワークが、時系列データを曲線フィッティングするために使用され得る。本明細書の実施形態によれば、時系列の入力変数値が、フーリエ変換の機械学習方法を含む様々な曲線フィッティング方法論によるモデリングの対象であり得る周期的なパターンを示し得ることを認識する。フーリエ変換の機械学習方法が、フーリエ変換の原理に基づいて、曲線を時系列データにフィッティングするために使用され得る。
経時的に実行されるクエリステートメントに対する入力変数値によって提供される時系列データを曲線フィッティングするためのフーリエ変換ベースの機械学習方法を適用するに、管理者システム110は、離散フーリエ変換解析を使用して、異なる文字列を分離し得る。図6を参照すると、経時的に入力変数値が決定される一連のランタイム実行によって提供される入力時系列トレーニングデータ6002に対して遂行される離散フーリエ変換解析は、コンポーネントの周波数信号6004、6006、6008を提供し得る。入力時系列の周波数領域表現6010は、コンポーネント周波数で、ピークを示し得る。一旦コンポーネント周波数が決定されると、ランダムフォレストの機械学習プロセスが、様々なコンポーネント周波数に対する重みを決定するために使用され得る。
本明細書の実施形態によれば、経時的な一連の入力変数値によって定義される時系列データは、場合によっては、永続的に周期的でなくてよく、むしろ、選択期間中にのみ周期性を示し得、他の期間では非周期的、例えば、ランダムな挙動、を示し得ることを認識する。幾つかの時系列の入力変数値は、周期的な挙動の後に非周期的な挙動が続くことを示し得る。すなわち、タイムスロットの最初のセットについて、時系列の入力変数値は、周期的なパターンを示し得、タイムスロットの次に続くセットにおいて、入力変数値は、非周期的なパターンを示し得る。本明細書の実施形態によれば、入力変数に関連した入力変数値が時系列で表される精度が、入力変数時系列の周期性のレベルに依存し得ることを認識する。
図7及び図8を参照すると、データプロットが示される。図7において、周期的なパターンを示す経時的な入力変数値の時系列が示され、図8において、予測モデルを使用して図7の時系列データに対する予測の精度を示すプロットが示される。本明細書の実施形態によれば、クエリステートメントの特定の入力変数に対する入力変数値の時系列データが永続的に周期的ではなく選択的に周期的であり得るので、周期的な入力変数値が全ての時刻で精度のレベルを満たす閾値内で予想可能でなくてよく、むしろ、展開期間の選択されたタイムスロットにおいて精度のレベルを満たす閾値内で予想可能であってよいことを認識する。
一実施形態によれば、管理者システム110は、経時的トレーニングする対象である、予測モデル5002のそれぞれのインスタンスを反復的にテストし、当該予測モデルが精度のレベルを満たす閾値に従って予測を生成しているか否かを反復的に解明するように構成され得る。テスティングブロック1102では、管理者システム110は、クエリステートメントの入力変数に関連した入力変数値を予測するよう構成される1又は複数の予測モデルをテストし得る。
テスティングブロック1102でテストすることを遂行するために、管理者システム110は、(a)問い合わせに応答して1又は複数の予測モデルによって出力された、予測済みの入力変数値を、(b)1又は複数の予測モデルをトレーニング及びテストするために使用されるロギングデータのホールドアウトデータによって定義されたグラウンドトゥルースデータと比較し得る。テスティングブロック1102では、管理者システム110は、予測モデルが、精度のレベルを満たす閾値を用いて現在予測を生成しているか否かを示す、トレーニングされているそれぞれの予測モデルごとに、アクティブ/非アクティブな状態フラグを適切に設定し得る。
予測モデルが精度のレベルを満たす閾値内で予測を出力しているか否かを決定するために、様々な方法が使用され得る。例えば、管理者システム110は、テスティングブロック1102で、トレーニング済みの予測モデルによって出力された予測値をホールドアウトデータによって定義されたグラウンドトゥルースデータと比較するために、1又は複数の時系列モデルの品質測定を適用し得る。予測値をグラウンドトゥルースデータと比較するために適用される測定は、例えば、平均平方誤差(MSE)、平均絶対パーセント誤差(MAPE)、若しくは、二乗平均平方根誤差(RMSE)又はその組み合わせを含み得る。一実施形態によれば、着信クエリステートメントを受信する段階であって、着信クエリステートメントは、入力変数を含むクエリステートメント表現を含む、受信する段階と、入力変数に関連した入力変数値を予測する段階と、予測済みの入力変数値に依存したクエリステートメントのランタイム実行用のアクセス経路を選択する段階と、選択されたアクセス経路を使用して、クエリステートメントのランタイム実行を遂行する段階とを備え、入力変数に関連した入力変数値を予測する段階は、予測済みの入力変数値の返答用の予測モデルを問い合わせる段階を有し、予測モデルは、入力変数に対して決定された過去の入力変数値を含むトレーニングデータを用いてトレーニングされ、方法は、予測モデルが、精度のレベルを満たす閾値に従って予測を返答しているか否かを決定する段階を備え、方法は、予測モデルが精度のレベルを満たす閾値に従って予測を返答している、という決定に応じて予測モデルを問い合わせる手順を遂行する段階を備え、予測モデルが、精度のレベルを満たす閾値に従って予測を返答しているか否かを決定する段階は、予測モデルを使用して返答された予報を、過去の入力変数値を含むトレーニングデータのホールドアウトデータによって定義されたグラウンドトゥルースデータと比較する段階を有する、方法が本明細書に記載されている。
管理者システム110は、動作決定ブロック1103で、1又は複数のトレーニング済みの予測モデルに対するアクティブ/非アクティブな状態フラグを設定し、クエリ処理のパフォーマンスにおける入力変数値に関して予測を返答するためにDBMS1400による使用のために、1又は複数のトレーニング済みの予測モデルをデータベースシステム140にプッシュするよう動作決定を返答し得る。動作決定ブロック1103では、管理者システム110は、予測モデルをテストすると、モデルが精度のレベルを満たす閾値を用いて予測を生成していることを示すとき、予測モデルの状態フラグをアクティブにセットし得、ブロック1102で予測モデルをテストすると、予測モデルが精度のレベルを満たす閾値内で予測を生成していないことを示すとき、状態フラグを非アクティブに設定し得る。
動作決定ブロック1103では、管理者システム110は、予測モデルが、その状態フラグを読み取ることによって決定され得るように、現在アクティブであるという条件で、予測モデル5002のインスタンスをデータベースシステム140にプッシュするよう動作決定を返答し得、ブロック1103で、状態フラグを読み取ることによって決定され得るように、予測モデルが非アクティブであるという条件で、トレーニング済みの予測モデルをデータベースシステム140にプッシュすることを避けるよう動作決定を返答し得る。トレーニング済みの予測モデルを選択的にプッシュすることによって、コンピュータシステムのパフォーマンスを改善し得る。トレーニング済みの予測モデルをDBMS1400にプッシュすることによって、予測済みの入力変数値を返答するためのデータ取得時間を改善し得る。トレーニング済みのモデルをプッシュすることによって、ストレージリソースの利用を選択的に減らし得る。
動作決定ブロック1103が完了するとすぐに、管理者システム110は、ブロック1104に進み得る。ブロック1104では、管理者システム110は、DBMS1400のデータレポジトリ138のモデル領域3132に格納するために、1又は複数のトレーニング済みのアクティブなモデルを定義するモデルデータをデータベースシステム140に送信し得る。ブロック1104で送信されたモデルデータを用いて、管理者システム110は、アクティブ(精度を満たす閾値を用いて予測を生成する)であるか非アクティブ(精度を満たす閾値を用いて予測を生成していない)であるかにかかわらず、ブロック1101で管理者システム110によってトレーニングされている予測モデル5002のインスタンスごとに状態データを送信し得る。
したがって、ブロック1104で送信された状態データを受け取るとすぐに、DBMS1400は、予測モデルがアクティブ(精度のレベルを満たす閾値に従って予測を生成する)であるか、非アクティブ(精度のレベルを満たす閾値に従って予測を生成していない)であるかを示す管理者システム110によってトレーニングされている全ての予測モデルの状態に関する総合的な情報を有する。ブロック1403で送信されたモデル及び状態データを受け取るとすぐに、モデル領域3132の全ての予測モデルに関連したアクティブ/非アクティブな状態が更新されるように、且つ、モデル領域3132が、モデル領域3132のアクティブな予測モデルごとに、トレーニングブロック1101の直近の反復でトレーニングされ、送信ブロック1104の直近の反復でDBMS1400にプッシュされるアクティブなモデルの直近の更新済みのバージョンを含むように、DBMS1400は、ブロック1403で、データレポジトリ138のモデル領域3132を更新し得る。
図3のフローチャートのブロック3006に返答することによって、DBMS1400は、ブロック3006で、予測モデルがアクティブであるか非アクティブであるかを決定すべく、ブロック3002で受信したクエリステートメントの入力変数ごとに、アクティブ/非アクティブなフラグ状態インジケータを検査し得る。予測モデルがアクティブである場合、DBMS1400は、ブロック3006で、クエリステートメント表現の入力変数に関連した入力変数値に関する予測を返答すべく、アクティブな予測モデルを問い合わせ得、その後、ブロック3008に進んで、コスト解析の対象であるアクセス経路の複数の候補から選択されたアクセス経路の返答において、返答された予測済みの入力変数値を使用し得る。
しかしながら、DBMS1400が、ブロック3006で、アクティブ/非アクティブなフラグ状態インジケータを検査し、クエリステートメントの特定の入力変数に関連した特定の予測モデルが非アクティブであると決定した場合、DBMS1400は、当該特定の入力変数について、デフォルトの動作を遂行し得る。デフォルトの動作によれば、DBMS1400は、テーブルCの決定データ構造をマッピングするフィルタ因子への異なる入力変数値に関連して説明されているように、プロセスを使用する任意の割り当てられたフィルタ因子の値を変更することなく、未知の入力変数値を使用するデフォルトのフィルタ因子の値を、テーブルBを参照して説明された、決定データ構造をマッピングするデフォルトのフィルタ因子に適用し得る。
説明された動作によれば、DBMS1400は、クエリステートメントの入力変数に関連した予測モデルを、選択的にのみ問い合わせ得、したがって、特定の入力変数に対して経時的に入力変数値を指定する時系列データが、十分に予想可能であり、閾値の精度レベルを満たしていると決定されるという条件で、選択的に予測された入力変数値に依存したアクセス経路の選択を選択的に修正し得る。
説明されたシナリオによれば、特定のクエリステートメントが第1の入力変数及び第2の入力変数を含み得ることが分かり得る。一例において、クエリステートメントの第1の入力変数及び第2の入力変数に対する予測済みの入力変数値を返答すべく、第1の予測モデル及び第2の予測モデルが確立され得る。一シナリオによれば、テスティングブロック1102で第1の予測モデルをテストすることによって、第1の入力変数に対する予測モデルが、精度のレベルを満たす閾値に従って予測を成功裏に返答することを示し得、その一方で、管理者システム110によってテスティングブロック1102で第2の予測モデルをテストすることによって、第2の予測モデルが精度のレベルを満たす閾値に従って入力変数値に対する予測を生成していないことを示し得る。説明されたシナリオにおいて、第1の予測モデルは、動作決定ブロック1103で管理者システム110によってアクティブにラベル付けされ得、第2の予測モデルは、動作決定ブロック1103で管理者システム110によって非アクティブにラベル付けされ得る。ブロック1104では、管理者システム110は、説明されたシナリオにおいて、第1の予測モデル及び第2の予測モデルごとに、第1の予測モデルに対する直近の利用可能なトレーニングデータでトレーニングされたトレーニング済みの予測モデルによって定義されたモデルデータ及び状態フラグインジケータをプッシュし得る。第1の予測モデルに対するフラグ状態インジケータは、第1の予測モデルがアクティブであることを示し得、第2の予測モデルに対するフラグ状態インジケータは、第2の予測モデルが非アクティブであることを示し得る。
クエリステートメントをブロック1401でクエリ処理するとすぐに、DBMS1400は、ブロック3006で、アクティブ/非アクティブな状態インジケータを検査し得、第1の予測モデルがアクティブであり、第2の予測モデルが非アクティブであることを決定し得る。説明されたシナリオにおいて、第1の入力変数及び第2の入力変数を有するクエリステートメントを処理する際のDBMS1400は、第1の入力変数に対する予測済みの入力変数値の返答のために第1の予測モデルをクエリし得、第2の入力変数については、(第2の予測モデルが非アクティブであるので)入力変数値に関して予測を返答するために任意の予測モデルをクエリすることを回避し得る。説明されたシナリオにおいて、デフォルトの動作は、第2の入力変数に対して続行し、DBMS1400は、第2の入力変数を有するクエリステートメント表現に依存して割り当てられたフィルタ因子の値を調整しない。第2の入力変数について、DBMS1400は、未知の入力変数値を、テーブルBを参照して説明された決定データ構造をマッピングするデフォルトのフィルタ因子に使用して割り当てられたフィルタ因子を決定し得る。しかしながら、現在、十分に予想可能である第1の入力変数を含むクエリステートメント表現について、DBMS1400は、テーブルC及びテーブルD、並びに、図3のフローチャートに関連して説明された方式で、割り当てられたフィルタ因子の値を調整し得る。現在、十分に予想可能である第1の入力変数を含むクエリステートメント表現について、DBMS1400は、テーブルCに関連して説明されるように、異なる入力変数値を、データ構造をマッピングするフィルタ因子に使用してフィルタ因子の値を割り当て得る。着信クエリステートメントを受信する段階であって、着信クエリステートメントは、入力変数を含むクエリステートメント表現を含む、受信する段階と、入力変数に関連した入力変数値を予測する段階と、予測済みの入力変数値に依存したクエリステートメントのランタイム実行用のアクセス経路を選択する段階と、選択されたアクセス経路を使用して、クエリステートメントのランタイム実行を遂行する段階とを備え、入力変数に関連した入力変数値を予測する段階は、予測済みの入力変数値の返答用の予測モデルを問い合わせる段階を有し、予測モデルは、入力変数に対して決定された過去の入力変数値を含むトレーニングデータを用いてトレーニングされ、クエリステートメントは、第2の入力変数を有する第2のクエリステートメント表現を含み、第2の入力変数に対して決定された過去の入力変数値を含むトレーニングデータを用いてトレーニングされている第2の予測モデルは、クエリステートメントの第2の入力変数に関連し、方法は、予測モデルが、精度のレベルを満たす閾値に従って予測を返答しているか否かを決定する段階と、第2の予測モデルが、精度のレベルを満たす予測閾値に従って予測を返答しているか否かを決定する段階とを備え、方法は、予測モデルが精度のレベルを満たす閾値に従って予測を返答している、という決定に応じて予測モデルを問い合わせる手順を遂行する段階を備え、方法は、第2の予測モデルが精度のレベルを満たす予測閾値に従って予測を返答できていない、という決定に応じて、第2の入力変数に対する第2の入力変数値の予測の返答なしに、第2の入力変数用のデフォルトのフィルタ因子を割り当てる段階を備え、予測済みの入力変数値に依存したクエリステートメントのランタイム実行用のアクセス経路を選択する段階は、予測済みの入力変数値に依存し、且つ、デフォルトのフィルタ因子に依存した、クエリステートメントのランタイム実行用のアクセス経路を選択する段階を有する、方法が本明細書に記載されている。
本明細書の特定の実施形態によれば、コンピューティングの利点を含む、コンピュータシステムの分野で生じする課題を対処するための様々な技術的なコンピューティングの利点及び実際の適用を提供し得る。本明細書の実施形態は、パフォーマンスを改善したデータベースによって定義されるコンピュータシステムを含む。一態様によれば、クエリステートメントの入力変数値は、機械学習によってトレーニングされる予測モデルを使用して予測され得る。返答された予測は、割り当てられたフィルタ因子を調整するために使用され得、調整済みのフィルタ因子は、アクセス経路のコスト解析のスコアリング及びアクセス経路の選択のために使用され得る。返答される予測は、入力変数に関連したテーブルに対するテーブル傾向を分類するために使用され得、分類されたテーブル傾向は、アクセス経路のコスト解析のスコアリング及びアクセス経路の選択のために使用され得る。一実施形態によれば、アクセス経路の選択が、クエリステートメントの入力変数に関連して入力変数値を予測するトレーニング済みの予測モデルの問い合わせによって返答される予測済みのクエリステートメントの入力変数値に依存して遂行され得る。一実施形態によれば、入力変数に関連した入力変数値を予測するトレーニング済みの予測モデルは、予測モデルを使用することにより返答されて予測の精度のレベルを決定するためにテストを繰り返して受け得る。一実施形態によれば、状態フラグは、予測モデルのアクティブ/非アクティブな状態を示すそれぞれの予測モデルに関連し得る。予測モデルに関連した状態フラグは、予測モデルが精度のレベルを満たす閾値に従って予測を返答するときにアクティブであり得、フラグ状態は、予測モデルが精度のレベルを満たす閾値を示していない予測を返答しているときに非アクティブに設定され得る。クエリステートメントの入力変数を処理する際に、データベース管理システムは、予測モデルが非アクティブであるかアクティブであるかに依存した入力変数に関連した入力変数値に対する予測を返答する予測モデルを選択的に問い合わせ得る。データベース管理システムは、入力変数値が、現在、精度のレベルを満たす閾値内で予想可能であると決定されるという条件で、選択的に予測された入力変数値に依存したアクセス経路の選択を遂行し得る。
図9~図11は、本明細書で記載されている1又は複数の態様に従って、コンピュータシステム及びクラウドコンピューティングを含む、コンピューティングの様々な態様を示す。
本開示は、クラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載された教示の実装は、クラウドコンピューティング環境に限定されないことを予め理解されたい。むしろ、本発明の実施形態は、現在知られている、又は後に開発される任意の他のタイプのコンピューティング環境と連動して実装可能である。
クラウドコンピューティングは、最小限の管理労力又はサービスのプロバイダとの相互作用で、迅速にプロビジョニング及びリリースされ得る、構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールへの簡便なオンデマンドネットワークアクセスを可能にするサービス配信のモデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、及び少なくとも4つの展開モデルを含み得る。
特性は、以下のとおりである。
オンデマンドセルフサービス:クラウド消費者は、サービスのプロバイダとの人的交流を要求することなく、必要に応じて自動的に、サーバ時間及びネットワークストレージ等のコンピューティング機能を一方的にプロビジョニングすることができる。
広範なネットワークアクセス:機能がネットワークを通じて利用可能であり、異機種環境にあるシンクライアントプラットフォーム又はシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準メカニズムを通じてアクセスされる。
リソースプール:異なる物理リソース及び仮想リソースが要求に従って動的に割り当て及び再割り当てされることで、マルチテナントモデルを使用して複数の消費者にサービス提供すべく、プロバイダのコンピューティングリソースがプールされている。消費者は、概して、提供されるリソースの正確な位置に対する制御も知識も有していないが、より高い抽象化レベルで位置(例えば、国、州、又はデータセンタ)を指定でき得るという点で、位置の独立性が存在する。
迅速な順応性:機能が迅速に、且つ、順応的に、場合によっては、自動的にプロビジョニングされ、素早くスケールアウトし得、迅速にリリースされて素早くにスケールインし得る。消費者には、プロビジョニングに利用可能な機能がしばしば無制限に見え、任意の時間に任意の量を購入できる。
測定されるサービス:クラウドシステムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザアカウント)に適切なある抽象化レベルで計測機能を活用することによって、リソースの使用を自動的に制御及び最適化する。リソース使用率が、監視、制御、及び報告され、利用されるサービスのプロバイダ及び消費者の両方に対して透明性を提供し得る。
サービスモデルは、以下のとおりである。
Software as a Service(SaaS):消費者に提供される機能は、クラウドインフラストラクチャ上で実行するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)等のシンクライアントインタフェースを通じて様々なクライアントデバイスからアクセス可能である。消費者は、限定されたユーザ固有のアプリケーション構成設定は例外かもしれないが、ネットワーク、サーバ、オペレーティングシステム、ストレージ、又はさらなる個々のアプリケーション機能を含む、基礎となるクラウドインフラストラクチャを管理も制御もしない。
Platform as a Service(PaaS):消費者に提供される機能は、プロバイダによってサポートされているプログラミング言語及びツールを使用して作成される、消費者によって作成又は取得されたアプリケーションをクラウドインフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、又はストレージを含む、基礎となるクラウドインフラストラクチャを管理も制御もしないが、展開されたアプリケーション、及び、場合によっては環境構成をホスティングするアプリケーションを制御する。
Infrastructure as a Service(IaaS):消費者に提供される機能は、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティングリソースをプロビジョニングすることである。ここでは、消費者は、オペレーティングシステム及びアプリケーションを含み得る、任意のソフトウェアを展開及び実行できる。消費者は、基礎となるクラウドインフラストラクチャを管理も制御もしないが、オペレーティングシステム、ストレージ、展開されたアプリケーションを制御し、場合によっては、ネットワーキングコンポーネント(例えば、ホストファイアウォール)の選択を限定的に制御する。
展開モデルは、以下のとおりである。
プライベートクラウド:クラウドインフラストラクチャは、ある組織のためだけに動作する。それは、組織又は第三者によって管理され得、オンプレミス又はオフプレミスで存在し得る。
コミュニティクラウド:クラウドインフラストラクチャは、幾つかの組織によって共有され、共有の関心事(例えば、ミッション、セキュリティ要件、ポリシー、及びコンプライアンスの考慮事項)を有する特定のコミュニティをサポートする。それは、組織又は第三者によって管理され得、オンプレミス又はオフプレミスで存在し得る。
パブリッククラウド:クラウドインフラストラクチャは、一般大衆又は大規模な業界団体に利用可能にされ、クラウドサービスを販売する組織によって所有される。
ハイブリッドクラウド:クラウドインフラストラクチャは、固有のエンティティのままであるが、データ及びアプリケーションのポータビリティ(例えば、クラウド間の負荷分散のためのクラウドバースト)を可能にする標準化技術又は特許技術によって結び付けられている、2又はそれより多くのクラウド(プライベート、コミュニティ、又はパブリック)の構成物である。
クラウドコンピューティング環境は、ステートレス、弱連結性、モジュール方式、及びセマンティック相互運用性に重点を置いたサービス指向である。クラウドコンピューティングの中心は、相互接続されたノードのネットワークを備えるインフラストラクチャである。
ここで、図9を参照すると、コンピューティングノードの一例の概略図が示されている。コンピューティングノード10は、クラウドコンピューティングノードとしての使用に適切なコンピューティングノードの一例にすぎず、本明細書で説明される本発明の実施形態の使用又は機能の範囲に関してあらゆる限定を示唆することを意図していない。とにかく、コンピューティングノード10は、上記の任意の機能を実装される、及び/又は、当該任意の機能を遂行する能力がある。コンピューティングノード10は、クラウドコンピューティング環境内のクラウドコンピューティングノードとして実装され得、又は、クラウドコンピューティング環境以外のコンピューティング環境内のコンピューティングノードとして実装され得る。
コンピューティングノード10において、多数の他の汎用コンピューティングシステム又は特殊目的コンピューティングシステムの環境又は構成で動作可能であるコンピュータシステム12が存在する。コンピュータシステム12と共に使用するのに適切であり得る周知のコンピューティングシステム、環境、及び/又は及び構成の例は、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルド又はラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能な消費者向け電子機器、ネットワークPC、ミニコンピュータシステム、メインフレームコンピュータシステム、及び、任意の上記のシステム又はデバイスを含む分散型クラウドコンピューティング環境、並びに、同類のものを含み得るがこれらに限定されない。
コンピュータシステム12は、コンピュータシステムによって実行されている、プログラム処理等のコンピュータシステム実行可能命令の一般的状況において、説明され得る。概して、プログラム処理は、特定のタスクを遂行する又は特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造等を含み得る。コンピュータシステム12は、タスクが通信ネットワークを通じて接続されているリモート処理デバイスによって遂行される分散型クラウドコンピューティング環境で実施され得る。分散型クラウドコンピューティング環境において、プログラム処理は、メモリストレージデバイスを含む、ローカルコンピュータシステムのストレージ媒体及びリモートコンピュータシステムのストレージ媒体に位置し得る。
図9に示されるように、コンピューティングノード10内のコンピュータシステム12は、コンピューティングデバイスの形態で示されている。コンピュータシステム12のコンポーネントは、1又は複数のプロセッサ16、システムメモリ28、及びシステムメモリ28を含む様々なシステムコンポーネントをプロセッサ16に連結するバス18を含み得るがこれらに限定されない。一実施形態において、コンピューティングノード10は、非クラウドコンピューティング環境のコンピューティングノードである。一実施形態において、図8~図9に関連して本明細書で記載されているように、コンピューティングノード10は、クラウドコンピューティング環境のコンピューティングノードである。
バス18は、メモリバス又はメモリコントローラ、ペリフェラルバス、アクセラレーテッドグラフィックスポート、及び任意の様々なバスアーキテクチャを使用するプロセッサ又はローカルバスを含む、任意の幾つかのタイプのバス構造のうちの1又は複数を表す。限定的なものではなく、例示的なものとして、そのようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、エンハンスドISA(EISA)バス、ビデオエレクトロニクススタンダーズアソシエーション(VESA)ローカルバス、及びペリフェラルコンポーネントインターコネクト(PCI)バスを含む。
コンピュータシステム12は、通常、様々なコンピュータシステム可読媒体を含む。そのような媒体は、コンピュータシステム12によってアクセス可能な任意の利用可能な媒体であり得、それは、揮発性媒体及び不揮発性媒体の両方、取り外し可能な媒体及び取り外し不可能な媒体の両方を含み得る。
システムメモリ28は、ランダムアクセスメモリ(RAM)30若しくはキャッシュメモリ32又はその組み合わせ等の揮発性メモリの形態のコンピュータシステム可読媒体を含み得る。コンピュータシステム12は、他の取り外し可能/取り外し不可能な、揮発性/不揮発性のコンピュータシステムストレージ媒体をさらに含み得る。単なる例示的なものとして、ストレージシステム34が、取り外し不可能、不揮発性の磁気媒体(示されていないが、通常「ハードドライブ」と称される)から読み取り、当該磁気媒体に書き込むために提供され得る。示されていないが、取り外し可能、不揮発性の磁気ディスク(例えば、「フロッピディスク」)から読み取り、当該磁気ディスクに書き込むための磁気ディスクドライブ、及びCD-ROM、DVD-ROM、又は他の光媒体等の取り外し可能、不揮発性の光学ディスクから読み取り、当該光学ディスクに書き込むための光学ディスクドライブが提供され得る。そのような場合には、それぞれは、1又は複数のメディアインタフェースによって、バス18に接続され得る。以下でさらに示され、説明されるように、メモリ28は、本発明の実施形態の機能を実行するように構成される、(例えば、少なくとも1つの)プログラム処理のセットを有する少なくとも1つのプログラム製品を含み得る。
オペレーティングシステム、1又は複数のアプリケーションプログラム、他のプログラム処理、及びプログラムデータだけでなく、(少なくとも1つの)プログラム処理42のセットを有する1又は複数のプログラム40が、限定的なものではなく、例示的なものとして、メモリ28に格納され得る。プログラム処理42を含む1又は複数のプログラム40は、概して、本明細書で記載されている機能を実行し得る。一実施形態において、データベースシステム140は、1又は複数のコンピューティングノード10を含み得、図3の方法300に関連して説明された機能、及び図4のフローチャートに記載されているように、データベースシステム140に関連して説明された機能を遂行するための1又は複数のプログラム40を含み得る。一実施形態において、管理者システム110は、1又は複数のコンピューティングノード10を含み得、図2のフローチャートに記載されているように、管理者システム110に関連して説明された機能を遂行するための1又は複数のプログラム40を含み得る。一実施形態において、1又は複数のクライアントUEデバイス120A-120Zは、1又は複数のコンピューティングノード10を含み得、図2のフローチャートに記載されているように、1又は複数のUEデバイス120A-120Zに関連して説明された機能を遂行するための1又は複数のプログラム40を含み得る。一実施形態において、図1に示されるコンピューティングノードベースのシステム及びデバイスは、そのようなコンピューティングノードベースのシステム及びデバイスに関連して説明された機能を遂行するための1又は複数のプログラムを含み得る。
コンピュータシステム12はまた、キーボード、ポインティングデバイス、ディスプレイ24等、ユーザがコンピュータシステム12と相互作用することを可能にする1又は複数のデバイス、及び/又は、コンピュータシステム12が1又は複数の他のコンピューティングデバイスと通信することを可能にする任意のデバイス(例えば、ネットワークカード、モデム等)等の1又は複数の外部デバイス14と通信し得る。そのような通信は、入力/出力(I/O)インタフェース22を介して発生し得る。依然として、さらに、コンピュータシステム12は、ネットワークアダプタ20を介して、ローカルエリアネットワーク(LAN)、一般的な広域ネットワーク(WAN)、若しくは、パブリックネットワーク(例えば、インターネット)又はその組み合わせ等の1又は複数のネットワークと通信し得る。示されるように、ネットワークアダプタ20は、バス18を介して、コンピュータシステム12の他のコンポーネントを通信する。示されていないが、他のハードウェア若しくはソフトウェアコンポーネント又はその組み合わせが、コンピュータシステム12と共に使用され得ることが理解されるべきである。例としては、マイクロコード、デバイスドライバ、冗長処理ユニット、外部ディスクドライブアレイ、RAIDシステム、テープドライブ、及びデータアーカイバルストレージシステム等を含むが、これらに限定されない。ユーザインタフェース機能を提供するように構成され得る外部デバイス14及びディスプレイ24を有することに加えて、又はその代わりに、一実施形態におけるコンピューティングノード10は、バス18に接続されているディスプレイ25を含み得る。一実施形態において、ディスプレイ25は、タッチスクリーンディスプレイとして構成され得、ユーザインタフェース機能を提供するように構成され得、例えば、仮想キーボード機能及び合計データの入力を容易にし得る。一実施形態におけるコンピュータシステム12はまた、バス18に接続されている1又は複数のセンサデバイス27を含み得る。1又は複数のセンサデバイス27は、代替的には、I/Oインタフェース22を通じて接続され得る。1又は複数のセンサデバイス27は、一実施形態においてグローバルポジショニングセンサ(GPS)デバイスを含み得、コンピューティングノード10の位置を提供するように構成され得る。一実施形態において、1又は複数のセンサデバイス27は、代替的に又はさらに、例えば、1又は複数のカメラ、ジャイロスコープ、温度センサ、湿度センサ、パルスセンサ、血圧(bp)センサ、又は、オーディオ入力デバイスを含み得る。コンピュータシステム12は、1又は複数のネットワークアダプタ20を含み得る。図10において、コンピューティングノード10は、クラウドコンピューティング環境において実装されているものとして説明されており、したがって、図10の状況下では、クラウドコンピューティングノードと称される。
ここで、図10を参照すると、例示的なクラウドコンピューティング環境50が示される。示されるように、クラウドコンピューティング環境50は、例えば、パーソナルデジタルアシスタント(PDA)又は携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、及び/又は、自動車コンピュータシステム54N等のクラウド消費者によって使用されるローカルコンピューティングデバイスが通信し得る、1又は複数のクラウドコンピューティングノード10を備える。ノード10は、互いと通信し得る。それらは、上述のようなプライベートクラウド、コミュニティクラウド、パブリッククラウド、若しくはハイブリッドクラウド、又はそれらの組み合わせ等の1又は複数のネットワークにおいて、物理的に又は仮想的にグループ化(不図示)され得る。これにより、クラウドコンピューティング環境50が、クラウド消費者がローカルコンピューティングデバイス上でリソースを維持する必要がないサービスとして、インフラストラクチャ、プラットフォーム、若しくは、ソフトウェア又はその組み合わせを提供することを可能にする。図10に示されるコンピューティングデバイス54A-Nのタイプは、単に例示を意図するものであり、コンピューティングノード10及びクラウドコンピューティング環境50は、(例えば、ウェブブラウザを使用して)任意のタイプのネットワークネットワークアドレス可能な接続又はその組み合わせを介して、任意のタイプのコンピュータ化されたデバイスと通信し得ることが理解されたい。
ここで、図11を参照すると、クラウドコンピューティング環境50(図10)によって提供される機能抽象化レイヤのセットが示される。図11に示されるコンポーネント、レイヤ、及び機能は、単に例示を意図するものであり、本発明の実施形態がそれらに限定されないことが予め理解されるべきである。示されるように、以下のレイヤ及び対応する機能が提供される。
ハードウェア及びソフトウェアレイヤ60は、ハードウェアコンポーネント及びソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例は、メインフレーム61、RISC(Reduced Instruction Set Computer)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、ストレージデバイス65、並びに、ネットワークコンポーネント及びネットワーキングコンポーネント66を含む。幾つかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67及びデータベースソフトウェア68を含む。
仮想化レイヤ70は、仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーション及びオペレーティングシステム74、並びに仮想クライアント75である、仮想エンティティの例が提供され得る抽象化レイヤを提供する。
一例において、管理レイヤ80は、以下で説明される機能を提供し得る。リソースプロビジョニング81は、クラウドコンピューティング環境内でタスクを遂行するために利用される、コンピューティングリソース及び他のリソースの動的な調達を提供する。計測及び価格設定82は、リソースがクラウドコンピューティング環境内で利用されるときのコスト追跡、及び、これらのリソースの消費に対する課金又は請求書を提供する。一例において、これらのリソースは、アプリケーションソフトウェアライセンスを備え得る。セキュリティは、クラウド消費者及びタスクに対する本人確認、並びに、データ及び他のリソースに対する保護を提供する。ユーザポータル83は、消費者及びシステム管理者に対してクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されるサービスレベルが満たされるように、クラウドコンピューティングのリソース割り当て及び管理を提供する。サービス品質保証(SLA)プランニング及び履行85は、将来の要件がSLAに従って予測されるクラウドコンピューティングリソースの事前の取り決め及び調達を提供する。
作業負荷レイヤ90は、クラウドコンピューティング環境が利用され得る機能の例を提供する。本レイヤから提供され得る作業負荷及び機能の例は、マッピング及びナビゲーション91、ソフトウェア開発及びライフサイクル管理92、仮想教室教育の配信93、データ分析処理94、トランザクション処理95、並びに、本明細書に記載されている、予測済みの入力変数及びアクセス経路の選択のための処理コンポーネント96を含む。処理コンポーネント96は、図9において説明されている1又は複数のプログラム40を使用することにより実装され得る。
本発明は、任意の可能な技術的詳細レベルの統合における、システム、方法、及び/又はコンピュータプログラム製品であり得る。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(又は媒体)を含み得る。
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のために命令を保持及び格納し得る有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光学ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又は前述のストレージデバイスの任意の適切な組み合わせであり得るが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の包括的でないリストは、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピディスク、パンチカード若しくは記録された命令を有する溝内の隆起構造等の機械的にエンコードされたデバイス、及び前述のものの任意の適切な組み合わせを含む。コンピュータ可読記憶媒体は、本明細書において使用されるとき、電波若しくは他の自由に伝搬する電磁波、導波路若しくは他の伝送媒体を伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又は有線で伝送される電気信号等、それ自体が一時的な信号であるとして解釈されない。
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスにダウンロードし得、又は、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、広域ネットワーク、若しくは無線ネットワーク又はその組み合わせ、を介して、外部のコンピュータ若しくは外部ストレージデバイスにダウンロードし得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、若しくは、エッジサーバ又はその組み合わせを備え得る。それぞれのコンピューティング/処理デバイス内のネットワークアダプタカード又はネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に格納するためにコンピュータ可読プログラム命令を転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、又は、Smalltalk(登録商標)、C++若しくは同類のもの等のオブジェクト指向プログラミング言語、若しくは「C」プログラミング言語若しくは同様のプログラミング言語等の手続き型プログラミング言語を含む、1若しくは複数のプログラミング言語の任意の組み合わせで記述されたソースコード若しくはオブジェクトコードのいずれかであり得る。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で完全に実行してもよく、スタンドアロンソフトウェアパッケージとしてユーザのコンピュータ上で部分的に実行してもよく、ユーザのコンピュータ上で部分的に、且つ、リモートコンピュータ上で部分的に実行してもよく、リモートコンピュータ又はサーバ上で完全に実行してもよい。後者のシナリオにおいて、リモートコンピュータは、ローカルエリアネットワーク(LAN)又は広域ネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続し得、又は、その接続が、(例えば、インターネットサービスプロバイダを使用してインターネットを通じて)外部コンピュータに対して行われ得る。幾つかの実施形態において、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を遂行するために、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行して、電子回路をパーソナライズし得る。
本発明の態様が、本発明の実施形態に係る方法、装置(システム)及びコンピュータプログラム製品のフローチャート図及び/又はブロック図に関連して本明細書で説明されている。フローチャート図及び/又はブロック図のそれぞれのブロック、並びに、フローチャート図及び/又はブロック図のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装され得ることが理解されたい。
これらのコンピュータ可読プログラム命令は、マシンを生成すべくコンピュータのプロセッサ又は他のプログラマブルデータ処理装置に提供され得、その結果、コンピュータのプロセッサ又は他のプログラマブルデータ処理装置を介して実行する命令が、フローチャート及び/又はブロック図のブロック若しくは複数のブロックにおいて指定された機能/動作を実装するための手段を作成する。コンピュータ、プログラマブルデータ処理装置、及び/又は他のデバイスに特定の方式で機能するよう命令し得るこれらのコンピュータ可読プログラム命令はまた、コンピュータ可読記憶媒体に格納され得、その結果、その中に格納された命令を有するコンピュータ可読記憶媒体は、フローチャート及び/又はブロック図のブロック若しくは複数のブロックにおいて指定された機能/動作の態様を実装する命令を含む製品を備える。
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイス上にロードされて、コンピュータ、他のプログラマブル装置、又は他のデバイス上で一連の動作段階を遂行させて、コンピュータ実装処理を生成し得、その結果、コンピュータ、他のプログラマブル装置、又は他のデバイス上で実行する命令は、フローチャート及び/又はブロック図のブロック若しくは複数のブロックにおいて指定される機能/動作を実装する。
図におけるフローチャート及びブロック図は、本発明の様々な実施形態に係るシステム、方法、及びコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、及び動作を示す。この関連で、フローチャート又はブロック図におけるそれぞれのブロックは、モジュール、セグメント、又は指定された論理機能を実装するための1又は複数の実行可能命令を備える命令の一部を表し得る。幾つかの代替的な実装において、ブロックに記される機能は、図に記される順序とは異なる順序で行われ得る。例えば、連続して示される2個のブロックが、実際には、1つの段階として実現されてもよく、部分的又は全体的に時間重複する方式で同時に又は実質的に同時に実行されてもよく、ブロックが関連する機能に依存して逆の順序で実行される場合があってもよい。ブロック図及び/又はフローチャート図のそれぞれのブロック、並びに、ブロック図及び/又はフローチャート図におけるブロックの組み合わせは、指定された機能若しくは動作を遂行する、又は、特殊目的ハードウェア及びコンピュータ命令の組み合わせを実行する特殊目的ハードウェアベースのシステムによって実装され得ることも留意されたい。
本明細書で使用される用語は、特定の実施形態を説明することのみを目的としており、限定することを意図していない。本明細書で使用されるように、単数形の「a」、「an」、及び「the」は、文脈がそうでないことを明確に示していない限り、複数形も含むことを意図している。用語「備える(comprise)」(及び「comprises」及び「comprising」等のcompriseの任意の形態)、用語「有する(have)」(及び「has」及び「having」等のhaveの任意の形態)、用語「含む(include)」(及び「includes」及び「including」等のincludeの任意の形態)、並びに、用語「含むcontain」(及び「contains」及び「containing」等のcontainの任意の形態)は、オープンエンドな連結動詞であることがさらに理解されたい。結果として、1若しくは複数の段階若しくは要素を「備える(comprise)」、「有する(have)」、「含む(include)」若しくは「含む(contain)」方法又はデバイスは、それらの1若しくは複数の段階又は要素を保有するが、それらの1若しくは複数の段階又は要素のみを保有すること限定されない。同様に、1若しくは複数の特徴を「備える(comprise)」、「有する(have)」、「含む(include)」若しくは「含む(contain)」方法の段階若しくはデバイスの要素は、それらの1又は複数の特徴を保有するが、それらの1又は複数の特徴のみを保有することに限定されない。本明細書における用語「に基づいて(based on)」の形態は、要素が部分的に基づいている場合の関係、及び、要素が完全に基づいている場合の関係を包含する。特定の数の要素を有するものとして説明された方法、製品、及びシステムは、特定の数より少ない又は多い要素で実施され得る。さらに、特定の方法で構成されるデバイス又は構造は、少なくともその方法で構成されるが、列挙されていない方法でも構成されてよい。
本開示の説明によって明示的に示されているか、本質的に導出されているかにかかわらず、本明細書で記載されている数値、及び、他の値は、用語「約(about)」によって修正されると考えられる。本明細書で使用されるように、用語「約(about)」は、そのように修正された数値を含む許容範囲及び値、当該修正された数値までの許容範囲及び値を含むべく、修正された値の数値境界を定義するが、これらに限定されない。すなわち、数値は、明確に示される実際の値、及び、本開示において示され、及び/又は説明された実際の値の少数、分数、若しくは他の倍数である又はあり得る他の値を含み得る。
以下の特許請求の範囲における全ての手段又は段階プラス機能要素の対応する構造、材料、動作、及び均等物は、もしあれば、具体的に請求されているように、他の請求されている要素との組み合わせで、機能を遂行するための任意の構造、材料、又は動作を含むものとして意図されている。本明細書で記載された説明は、例示及び説明を目的として提示されてきたが、開示された形態を網羅又は限定することを意図しない。本開示の範囲及び趣旨から逸脱することなく、多くの修正及び変形は、当業者に明らかであるだろう。本明細書に記載された1又は複数の態様及び実際のアプリケーションの原理を最良に説明するため、且つ、当業者が様々な修正を含む様々な実施形態について本明細書で説明されるような1又は複数の態様を理解することを可能するために選択及び説明された実施形態は、予期され特定の使用に適合している。
Claims (25)
- 着信クエリステートメントを受信する段階であって、前記着信クエリステートメントは、入力変数を含むクエリステートメント表現を含む、受信する段階と、
前記入力変数に関連した入力変数値を予測する段階と、
予測済みの前記入力変数値に依存した前記着信クエリステートメントのランタイム実行用のアクセス経路を選択する段階と、
前記選択されたアクセス経路を使用して、前記着信クエリステートメントのランタイム実行を遂行する段階と
を備える、コンピュータ実装方法。 - 前記入力変数に関連した前記入力変数値を前記予測する段階は、予測済みの前記入力変数値の返答用の予測モデルを問い合わせる段階であって、前記予測モデルは、前記入力変数に対して決定された過去の入力変数値を含むトレーニングデータを用いてトレーニングされている、問い合わせる段階を有する、請求項1に記載のコンピュータ実装方法。
- 前記入力変数に関連した前記入力変数値を前記予測する段階は、予測済みの前記入力変数値の返答用の予測モデルを問い合わせる段階であって、前記予測モデルは、前記入力変数に対して決定された過去の入力変数値を含むトレーニングデータを用いてトレーニングされている、問い合わせる段階を有し、予測済みの前記入力変数値の返答用の前記予測モデルを前記問い合わせる段階は、前記受信した着信クエリステートメントに関連した作業負荷の属性を指定するコンテキストパラメータ値のセットを含むクエリデータを使用して前記予測モデルを問い合わせる段階を含み、前記コンテキストパラメータ値のセットは、前記着信クエリステートメントを含む企業システムから受信したメッセージから抽出されている、請求項1に記載のコンピュータ実装方法。
- 前記入力変数に関連した前記入力変数値を前記予測する段階は、予測済みの前記入力変数値の返答用の予測モデルを問い合わせる段階であって、前記予測モデルは、前記入力変数に対して決定された過去の入力変数値を含むトレーニングデータを用いてトレーニングされている、問い合わせる段階を有し、前記コンピュータ実装方法は、前記予測モデルが、精度のレベルを満たす閾値に従って予測を返答しているか否かを決定する段階を備え、前記コンピュータ実装方法は、前記予測モデルが精度のレベルを満たす前記閾値に従って予測を返答している、という決定に応じて前記予測モデルを前記問い合わせる段階を遂行する段階を備える、請求項1に記載のコンピュータ実装方法。
- 前記入力変数に関連した前記入力変数値を前記予測する段階は、予測済みの前記入力変数値の返答用の予測モデルを問い合わせる段階であって、前記予測モデルは、前記入力変数に対して決定された過去の入力変数値を含むトレーニングデータを用いてトレーニングされている、問い合わせる段階を有し、前記コンピュータ実装方法は、前記予測モデルが、精度のレベルを満たす閾値に従って予測を返答しているか否かを決定する段階を備え、前記コンピュータ実装方法は、前記予測モデルが精度のレベルを満たす前記閾値に従って予測を返答している、という決定に応じて前記予測モデルを前記問い合わせる段階を遂行する段階を備え、前記予測モデルが、精度のレベルを満たす閾値に従って予測を返答しているか否かを前記決定する段階は、前記予測モデルを使用して返答された予報を、過去の入力変数値を含む前記トレーニングデータのホールドアウトデータによって定義されたグラウンドトゥルースデータと比較する段階を有する、請求項1に記載のコンピュータ実装方法。
- 前記入力変数に関連した前記入力変数値を前記予測する段階は、予測済みの前記入力変数値の返答用の予測モデルを問い合わせる段階であって、前記予測モデルは、前記入力変数に対して決定された過去の入力変数値を含むトレーニングデータを用いてトレーニングされている、問い合わせる段階を有し、前記着信クエリステートメントは、第2の入力変数を有する第2のクエリステートメント表現を含み、前記コンピュータ実装方法は、第2の入力変数値に関連した前記第2の入力変数値の返答用の第2の予測モデルを問い合わせる段階を備え、予測済みの前記入力変数値に依存した前記着信クエリステートメントのランタイム実行用の前記アクセス経路を前記選択する段階は、予測済みの前記入力変数値に依存し、且つ、前記第2の入力変数値に依存した、前記着信クエリステートメントのランタイム実行用の前記アクセス経路を選択する段階を有する、請求項1に記載のコンピュータ実装方法。
- 前記入力変数に関連した前記入力変数値を前記予測する段階は、予測済みの前記入力変数値の返答用の予測モデルを問い合わせる段階であって、前記予測モデルは、前記入力変数に対して決定された過去の入力変数値を含むトレーニングデータを用いてトレーニングされている、問い合わせる段階を有し、前記着信クエリステートメントは、第2の入力変数を有する第2のクエリステートメント表現を含み、前記第2の入力変数に対して決定された過去の入力変数値を含むトレーニングデータを用いてトレーニングされている第2の予測モデルは、前記着信クエリステートメントの前記第2の入力変数に関連しており、前記コンピュータ実装方法は、前記予測モデルが、精度のレベルを満たす閾値に従って予測を返答しているか否かを決定する段階と、前記第2の予測モデルが、精度のレベルを満たす予測閾値に従って予測を返答しているか否かを決定する段階とを備え、前記コンピュータ実装方法は、前記予測モデルが精度のレベルを満たす前記閾値に従って予測を返答している、という決定に応じて前記予測モデルを前記問い合わせる段階を遂行する段階を備え、前記コンピュータ実装方法は、前記第2の予測モデルが精度のレベルを満たす前記予測閾値に従って予測を返答できていない、という決定に応じて、前記第2の入力変数に対する第2の入力変数値の予測の返答なしに、前記第2の入力変数用のデフォルトのフィルタ因子を割り当てる段階を備え、予測済みの前記入力変数値に依存した前記着信クエリステートメントのランタイム実行用の前記アクセス経路を前記選択する段階は、予測済みの前記入力変数値に依存し、且つ、前記デフォルトのフィルタ因子に依存した、前記着信クエリステートメントのランタイム実行用の前記アクセス経路を選択する段階を有する、請求項1に記載のコンピュータ実装方法。
- アクセス経路を前記選択する段階は、アクセス経路の複数の候補のコストスコアリングを遂行する段階と、前記着信クエリステートメントのランタイム実行用の前記アクセス経路として、前記アクセス経路の複数の候補のうちの最も低いコストのアクセス経路を識別する段階とを有し、前記コンピュータ実装方法は、前記入力変数値に関連したテーブル用のテーブル傾向分類を決定すべく、過去のデータを検査する段階を備え、前記アクセス経路の複数の候補のコストスコアリングを前記遂行する段階は、前記テーブル傾向分類に依存した前記アクセス経路の複数の候補のコストスコアリングを遂行する段階を有する、請求項1から7のいずれか一項に記載のコンピュータ実装方法。
- 前記予測する段階は、機械学習によってトレーニングされている予測モデルを問い合わせる段階を有する、請求項1に記載のコンピュータ実装方法。
- 前記予測する段階は、機械学習によってトレーニングされている予測モデルを問い合わせる段階を有し、前記コンピュータ実装方法は、前記着信クエリステートメントの前記ランタイム実行の間、予測済みの前記入力変数値に関連した前記入力変数値を決定する段階と、前記予測モデルをトレーニングすべく、前記決定された入力変数値を使用する段階とをさらに備える、請求項1に記載のコンピュータ実装方法。
- 前記予測する段階は、前記着信クエリステートメントのランタイム実行の前のインスタンスに関連した入力変数値によって定義された時系列データを曲線フィッティングすべく、機械学習によってトレーニングされている予測モデルを問い合わせる段階を有する、請求項1に記載のコンピュータ実装方法。
- 前記予測する段階は、時系列データによって提供されたトレーニングデータを曲線フィッティングすべく、フーリエ解析ベースの機械学習によってトレーニングされている予測モデルを問い合わせる段階を有し、前記時系列データは、前記着信クエリステートメントのランタイム実行の前のインスタンスに関連した入力変数値によって定義されている、請求項1に記載のコンピュータ実装方法。
- 1又は複数のプロセッサに、
着信クエリステートメントを受信する手順であって、前記着信クエリステートメントは、入力変数を含むクエリステートメント表現を含む、受信する手順と、
前記入力変数に関連した入力変数値を予測する手順と、
予測済みの前記入力変数値に依存した前記着信クエリステートメントのランタイム実行用のアクセス経路を選択する手順と、
前記選択されたアクセス経路を使用して、前記着信クエリステートメントのランタイム実行を遂行する手順と
を実行させる、コンピュータプログラム。 - 前記入力変数に関連した前記入力変数値を前記予測する手順は、予測済みの前記入力変数値の返答用の予測モデルを問い合わせる手順であって、前記予測モデルは、前記入力変数に対して決定された過去の入力変数値を含むトレーニングデータを用いてトレーニングされている、問い合わせる手順を有する、請求項13に記載のコンピュータプログラム。
- 前記入力変数に関連した前記入力変数値を前記予測する手順は、予測済みの前記入力変数値の返答用の予測モデルを問い合わせる手順であって、前記予測モデルは、前記入力変数に対して決定された過去の入力変数値を含むトレーニングデータを用いてトレーニングされている、問い合わせる手順を有し、予測済みの前記入力変数値の返答用の前記予測モデルを前記問い合わせる手順は、前記受信した着信クエリステートメントに関連した作業負荷の属性を指定するコンテキストパラメータ値のセットを含むクエリデータを使用して前記予測モデルを問い合わせる手順を含み、前記コンテキストパラメータ値のセットは、前記着信クエリステートメントを含む企業システムから受信したメッセージから抽出されている、請求項13に記載のコンピュータプログラム。
- 前記入力変数に関連した前記入力変数値を前記予測する手順は、予測済みの前記入力変数値の返答用の予測モデルを問い合わせる手順であって、前記予測モデルは、前記入力変数に対して決定された過去の入力変数値を含むトレーニングデータを用いてトレーニングされている、問い合わせる手順を有し、前記コンピュータプログラムは、前記1又は複数のプロセッサに、前記予測モデルが、精度のレベルを満たす閾値に従って予測を返答しているか否かを決定する手順を実行させ、前記コンピュータプログラムは、前記1又は複数のプロセッサに、前記予測モデルが精度のレベルを満たす前記閾値に従って予測を返答している、という決定に応じて前記予測モデルを前記問い合わせる手順を遂行する手順を実行させる、請求項13に記載のコンピュータプログラム。
- 前記入力変数に関連した前記入力変数値を前記予測する手順は、予測済みの前記入力変数値の返答用の予測モデルを問い合わせる手順であって、前記予測モデルは、前記入力変数に対して決定された過去の入力変数値を含むトレーニングデータを用いてトレーニングされている、問い合わせる手順を有し、前記コンピュータプログラムは、前記1又は複数のプロセッサに、前記予測モデルが、精度のレベルを満たす閾値に従って予測を返答しているか否かを決定する手順を実行させ、前記コンピュータプログラムは、前記1又は複数のプロセッサに、前記予測モデルが精度のレベルを満たす前記閾値に従って予測を返答している、という決定に応じて前記予測モデルを前記問い合わせる手順を遂行する手順を実行させ、前記予測モデルが、精度のレベルを満たす閾値に従って予測を返答しているか否かを前記決定する手順は、前記予測モデルを使用して返答された予報を、過去の入力変数値を含む前記トレーニングデータのホールドアウトデータによって定義されたグラウンドトゥルースデータと比較する手順を有する、請求項13に記載のコンピュータプログラム。
- 前記入力変数に関連した前記入力変数値を前記予測する手順は、予測済みの前記入力変数値の返答用の予測モデルを問い合わせる手順であって、前記予測モデルは、前記入力変数に対して決定された過去の入力変数値を含むトレーニングデータを用いてトレーニングされている、問い合わせる手順を有し、前記着信クエリステートメントは、第2の入力変数を有する第2のクエリステートメント表現を含み、前記第2の入力変数に対して決定された過去の入力変数値を含むトレーニングデータを用いてトレーニングされている第2の予測モデルは、前記着信クエリステートメントの前記第2の入力変数に関連しており、前記コンピュータプログラムは、前記1又は複数のプロセッサに、前記予測モデルが、精度のレベルを満たす閾値に従って予測を返答しているか否かを決定する手順と、前記第2の予測モデルが、精度のレベルを満たす予測閾値に従って予測を返答しているか否かを決定する手順とを実行させ、前記コンピュータプログラムは、前記1又は複数のプロセッサに、前記予測モデルが精度のレベルを満たす前記閾値に従って予測を返答している、という決定に応じて前記予測モデルを前記問い合わせる手順を遂行する手順を実行させ、前記コンピュータプログラムは、前記1又は複数のプロセッサに、前記第2の予測モデルが精度のレベルを満たす前記予測閾値に従って予測を返答できていない、という決定に応じて、前記第2の入力変数に対する第2の入力変数値の予測の返答なしに、前記第2の入力変数用のデフォルトのフィルタ因子を割り当てる手順を実行させ、予測済みの前記入力変数値に依存した前記着信クエリステートメントのランタイム実行用の前記アクセス経路を前記選択する手順は、予測済みの前記入力変数値に依存し、且つ、前記デフォルトのフィルタ因子に依存した、前記着信クエリステートメントのランタイム実行用の前記アクセス経路を選択する手順を有する、請求項13に記載のコンピュータプログラム。
- メモリと、
前記メモリと通信する少なくとも1つのプロセッサと、
着信クエリステートメントを受信する段階であって、前記着信クエリステートメントは、入力変数を含むクエリステートメント表現を含む、受信する段階と、
前記入力変数に関連した入力変数値を予測する段階と、
予測済みの前記入力変数値に依存した前記着信クエリステートメントのランタイム実行用のアクセス経路を選択する段階と、
前記選択されたアクセス経路を使用して、前記着信クエリステートメントのランタイム実行を遂行する段階と
を備える、方法を遂行すべく、前記メモリを介して1又は複数のプロセッサによって実行可能であるプログラム命令と
を備える、システム。 - 着信クエリステートメントを受信する段階であって、前記着信クエリステートメントは、入力変数を含むクエリステートメント表現を含む、受信する段階と、
前記着信クエリステートメントのランタイム実行用のアクセス経路を選択する段階と、
前記選択されたアクセス経路を使用して、前記着信クエリステートメントのランタイム実行を遂行する段階であって、前記着信クエリステートメントのランタイム実行を前記遂行する段階は、前記入力変数に対する入力変数値を決定する段階を有する、遂行する段階と、
予測モデルをトレーニングするためのトレーニングデータとして、前記決定された入力変数値を適用する段階であって、前記予測モデルは、前記入力変数に関連した入力変数値についての予測を返答するように構成される、適用する段階と、
前記着信クエリステートメントの後続のインスタンスを受信する段階であって、前記着信クエリステートメントは、前記入力変数を含む前記クエリステートメント表現を含む、受信する段階と、
前記着信クエリステートメントの前記後続のインスタンスにおける前記入力変数の入力変数値を予測すべく、前記予測モデルを問い合わせる段階と、
予測済みの前記入力変数値に依存した前記着信クエリステートメントの前記後続のインスタンスのランタイム実行用のアクセス経路を選択する段階と、
前記選択されたアクセス経路を使用して、前記着信クエリステートメントの前記後続のインスタンスのランタイム実行を遂行する段階と
を備える、コンピュータ実装方法。 - 前記コンピュータ実装方法は、前記予測モデルが、精度のレベルを満たす閾値に従って予測を返答しているか否かを決定する段階を備え、前記コンピュータ実装方法は、前記予測モデルが精度のレベルを満たす前記閾値に従って予測を返答している、という決定に応じて前記予測モデルを前記問い合わせる段階を遂行する段階を備える、請求項20に記載のコンピュータ実装方法。
- 前記コンピュータ実装方法は、前記予測モデルが、精度のレベルを満たす閾値に従って予測を返答しているか否かを決定する段階を備え、前記コンピュータ実装方法は、前記予測モデルが精度のレベルを満たす前記閾値に従って予測を返答している、という決定に応じて前記予測モデルを前記問い合わせる段階を遂行する段階を備え、前記予測モデルが、精度のレベルを満たす閾値に従って予測を返答しているか否かを前記決定する段階は、前記予測モデルを使用して返答された予報を、前記予測モデルをトレーニングするために使用された過去の入力変数値を含む前記トレーニングデータのホールドアウトデータによって定義されたグラウンドトゥルースデータと比較する段階を有する、請求項20に記載のコンピュータ実装方法。
- メモリと、
前記メモリと通信する少なくとも1つのプロセッサと、
着信クエリステートメントを受信する段階であって、前記着信クエリステートメントは、入力変数を含むクエリステートメント表現を含む、受信する段階と、
前記着信クエリステートメントのランタイム実行用のアクセス経路を選択する段階と、
前記選択されたアクセス経路を使用して、前記着信クエリステートメントのランタイム実行を遂行する段階であって、前記着信クエリステートメントのランタイム実行を前記遂行する段階は、前記入力変数に対する入力変数値を決定する段階を有する、遂行する段階と、
予測モデルをトレーニングするためのトレーニングデータとして、前記決定された入力変数値を適用する段階であって、前記予測モデルは、前記入力変数に関連した入力変数値についての予測を返答するように構成される、適用する段階と、
前記着信クエリステートメントの後続のインスタンスを受信する段階であって、前記着信クエリステートメントは、前記入力変数を含む前記クエリステートメント表現を含む、受信する段階と、
前記着信クエリステートメントの前記後続のインスタンスにおける前記入力変数の入力変数値を予測すべく、前記予測モデルを問い合わせる段階と、
予測済みの前記入力変数値に依存した前記着信クエリステートメントの前記後続のインスタンスのランタイム実行用のアクセス経路を選択する段階と、
前記選択されたアクセス経路を使用して、前記着信クエリステートメントの前記後続のインスタンスのランタイム実行を遂行する段階と
を備える、方法を遂行すべく、前記メモリを介して1又は複数のプロセッサによって実行可能であるプログラム命令と
を備える、システム。 - 前記方法は、前記予測モデルが、精度のレベルを満たす閾値に従って予測を返答しているか否かを決定する段階を備え、前記方法は、前記予測モデルが精度のレベルを満たす前記閾値に従って予測を返答している、という決定に応じて前記予測モデルを前記問い合わせる段階を遂行する段階を備える、請求項23に記載のシステム。
- 前記方法は、前記予測モデルが、精度のレベルを満たす閾値に従って予測を返答しているか否かを決定する段階を備え、前記方法は、前記予測モデルが精度のレベルを満たす前記閾値に従って予測を返答している、という決定に応じて前記予測モデルを前記問い合わせる段階を遂行する段階を備え、前記予測モデルが、精度のレベルを満たす閾値に従って予測を返答しているか否かを前記決定する段階は、前記予測モデルを使用して返答された予報を、前記予測モデルをトレーニングするために使用された過去の入力変数値を含む前記トレーニングデータのホールドアウトデータによって定義されたグラウンドトゥルースデータと比較する段階を有する、請求項23に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/240,831 | 2021-04-26 | ||
US17/240,831 US11645283B2 (en) | 2021-04-26 | 2021-04-26 | Predictive query processing |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022168859A true JP2022168859A (ja) | 2022-11-08 |
Family
ID=83694293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022071984A Pending JP2022168859A (ja) | 2021-04-26 | 2022-04-25 | コンピュータ実装方法、コンピュータプログラム、及びシステム(予測クエリ処理) |
Country Status (3)
Country | Link |
---|---|
US (1) | US11645283B2 (ja) |
JP (1) | JP2022168859A (ja) |
CN (1) | CN115248815A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11782918B2 (en) * | 2020-12-11 | 2023-10-10 | International Business Machines Corporation | Selecting access flow path in complex queries |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7310638B1 (en) * | 2004-10-06 | 2007-12-18 | Metra Tech | Method and apparatus for efficiently processing queries in a streaming transaction processing system |
US20080195577A1 (en) * | 2007-02-09 | 2008-08-14 | Wei Fan | Automatically and adaptively determining execution plans for queries with parameter markers |
US8688683B2 (en) | 2009-11-30 | 2014-04-01 | Business Objects Software Ltd. | Query plan reformulation |
US9251211B2 (en) | 2010-10-01 | 2016-02-02 | Telefonaktiebolaget L M Ericsson (Publ) | Generation of a query plan for accessing a database |
JP4906968B1 (ja) * | 2011-05-22 | 2012-03-28 | 株式会社三菱東京Ufj銀行 | データベース問合せ端末 |
CN103136260A (zh) * | 2011-11-30 | 2013-06-05 | 国际商业机器公司 | 评估过滤因子用于数据库中访问路径优化的方法和装置 |
CN103176973B (zh) | 2011-12-20 | 2016-04-20 | 国际商业机器公司 | 用于生成数据库的测试工作负载的系统和方法 |
US9026480B2 (en) * | 2011-12-21 | 2015-05-05 | Telenav, Inc. | Navigation system with point of interest classification mechanism and method of operation thereof |
US9524473B2 (en) | 2012-08-31 | 2016-12-20 | Nutonian, Inc. | System and method for auto-query generation |
US9652497B2 (en) * | 2014-04-23 | 2017-05-16 | International Business Machines Corporation | Processing queries using hybrid access paths |
US9454571B2 (en) * | 2014-06-26 | 2016-09-27 | Sap Se | Optimization of parallelization of user-defined functions with flexible partitioning |
US10671603B2 (en) * | 2016-03-11 | 2020-06-02 | Tibco Software Inc. | Auto query construction for in-database predictive analytics |
US10242058B2 (en) * | 2015-07-14 | 2019-03-26 | International Business Machines Corporation | Access path optimization through system statistics |
US10503734B2 (en) * | 2015-07-14 | 2019-12-10 | Sap Se | External offline query optimization |
US10467256B2 (en) | 2015-08-04 | 2019-11-05 | Google Llc | Automatic query pattern generation |
CN106959976B (zh) | 2016-01-12 | 2020-08-14 | 腾讯科技(深圳)有限公司 | 一种搜索处理方法以及装置 |
US20170249360A1 (en) * | 2016-02-26 | 2017-08-31 | International Business Machines Corporation | Skew sensitive estimating of record cardinality of a join predicate for rdbms query optimizer access path selection |
US11176128B2 (en) * | 2018-05-15 | 2021-11-16 | International Business Machines Corporation | Multiple access path selection by machine learning |
-
2021
- 2021-04-26 US US17/240,831 patent/US11645283B2/en active Active
-
2022
- 2022-04-15 CN CN202210396589.6A patent/CN115248815A/zh active Pending
- 2022-04-25 JP JP2022071984A patent/JP2022168859A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
CN115248815A (zh) | 2022-10-28 |
US11645283B2 (en) | 2023-05-09 |
US20220342887A1 (en) | 2022-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11176128B2 (en) | Multiple access path selection by machine learning | |
US20180293279A1 (en) | Searching in a database | |
US20230139783A1 (en) | Schema-adaptable data enrichment and retrieval | |
US11501111B2 (en) | Learning models for entity resolution using active learning | |
US11281992B2 (en) | Predicting geofence performance for optimized location based services | |
AU2021359241B2 (en) | Learning-based workload resource optimization for database management systems | |
US11720565B2 (en) | Automated query predicate selectivity prediction using machine learning models | |
US11205138B2 (en) | Model quality and related models using provenance data | |
AU2021244852B2 (en) | Offloading statistics collection | |
US20210158076A1 (en) | Determining Model-Related Bias Associated with Training Data | |
US20220374218A1 (en) | Software application container hosting | |
US20220188315A1 (en) | Estimating execution time for batch queries | |
JP2022168859A (ja) | コンピュータ実装方法、コンピュータプログラム、及びシステム(予測クエリ処理) | |
WO2022111148A1 (en) | Metadata indexing for information management | |
US11782918B2 (en) | Selecting access flow path in complex queries | |
US11244007B2 (en) | Automatic adaption of a search configuration | |
US20220284023A1 (en) | Estimating computational cost for database queries | |
US20220309391A1 (en) | Interactive machine learning optimization | |
US11868349B2 (en) | Row secure table plan generation | |
US11074508B2 (en) | Constraint tracking and inference generation | |
US11500864B2 (en) | Generating highlight queries | |
US20240045878A1 (en) | Building and using a sparse time series database (tsdb) | |
US12038979B2 (en) | Metadata indexing for information management using both data records and associated metadata records | |
US11841857B2 (en) | Query efficiency using merged columns | |
US20230010147A1 (en) | Automated determination of accurate data schema |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20220518 |