JP2023518345A - 統計の収集のオフロード - Google Patents
統計の収集のオフロード Download PDFInfo
- Publication number
- JP2023518345A JP2023518345A JP2022549078A JP2022549078A JP2023518345A JP 2023518345 A JP2023518345 A JP 2023518345A JP 2022549078 A JP2022549078 A JP 2022549078A JP 2022549078 A JP2022549078 A JP 2022549078A JP 2023518345 A JP2023518345 A JP 2023518345A
- Authority
- JP
- Japan
- Prior art keywords
- statistics
- database system
- source
- source database
- utilizing
- 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
- 230000004044 response Effects 0.000 claims abstract description 43
- 238000000034 method Methods 0.000 claims abstract description 40
- 238000012545 processing Methods 0.000 claims description 29
- 230000009471 action Effects 0.000 claims description 17
- 230000008859 change Effects 0.000 claims description 12
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000003860 storage Methods 0.000 description 35
- 230000006870 function Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/24542—Plan optimisation
- G06F16/24545—Selectivity estimation or determination
-
- 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/23—Updating
- G06F16/235—Update request formulation
-
- 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Operations Research (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Treatment Of Liquids With Adsorbents In General (AREA)
- Sink And Installation For Waste Water (AREA)
- Nitrogen And Oxygen Or Sulfur-Condensed Heterocyclic Ring Systems (AREA)
- Other Investigation Or Analysis Of Materials By Electrical Means (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Solid-Sorbent Or Filter-Aiding Compositions (AREA)
Abstract
データベース統計を生成するための方法およびシステムが提供される。ソース・データベース・システムのメタデータ・カタログ内のテーブル統計が観察され、ターゲット・データベース・システムを利用する統計生成コストが推定され、ソース・データベース・システムを利用するソース統計生成コストが推定される。統計生成コストが比較され、ターゲット・データベース・システムを利用する統計生成コストがソース・データベース・システムを利用するソース統計生成コストと事前定義された関係を有することに応答して、ターゲット・データベース・システムによる統計生成クエリがトリガされる。ソース・データベース・システムによるトリガに応答して、ターゲット・データベース・システムによって統計生成クエリが実行される。生成された統計がターゲット・データベース・システムからソース・データベース・システムに送信され、生成された統計に基づいてメタデータ・カタログ内のテーブル統計が更新され、クエリ・プランを最適化するために更新されたテーブル統計が使用される。【選択図】図3
Description
本発明は電気技術、電子技術、およびコンピュータ技術に関し、より詳細にはリレーショナル・データベースなどに関する。
データベース・システムは通常、データベース・クエリをクエリ・プランにスケジューリングする。従来より、クエリ・プランはリレーショナル・オペレータのツリーとして表される。コストの削減、パフォーマンスの向上などのために、オプティマイザがしばしば使用され、クエリを実行するためのより最適なプランが生成される。たとえば、データベースのテーブル内のデータの分布に関する統計を使用して、クエリ・プランの最適化が促進され得る。プランはコストに基づいて、受信したクエリを実行するための最もコストの低いクエリ・プランを決定することを目的として最適化され得る。
統計は、データベースのテーブル内のデータおよびインデックスの分布、データの共通性などに基づき得る。統計は、単一の列または複数の列に基づいて生成され得る。統計には、列の値の分布を表すヒストグラム、および場合によっては列間の値の相関が含まれ得る。今日のほとんどのリレーショナル・データベースは、クエリを処理するための最速の実行プランを計算するために、この統計情報に大きく依存している。従来のデータベース製品は、この特定のデータに依存したクエリ追跡およびクエリ分析のための何らかの機能を実装している。このため、オプティマイザが選ぶプランの質は、収集された統計データの正確さに依存する。クエリによってデータベースの状態が変わるので、最初に収集された統計データは時間の経過と共に逸脱していく。結果として、選ばれるプランの質が低下する。
選ばれるプランの質を高く保つためには、統計データを定期的に更新する必要がある。これらの更新はコストに関連するので、データベース・システムは、たとえば、統計を収集するテーブルを選択し、選択したテーブルのデータをサンプリングし、収集した情報をテーブルのサイズに基づいて外挿(extrapolate)し得る。そして、このデータにより、オプティマイザはクエリ結果の行数を推定または予測することが可能になる。転じて、これにより、オプティマイザは効率的なクエリ・プランを生成することが可能になる。たとえば、オプティマイザはクエリ・プランのより効果的なインデックス・スキャン・オペレータを選択し得る。
本発明の原理は、統計の収集をオフロードするための技術を提供する。一態様では、例示的な方法は、ソース・データベース・システムのメタデータ・カタログ内のテーブル統計を観察することと、ターゲット・データベース・システムを利用する統計生成コストを推定し、ソース・データベース・システムを利用するソース統計生成コストを推定することと、ターゲット・データベース・システムを利用する統計生成コストと、ソース・データベース・システムを利用するソース統計生成コストとを比較することと、ターゲット・データベース・システムを利用する統計生成コストがソース・データベース・システムを利用するソース統計生成コストと事前定義された関係を有することに応答して、ターゲット・データベース・システムによる統計生成クエリをソース・データベース・システムによってトリガすることと、ソース・データベース・システムによるトリガに応答して、ターゲット・データベース・システムによって統計生成クエリを実行することと、ソース・データベース・システムによるトリガと、統計生成クエリの実行とに応答して、生成された統計をターゲット・データベース・システムからソース・データベース・システムに送信することと、生成された統計に基づいてメタデータ・カタログ内のテーブル統計を更新することと、クエリ・プランを最適化するために更新されたテーブル統計を使用することと、の動作を含む。
一態様では、非一過性コンピュータ可読媒体は、コンピュータによって実行された場合に、コンピュータに方法を実行させるコンピュータ実行可能命令を含み、方法は、ソース・データベース・システムのメタデータ・カタログ内のテーブル統計を観察することと、ターゲット・データベース・システムを利用する統計生成コストを推定し、ソース・データベース・システムを利用するソース統計生成コストを推定することと、ターゲット・データベース・システムを利用する統計生成コストと、ソース・データベース・システムを利用するソース統計生成コストとを比較することと、ターゲット・データベース・システムを利用する統計生成コストがソース・データベース・システムを利用するソース統計生成コストと事前定義された関係を有することに応答して、ターゲット・データベース・システムによる統計生成クエリをソース・データベース・システムによってトリガすることと、ソース・データベース・システムによるトリガに応答して、ターゲット・データベース・システムによって統計生成クエリを実行することと、ソース・データベース・システムによるトリガと、統計生成クエリの実行とに応答して、生成された統計をターゲット・データベース・システムからソース・データベース・システムに送信することと、生成された統計に基づいてメタデータ・カタログ内のテーブル統計を更新することと、クエリ・プランを最適化するために更新されたテーブル統計を使用することと、を含む。
一態様では、システムは、第1のメモリに結合された少なくとも1つの第1のプロセッサを備えるソース・データベース・システムと、第2のメモリに結合された少なくとも1つの第2のプロセッサを備えるターゲット・データベース・システムと、を備え、システムは動作を実行するように動作可能であり、動作は、ソース・データベース・システムのメタデータ・カタログ内のテーブル統計を観察することと、ターゲット・データベース・システムを利用する統計生成コストを推定し、ソース・データベース・システムを利用するソース統計生成コストを推定することと、ターゲット・データベース・システムを利用する統計生成コストと、ソース・データベース・システムを利用するソース統計生成コストとを比較することと、ターゲット・データベース・システムを利用する統計生成コストがソース・データベース・システムを利用するソース統計生成コストと事前定義された関係を有することに応答して、ターゲット・データベース・システムによる統計生成クエリをソース・データベース・システムによってトリガすることと、ソース・データベース・システムによるトリガに応答して、ターゲット・データベース・システムによって統計生成クエリを実行することと、ソース・データベース・システムによるトリガと、統計生成クエリの実行とに応答して、生成された統計をターゲット・データベース・システムからソース・データベース・システムに送信することと、生成された統計に基づいてメタデータ・カタログ内のテーブル統計を更新することと、クエリ・プランを最適化するために更新されたテーブル統計を使用することと、を含む。
本明細書で使用する場合、アクションを「促進すること(facilitating)」には、アクションを行うこと、アクションを容易にすること、アクションを実施するのを助けること、またはアクションを行わせることが含まれる。したがって、限定ではなく例として、あるプロセッサで実行される命令は、アクションを行わせるかまたはアクションが行われるのを支援するための適切なデータまたはコマンドを送信することによって、リモート・プロセッサで実行される命令によって実施されるアクションを促進し得る。誤解を避けるために、行為者がアクションを行う以外の方法でアクションを促進する場合でも、アクションは何らかのエンティティまたはエンティティの組み合わせによって実行される。
本発明またはその要素の1つまたは複数の実施形態は、示した方法ステップを実行するためのコンピュータ使用可能プログラム・コードを有するコンピュータ可読記憶媒体を含むコンピュータ・プログラム製品の形態で実装することができる。さらに、本発明またはその要素の1つまたは複数の実施形態は、メモリと、メモリに結合され、例示的な方法ステップを実行するように動作する少なくとも1つのプロセッサとを含むシステム(または装置)の形態で実装することができる。またさらに、他の態様では、本発明またはその要素の1つまたは複数の実施形態は、本明細書に記載の方法ステップのうちの1つまたは複数を実施するための手段の形態で実装することができ、この手段は、(i)ハードウェア・モジュール(複数可)、(ii)コンピュータ可読記憶媒体(もしくは複数のそのような媒体)に記憶され、ハードウェア・プロセッサ上に実装されるソフトウェア・モジュール(複数可)、または(iii)(i)および(ii)の組み合わせ、を含むことができ、(i)~(iii)のいずれもが本明細書に記載の特定の技術を実装する。
本発明の技術は、非常に有益な技術的効果を提供することができる。たとえば、1つまたは複数の実施形態は以下のうちの1つまたは複数を提供する。
大規模なデータ・セットにわたる統計クエリを処理するために最適化されたアクセラレータ・データベース・システム。
アクセラレータ(ターゲット)データベース・システムによるソース・データベース・システムのための効率的なアクセラレータベースのデータベース統計の生成。
ソース・データベース・システムの中央処理装置(CPU:central processing unit)の消費量の削減。
実際のクエリが実行される前にクエリ固有の実行時統計を生成できること(特定のクエリによって使用されるテーブルが既知であるので、統計の関連付けを個別に調整することができる)。
統計を収集するために追加または専用のシステムが不要であること。
大規模なデータ・セットにわたる統計クエリを処理するために最適化されたアクセラレータ・データベース・システム。
アクセラレータ(ターゲット)データベース・システムによるソース・データベース・システムのための効率的なアクセラレータベースのデータベース統計の生成。
ソース・データベース・システムの中央処理装置(CPU:central processing unit)の消費量の削減。
実際のクエリが実行される前にクエリ固有の実行時統計を生成できること(特定のクエリによって使用されるテーブルが既知であるので、統計の関連付けを個別に調整することができる)。
統計を収集するために追加または専用のシステムが不要であること。
本発明のこれらおよび他の特徴および利点は、添付の図面に関連して読まれるべき、その例示的な実施形態の以下の詳細な説明から明らかになろう。
本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に列挙した教示の実装形態はクラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在知られているまたは今後開発される他の任意のタイプのコンピューティング環境と共に実装することが可能である。
クラウド・コンピューティングは、最小限の管理労力またはサービスのプロバイダとのやりとりによって迅速にプロビジョニングおよび解放することができる、設定可能なコンピューティング・リソース(たとえば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特徴と、少なくとも3つのサービス・モデルと、少なくとも4つのデプロイメント・モデルとを含み得る。
特徴は以下の通りである。
オンデマンド・セルフ・サービス:クラウド・コンシューマは、サービスのプロバイダとの人的な対話を必要とせずに、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング能力を一方的にプロビジョニングすることができる。
ブロード・ネットワーク・アクセス:能力はネットワークを介して利用することができ、異種のシンまたはシック・クライアント・プラットフォーム(たとえば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的なメカニズムを介してアクセスされる。
リソース・プーリング:プロバイダのコンピューティング・リソースをプールして、様々な物理リソースおよび仮想リソースが需要に応じて動的に割り当ておよび再割り当てされるマルチ・テナント・モデルを使用して複数のコンシューマにサービス提供する。一般にコンシューマは、提供されるリソースの正確な位置に対して何もできず、知っているわけでもないが、より高い抽象化レベル(たとえば、国、州、またはデータセンターなど)では位置を特定可能であり得るという点で位置非依存の感覚がある。
迅速な弾力性:能力を迅速かつ弾力的に、場合によっては自動的にプロビジョニングして素早くスケール・アウトし、迅速に解放して素早くスケール・インすることができる。コンシューマにとって、プロビジョニング可能な能力は無制限であるように見えることが多く、任意の時間に任意の数量で購入することができる。
測定されるサービス:クラウド・システムは、サービスのタイプ(たとえば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に適したある抽象化レベルでの計量機能を活用して、リソースの使用を自動的に制御し、最適化する。リソース使用量を監視、管理、および報告して、利用されるサービスのプロバイダおよびコンシューマの両方に透明性を提供することができる。
サービス・モデルは以下の通りである。
ソフトウェア・アズ・ア・サービス(SaaS:Software as a Service):コンシューマに提供される能力は、クラウド・インフラストラクチャ上で動作するプロバイダのアプリケーションを使用することである。アプリケーションは、Webブラウザ(たとえば、Webベースの電子メール)などのシン・クライアント・インターフェースを介して様々なクライアント・デバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定を可能性のある例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、さらには個々のアプリケーション機能を含む、基盤となるクラウド・インフラストラクチャを管理も制御もしない。
プラットフォーム・アズ・ア・サービス(PaaS:Platform as a Service):コンシューマに提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、コンシューマが作成または取得したアプリケーションをクラウド・インフラストラクチャ上にデプロイすることである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基盤となるクラウド・インフラストラクチャを管理も制御もしないが、デプロイされたアプリケーションおよび場合によってはアプリケーション・ホスティング環境構成を制御する。
インフラストラクチャ・アズ・ア・サービス(IaaS:Infrastructure as a Service):コンシューマに提供される能力は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをコンシューマがデプロイして動作させることが可能な、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることである。コンシューマは、基盤となるクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションを制御し、場合によっては選択したネットワーキング・コンポーネント(たとえば、ホスト・ファイアウォール)を限定的に制御する。
デプロイメント・モデルは以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは組織専用に運用される。これは組織または第三者によって管理され得、構内または構外に存在し得る。
コミュニティ・クラウド:クラウド・インフラストラクチャはいくつかの組織によって共有され、共通の懸念(たとえば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項など)を有する特定のコミュニティをサポートする。これは組織または第三者によって管理され得、構内または構外に存在し得る。
パブリック・クラウド:クラウド・インフラストラクチャは、一般大衆または大規模な業界団体に対して利用可能にされ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データおよびアプリケーションの移植性を可能にする標準化技術または独自技術(たとえば、クラウド間の負荷分散のためのクラウド・バースティング)によって結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)を合成したものである。
クラウド・コンピューティング環境は、ステートレス性、低結合性、モジュール性、および意味論的相互運用性に重点を置いたサービス指向型である。クラウド・コンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
ここで図1を参照すると、例示的なクラウド・コンピューティング環境50が示されている。図示のように、クラウド・コンピューティング環境50は1つまたは複数のクラウド・コンピューティング・ノード10を含み、これらを使用して、たとえば、パーソナル・デジタル・アシスタント(PDA:personal digital assistant)もしくは携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはそれらの組み合わせなどの、クラウド・コンシューマによって使用されるローカル・コンピューティング・デバイスが通信し得る。ノード10は相互に通信し得る。これらは、たとえば、上述のプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはそれらの組み合わせなどの1つまたは複数のネットワークにおいて、物理的または仮想的にグループ化され得る(図示せず)。これにより、クラウド・コンピューティング環境50は、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを維持する必要がない、インフラストラクチャ・アズ・ア・サービス、プラットフォーム・アズ・ア・サービス、またはソフトウェア・アズ・ア・サービス、あるいはそれらの組み合わせを提供することが可能になる。図1に示したコンピューティング・デバイス54A~Nのタイプは例示的なものにすぎないことを意図しており、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意のタイプのネットワークまたはネットワーク・アドレス指定可能接続(たとえば、Webブラウザを使用)あるいはその両方を介して任意のタイプのコンピュータ化デバイスと通信できることを理解されたい。
ここで図2を参照すると、クラウド・コンピューティング環境50(図1)によって提供される機能的抽象化レイヤのセットが示されている。図2に示したコンポーネント、レイヤ、および機能は例示的なものにすぎないことを意図しており、本発明の実施形態はこれらに限定されないことを事前に理解されたい。図示のように、以下のレイヤおよび対応する機能が提供される。
ハードウェアおよびソフトウェア・レイヤ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:Service Level Agreement)の計画および履行85は、SLAに従って将来要求されると予想されるクラウド・コンピューティング・リソースの事前手配および調達を提供する。
ワークロード・レイヤ90は、クラウド・コンピューティング環境が利用され得る機能性の例を提供する。このレイヤから提供され得るワークロードおよび機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育配信93、データ分析処理94、取引処理95、およびデータベース・マネージャ96、を含む。本発明の実施形態は、クラウド環境で(たとえば、レイヤ60のデータベース・ソフトウェア68要素、もしくはレイヤ90のデータベース・マネージャ96、またはその両方で)、非クラウド環境で、あるいはクラウドの部分と非クラウド(ローカルなど)方式の部分とを有するハイブリッド方式で実装できることが強調されるべきである。
概して、統計の生成および収集をオフロードするための装置、システム、および方法を開示しており、これらは、たとえば、データベース統計を生成および利用するのに有用である。生成される統計データは、たとえば、アクセラレータ・データベース・システムにオフロードされ、アクセラレータ・データベース・システムは、データベース・テーブルのカラムナ(columnar)・レイアウトを使用すること、データをメモリ内にキャッシュすること、データ圧縮技術、並列処理、特別なインデックス付け技術などを利用することにより、統計のようなクエリ(statistics-like queries)向けに最適化されている。1つの例示的な実施形態では、アクセラレータ・データベース・システム(本明細書ではターゲット・データベース・システムとも呼ぶ)は、1つまたは複数のデータベース・システム(たとえば、Db2(R)データベース・システム)(International Business Machines Corporation、Armonk、NY、USAの登録商標)の進行中のトランザクションのスナップショットをキャプチャすることによって、本番データベース・システム(本明細書ではソース・データベース・システムとも呼ぶ)の統計ストアをインクリメンタルに維持および更新する。
特定のテーブルの統計データが古くなっているか否かの信頼できる指標は、テーブルで実行された挿入、更新、および削除ステートメントの数である。これは、テーブルごとに対応するクエリをカウントすることによって決定することができる。1つの例示的な実施形態では、カーディナリティ計算を迅速に行うためにサンプリングが使用される。(データベースのコンテキストでは、カーディナリティとは、列に含まれるデータ値の一意性を指す。カーディナリティが高いことは、列が完全に一意の値を多く含んでいることを意味する。カーディナリティが低いことは、列がそのデータ範囲内にたくさんの「繰り返し」を含んでいることを意味する。)1つの例示的な実施形態では、より大きいサブプランがターゲット・データベース・システムで実行され、ターゲット・データベース・システムでの実行中に収集される実行時カーディナリティが使用される(たとえば、学習オプティマイザ(LEO:Learning Optimizer)などのツールがそのような統計を収集し、これについては、Stillger,Michael et al.“LEO-DB2’s LEarning Optimizer.”VLDB(2001)を参照されたい)。サブプランの実行に時間がかかりすぎる場合は、正確なカーディナリティを待つ代わりに、閾値処理を適用して局所的な推定値を選ぶことができる。
統計は、統計が最新のデータを反映するようにインクリメンタルに生成され得、または統計の更新が必要な場合に生成され得る。1つの例示的な実施形態では、テーブルに適用された変更の量が追跡され、テーブルのより大きい割合(たとえば15%であるが、これは非限定的な例であり、パーセンテージは設定可能にできる)が変更されると、統計収集タスクがトリガされる。1つの例示的な実施形態では、定期的な間隔でテーブルが変化したか否かをチェックするため、テーブルへの変更の量をチェックするためなどのバックグラウンド・タスクがスケジューリングされる。
1つまたは複数の実施形態では、統計データの変更情報がトランザクションから抽出され、ローカルの統計ストアを更新するために使用される。統計ストアは本番データベース・システムによってアクセス可能であるので、クエリ・プランの選択をサポートする。
1つの例示的な実施形態では、アクセラレータ・データベース・システムは、本番データベース・システムのために統計の生成を実行する。たとえば、ソース・データベース・システムによって統計の生成を実行するコストがアクセラレータ・データベース・システムよりも高い場合、統計の生成をアクセラレータ・データベース・システムにオフロードすることができる。アクセラレータ・データベース・システムによって生成された統計は、ソース・データベース・システム、アクセラレータ・データベース・システム、またはその両方によって使用される。
図3は、例示的な実施形態による例示的なデータベース・システム300のブロック図である。ソース・データベース・システム304は、アプリケーションおよび他のエンティティから受信したデータベース・クエリ352(本明細書ではクエリ352と呼ぶ)を処理する。クエリ・スケジューラ312は、ローカルで(ソース・データベース・システム304内で)またはリモートで(以下でより詳しく説明するように、ターゲット・データベース・システム308内で)実行されるクエリ・プランを生成する。1つの例示的な実施形態では、クエリ・スケジューラ312内のオプティマイザは、受信したクエリを実行するための最もコストの低いクエリ・プランを決定することなどを目的としてクエリ・プランを最適化する。たとえば、コストベースのオプティマイザは、データベース統計を利用してクエリ・プランの最適化を促進し得る。統計は、ソース・データベース・システム304のテーブル316内のデータの分布、データの共通性などに関連し得る。
クエリ・プランは、生成されると、ソース・データベース・システム304またはターゲット・データベース・システム308のいずれかによって実行される。ソース・データベース320内のテーブル316のうちの1つまたは複数に対してローカルのクエリ実行が行われる。ターゲット・データベース340内のテーブル336のうちの1つまたは複数に対してアクセラレータベースのクエリ実行が行われる。データ同期システム348は、ターゲット・データベース340内のテーブル336をソース・データベース320内のテーブル316と同期させ、これはクエリ・プランの選択を改善するために統計データを収集するための前提条件である。たとえば、データ同期システム348は、ソース・データベース320内のテーブル316のデータを完全にまたは部分的に転送してターゲット・データベース340を更新する必要があることを示すトリガをソース・データベース320から受信する。1つの例示的な実施形態では、クエリ・スケジューラ312、テーブル統計ジェネレータ332、データ同期システム348、および統計オフロード・ユニット356は、サーバなどのコンピュータ・システムによって実行されるプログラム・モジュールなどのコンピュータ・システム実行可能命令で実装される。たとえば、クエリ・スケジューラ312は、受信したクエリを実行するための最もコストの低いクエリ・プランを決定することなどを目的としてクエリ・プランを最適化するオプティマイザ(たとえば、コストベース)を実装するコードを含む。ジェネレータ332は、次の段落で論じる機能性を実装するコードを含む。システム348は、たとえば、先ほど述べたトリガに応答するコードを含む。統計オフロード・ユニット356は、統計をリフレッシュする必要があるか否かを検出する責任を負う。1つの例示的な実施形態では、統計オフロード・ユニット356は実際の収集の実行を、たとえば、ターゲット(アクセラレータ)データベース・システム308にオフロードするか、またはソース・データベース・システム304でローカルに収集することによって抽象化する。すなわち、ソース・データベース・システム304内の統計をリフレッシュするための様々な通信プロトコルを実装する。
クエリが実行されると、メタデータ・カタログ324のソース統計テーブル328内の統計が作成または更新される。次いで、統計は、クエリ・プランの最適化に使用するためにクエリ・スケジューラ312に提供される。1つの例示的な実施形態では、統計オフロード・ユニット356は、統計の生成に関連するタスクをターゲット・データベース・システム308内のテーブル統計ジェネレータ332にオフロードする。テーブル統計ジェネレータ332には、たとえば、考慮すべきテーブルのリストと、生成すべき統計のタイプとが送信される。1つの例示的な実施形態では、これはテーブル統計ジェネレータ332によって統計クエリに変換される。あるいは、統計オフロード・ユニット356は、テーブル統計ジェネレータ332のクエリ生成コンポーネントを自身で実装し、単に統計クエリを送信してソース・テーブル統計328を更新し得る。
1つの例示的な実施形態では、ターゲット・データベース・システム308上で統計を生成するコストがソース・データベース・システム304上で統計を生成するよりも低い場合にのみ、統計の生成がテーブル統計ジェネレータ332にオフロードされる。1つの例示的な実施形態では、統計の生成は常にテーブル統計ジェネレータ332にオフロードされ、他の実施形態は異なるアプローチをとることができる。1つの例示的な実施形態では、統計の生成をいつオフロードすべきかを決定するのと同じメカニズムが、アプリケーション・クエリ実行に使用される。統計オフロード・ユニット356は、統計クエリを自身で生成する場合、(ユーザ・クエリの場合のように)単にクエリ・スケジューラ312を介してクエリをスケジューリングすることができる。クエリ・スケジューラ312は、クエリ・ステートメントを分析し、それらを実行するのに最適なシステム(ソース・データベース・システム304またはターゲット・データベース・システム308)を判断する。1つの例示的な実施形態では、統計オフロード・ユニット356は、統計クエリ結果を受信し、統計がどこで収集されたかに関係なく統計を更新する通常のデータベース・クライアントのように機能する。1つの例示的な実施形態では、この特定の内部でのクエリ実行のユースケースのさらなる詳細が考慮され、たとえば、統計クエリに関する特別なコスト関数が提供される(これは異なる最適化の目標を有し得、たとえば、ソース・データベース・システム304での実行時間の最小化/リソース利用の最小化などである)。いずれの場合も、オフロード戦略は、タスクに必要なリソースのコストの観点からの、対応するタスクをオフロードする「コストの高さ(expensiveness)」を示すコスト関数を用いてモデル化され得る。
ターゲット・データベース・システム308内で、クエリが実行されると、ターゲット・テーブル統計344内の統計が作成または更新される。1つの例示的な実施形態では、ターゲット・データベース・システム308は、メタデータ・カタログ324がソース・データベース・システム304に対して実行するのと同様の機能性をターゲット・データベース・システム308に対して実行するメタデータ・カタログ(図示せず)を含む。また、統計オフロード・ユニット356によって生成されたトリガに応答して、ターゲット・テーブル統計344において統計が作成または更新され、あるいはその両方が行われる。ソース・データベース・システム304でテーブルへの特定の量の変更が検出されたときなどに、トリガが定期的に生成され得る。1つの例示的な実施形態では、ターゲット・データベース・システム308が内部の要求に応答して統計を生成または更新したときなどに、ターゲット・データベース・システム308は統計をソース・データベース・システム304に定期的にプッシュする。いずれの場合も、ターゲット・データベース・システム308で生成された統計は、クエリ・プランを最適化する際にクエリ・スケジューラ312によって使用するために、ソース統計テーブル328に転送される。
図4は、例示的な実施形態による、データベース統計を生成および利用するための例示的な方法400のフローチャートである。1つの例示的な実施形態では、ソース・データベース・システム304のメタデータ・カタログ324内のテーブル統計が観察される(動作404)。統計が欠落しているか否か、または大きなデータ変更があるか否かを判定するためのチェックが実行される(判断ブロック408)。たとえば、カーディナリティ情報など、テーブルに関してメタデータ・カタログ324に何も存在しない場合、統計が生成されるべきである。「顕著な」閾値(たとえば、テーブルの15%への変更)は、統計の生成によって発生する追加コストを最小限に抑える方法である。当然ながら、これは各テーブル変更後に(最良のケースではインクリメンタルに)行われ得るが、(より正確なコスト推定による)より良好なクエリ・プランによって節約されるよりも多くのリソースを消費し得る。統計が欠落しておらず、大きなデータ変更がない場合(判断ブロック408でNOの分岐と判定)、既存の統計がソース・データベース・システム304によって使用され(動作412)、方法400は終了する。
統計が欠落しているか、または大きなデータ変更があるか、あるいはその両方である場合(判断ブロック408でYESの分岐と判定)、ソース・データベース・システム304およびターゲット・データベース・システム308によって統計を生成するコストが個々に推定される(動作416)。
ターゲット・データベース・システム308上で統計を生成するコストがソース・データベース・システム304上で統計を生成するコスト未満であるか否かを判定するためのチェックが実行される(判断ブロック420)。ターゲット・データベース・システム308のコストがソース・データベース・システム304のコスト以上である場合(判断ブロック420でNOの分岐と判定)、ソース・データベース・システム304で統計が生成され(動作424)、方法400は動作440に進む。
ターゲット・データベース・システム308のコストがソース・データベース・システム304のコスト未満である場合(判断ブロック420でYESの分岐と判定)、ターゲット・データベース・システム308を介した統計の生成がトリガされ(動作428)、ターゲット・データベース・システム308で統計生成クエリが実行され(動作432)、生成された統計がターゲット・データベース・システム308からソース・データベース・システム304のメタデータ・カタログ324に送信される(動作436)。統計は以下を行うためにターゲット・データベース・システム308上で生成される。1)ソース・データベース・システム304上で実行されるクエリにとって重要な特別な統計およびヒストグラムを収集するため、ならびに/あるいは2)頻繁に実行されるクエリを最適化するために、および/または特定の複雑なクエリの準備をするために、特定の種類のクエリを対象とした列グループ統計などの特定の統計を収集するため。統計はまた、ターゲット・データベース・システム308によって使用するために生成され得る。
動作440に戻ると、統計が生成された後、メタデータ・カタログ324内でソース統計テーブル328が更新され(動作440)、更新された統計を使用して、たとえば、クエリ・プランが最適化される(動作444)。たとえば、Db2(R)ソフトウェアでクエリ実行を開始する前に、ターゲット・データベース・システム308で、カーディナリティに焦点を合わせて、元のクエリのサブセットを実行することによって、フィルタ属性に最も適合するプランが選択され得る。1つの例示的な実施形態では、クエリごとに動的構造化クエリ言語(SQL:structured query language)が用いられる。SQLが標準的であるリレーショナル・データベース・ドメインにおける1つまたは複数の実施形態を利用することができる。しかしながら、XMLデータ用のXQueryまたはグラフ・データベース用のグラフ・クエリなど、異なるクエリ言語を使用する他のデータベース・システムが存在し、本明細書に開示した技術はこれらのデータベースにも適用可能である。
これまでの議論を踏まえると、一般的に、本発明の一態様による例示的な方法は、ソース・データベース・システム304のメタデータ・カタログ324内のテーブル統計328を観察すること(動作404)と、ターゲット・データベース・システム308を利用する統計生成コストを推定し、ソース・データベース・システム304を利用するソース統計生成コストを推定すること(動作416)と、ターゲット・データベース・システム308を利用する統計生成コストと、ソース・データベース・システム304を利用するソース統計生成コストとを比較すること(判断ブロック420)と、ターゲット・データベース・システム308を利用する統計生成コストがソース・データベース・システム304を利用するソース統計生成コストと事前定義された関係を有することに応答して、ターゲット・データベース・システム308による統計生成クエリをソース・データベース・システム304によってトリガすること(動作428)と、ソース・データベース・システム304によるトリガに応答して、ターゲット・データベース・システム308によって統計生成クエリを実行すること(動作432)と、ソース・データベース・システム304によるトリガと、統計生成クエリの実行とに応答して、生成された統計をターゲット・データベース・システム308からソース・データベース・システム304に送信すること(動作436)と、生成された統計に基づいてメタデータ・カタログ324内のテーブル統計328を更新すること(動作440)と、クエリ・プランを最適化するために更新されたテーブル統計328を使用すること(動作444)と、の動作を含む、ことが理解されよう。
1つの例示的な実施形態では、観察、推定、および比較の動作が繰り返され、繰り返されたステップに関してターゲット・データベース・システム308を利用する統計生成コストがソース・データベース・システム304を利用するソース統計生成コスト以上であることに応答して、ソース・データベース・システム304によって統計生成クエリが実行される(動作424)。1つの例示的な実施形態では、テーブル統計328を観察する動作は、クエリ実行、ソース・データベース・システム304のテーブルで処理される入来する変更の監視、および自動化されたバックグラウンド・タスクのうちの1つまたは複数を実行することをさらに含む。1つの例示的な実施形態では、統計が欠落しておらず、大きなデータ変更がないと判定したことに応答して、ソース・データベース・システム304上の既存の統計が使用される(動作412)。1つの例示的な実施形態では、統計がメタデータ・カタログ324から欠落しているか否かを判定するためのチェックが実行され(判断ブロック408)、統計の欠落の判定に応答して、推定、比較、トリガ、統計生成クエリの実行、送信、および更新の動作が実行される。
1つの例示的な実施形態では、ソース・データベース・システム304のテーブルに大きなデータ変更があるか否かを判定するためのチェックが実行され(判断ブロック408)、大きなデータ変更の判定に応答して、推定、比較、トリガ、統計生成クエリの実行、送信、および更新の動作が実行される。1つの例示的な実施形態では、事前定義された関係は、ターゲット・データベース・システム308を利用する統計生成コストがソース・データベース・システム304を利用するソース統計生成コスト未満であることである。1つの例示的な実施形態では、ターゲット・データベース・システム308は統計のようなクエリ向けに最適化されている。
一態様では、非一過性コンピュータ可読媒体は、コンピュータによって実行された場合に、コンピュータに方法を実行させるコンピュータ実行可能命令を含み、方法は、ソース・データベース・システム304のメタデータ・カタログ324内のテーブル統計328を観察すること(動作404)と、ターゲット・データベース・システム308を利用する統計生成コストを推定し、ソース・データベース・システム304を利用するソース統計生成コストを推定すること(動作416)と、ターゲット・データベース・システム308を利用する統計生成コストと、ソース・データベース・システム304を利用するソース統計生成コストとを比較すること(判断ブロック420)と、ターゲット・データベース・システム308を利用する統計生成コストがソース・データベース・システム304を利用するソース統計生成コストと事前定義された関係を有することに応答して、ターゲット・データベース・システム308による統計生成クエリをソース・データベース・システム304によってトリガすること(動作428)と、ソース・データベース・システム304によるトリガに応答して、ターゲット・データベース・システム308によって統計生成クエリを実行すること(動作432)と、ソース・データベース・システム304によるトリガと、統計生成クエリの実行とに応答して、生成された統計をターゲット・データベース・システム308からソース・データベース・システム304に送信すること(動作436)と、生成された統計に基づいてメタデータ・カタログ324内のテーブル統計328を更新すること(動作440)と、クエリ・プランを最適化するために更新されたテーブル統計328を使用すること(動作444)と、を含む。
一態様では、システムは、第1のメモリに結合された少なくとも1つの第1のプロセッサを備えるソース・データベース・システム304と、第2のメモリに結合された少なくとも1つの第2のプロセッサを備えるターゲット・データベース・システム308と、を備え、システムは動作を実行するように動作可能であり、動作は、ソース・データベース・システム304のメタデータ・カタログ324内のテーブル統計328を観察すること(動作404)と、ターゲット・データベース・システム308を利用する統計生成コストを推定し、ソース・データベース・システム304を利用するソース統計生成コストを推定すること(動作416)と、ターゲット・データベース・システム308を利用する統計生成コストと、ソース・データベース・システム304を利用するソース統計生成コストとを比較すること(判断ブロック420)と、ターゲット・データベース・システム308を利用する統計生成コストがソース・データベース・システム304を利用するソース統計生成コストと事前定義された関係を有することに応答して、ターゲット・データベース・システム308による統計生成クエリをソース・データベース・システム304によってトリガすること(動作428)と、ソース・データベース・システム304によるトリガに応答して、ターゲット・データベース・システム308によって統計生成クエリを実行すること(動作432)と、ソース・データベース・システム304によるトリガと、統計生成クエリの実行とに応答して、生成された統計をターゲット・データベース・システム308からソース・データベース・システム304に送信すること(動作436)と、生成された統計に基づいてメタデータ・カタログ324内のテーブル統計328を更新すること(動作440)と、クエリ・プランを最適化するために更新されたテーブル統計328を使用すること(動作444)と、を含む。
本発明またはその要素の1つまたは複数の実施形態は、メモリと、メモリに結合され、例示的な方法ステップを実行するように動作する少なくとも1つのプロセッサとを含む装置の形態で実装することができる。図5は、本発明の一実施形態による、本発明の1つまたは複数の態様または要素あるいはその両方を実装する際に有用であり、また、クラウド・コンピューティング・ノードを表し得るコンピュータ・システムを示している。ここで図5を参照すると、クラウド・コンピューティング・ノード10は、適切なクラウド・コンピューティング・ノードの一例に過ぎず、本明細書に記載の本発明の実施形態の使用または機能性の範囲に関するいかなる制限を示唆することも意図するものではない。いずれにしても、クラウド・コンピューティング・ノード10は、上記の機能性のいずれをも実装するまたは実行するあるいはその両方を行うことが可能である。
クラウド・コンピューティング・ノード10には、コンピュータ・システム/サーバ12が存在し、これは、他の多くの汎用または専用のコンピューティング・システム環境または構成で動作可能である。コンピュータ・システム/サーバ12での使用に適し得るよく知られているコンピューティング・システム、環境、または構成、あるいはそれらの組み合わせの例には、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドもしくはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベースのシステム、セット・トップ・ボックス、プログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムもしくはデバイスのいずれか含む分散クラウド・コンピューティング環境などが含まれるが、これらに限定されない。
コンピュータ・システム/サーバ12は、コンピュータ・システムによって実行されるプログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的なコンテキストで説明し得る。一般に、プログラム・モジュールには、特定のタスクを実行するかまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などが含まれ得る。コンピュータ・システム/サーバ12は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散クラウド・コンピューティング環境において実施され得る。分散クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカルおよびリモート両方のコンピュータ・システム記憶媒体に配置され得る。
図5に示すように、クラウド・コンピューティング・ノード10内のコンピュータ・システム/サーバ12は、汎用コンピューティング・デバイスの形態で示している。コンピュータ・システム/サーバ12のコンポーネントは、1つまたは複数のプロセッサまたは処理ユニット16と、システム・メモリ28と、システム・メモリ28を含む様々なシステム・コンポーネントをプロセッサ16に結合するバス18とを含み得るが、これらに限定されない。
バス18は、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィックス・ポート、および様々なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含む、いくつかのタイプのバス構造のいずれかの1つまたは複数を表す。限定ではなく例として、そのようなアーキテクチャには、業界標準アーキテクチャ(ISA:Industry Standard Architecture)バス、マイクロ・チャネル・アーキテクチャ(MCA:Micro Channel Architecture)バス、拡張ISA(EISA:Enhanced ISA)バス、ビデオ・エレクトロニクス規格協会(VESA:Video Electronics Standards Association)ローカル・バス、および周辺機器相互接続(PCI:Peripheral Component Interconnects)バスが含まれる。
コンピュータ・システム/サーバ12は、典型的には、様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム/サーバ12によってアクセス可能な任意の利用可能な媒体であり得、揮発性および不揮発性の媒体、取り外し可能および取り外し不可能な媒体の両方を含む。
システム・メモリ28は、ランダム・アクセス・メモリ(RAM:random access memory)30またはキャッシュ・メモリ32あるいはその両方などの、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ12は、他の取り外し可能/取り外し不可能な揮発性/不揮発性のコンピュータ・システム記憶媒体をさらに含み得る。単なる例として、取り外し不可能な不揮発性の磁気媒体(図示しない、典型的には「ハード・ドライブ」と呼ばれるもの)に読み書きするためのストレージ・システム34を設けることができる。図示していないが、取り外し可能な不揮発性の磁気ディスク(たとえば、「フレキシブル・ディスク」)に読み書きするための磁気ディスク・ドライブと、CD-ROM、DVD-ROM、または他の光学媒体などの取り外し可能な不揮発性の光学ディスクに読み書きするための光学ディスク・ドライブと、を設けることができる。そのような例では、それぞれを、1つまたは複数のデータ・メディア・インターフェースによってバス18に接続することができる。以下でさらに図示および説明するように、メモリ28は、本発明の実施形態の機能を実施するように構成されるプログラム・モジュールのセット(たとえば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含み得る。
プログラム・モジュール42のセット(少なくとも1つ)を有するプログラム/ユーティリティ40は、限定ではなく例として、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同様に、メモリ28に記憶され得る。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データまたはそれらの何らかの組み合わせのそれぞれは、ネットワーキング環境の一実装形態を含み得る。プログラム・モジュール42は、一般に、本明細書に記載の本発明の実施形態の機能または方法論あるいはその両方を実施する。
コンピュータ・システム/サーバ12はまた、キーボード、ポインティング・デバイス、ディスプレイ24などの1つまたは複数の外部デバイス14、ユーザがコンピュータ・システム/サーバ12とやりとりすることを可能にする1つまたは複数のデバイス、またはコンピュータ・システム/サーバ12が1つまたは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(たとえば、ネットワーク・カード、モデムなど)、あるいはそれらの組み合わせと通信し得る。そのような通信は、入力/出力(I/O:Input/Output)インターフェース22を介して行うことができる。またさらに、コンピュータ・システム/サーバ12は、ネットワーク・アダプタ20を介して、ローカル・エリア・ネットワーク(LAN:local area network)、一般的なワイド・エリア・ネットワーク(WAN:wide area network)、またはパブリック・ネットワーク(たとえば、インターネット)、あるいはそれらの組み合わせなどの、1つまたは複数のネットワークと通信することができる。図示のように、ネットワーク・アダプタ20は、バス18を介してコンピュータ・システム/サーバ12の他のコンポーネントと通信する。図示していないが、他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方を、コンピュータ・システム/サーバ12と併用できることを理解されたい。例には、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが含まれるが、これらに限定されない。
このように、1つまたは複数の実施形態は、汎用コンピュータまたはワークステーション上で動作するソフトウェアを利用することができる。図5を参照すると、そのような実装形態は、たとえば、プロセッサ16と、メモリ28と、ディスプレイ24および外部デバイス(複数可)14、たとえば、キーボード、ポインティング・デバイスなどに対する入力/出力インターフェース22とを使用し得る。本明細書で使用する「プロセッサ」という用語は、任意の処理デバイス、たとえば、CPU(中央処理装置)、または他の形態の処理回路、あるいはその両方を含むものなどを含むことを意図している。さらに、「プロセッサ」という用語は、2つ以上の個別のプロセッサを指し得る。「メモリ」という用語は、プロセッサまたはCPUに関連付けられたメモリ、たとえば、RAM(ランダム・アクセス・メモリ)30、ROM(読み取り専用メモリ:read only memory)、固定メモリ・デバイス(ハード・ドライブ34など)、リムーバブル・メモリ・デバイス(ディスケットなど)、フラッシュ・メモリなどを含むことを意図している。また、本明細書で使用する「入力/出力インターフェース」という句は、たとえば、処理ユニットにデータを入力するための1つまたは複数のメカニズム(マウスなど)と、処理ユニットに関連する結果を提供するための1つまたは複数のメカニズム(プリンタなど)とに対するインターフェースを検討することを意図している。プロセッサ16、メモリ28、および入力/出力インターフェース22は、たとえば、データ処理ユニット12の一部としてのバス18を介して相互接続することができる。バス18を介するなどした適切な相互接続はまた、コンピュータ・ネットワークとインターフェースするために提供することができるネットワーク・カードなどのネットワーク・インターフェース20と、適切なメディアとインターフェースするために提供することができるディスケットまたはCD-ROMドライブなどのメディア・インターフェースとに提供することができる。
したがって、本明細書に記載の本発明の方法論を実行するための命令またはコードを含むコンピュータ・ソフトウェアは、関連付けられたメモリ・デバイス(たとえば、ROM、固定またはリムーバブル・メモリ)のうちの1つまたは複数に記憶され、利用される準備ができたときに、部分的または全体的に(RAMなどに)ロードされ、CPUによって実行され得る。そのようなソフトウェアには、ファームウェア、常駐ソフトウェア、マイクロコードなどが含まれ得るが、これらに限定されない。
プログラム・コードを記憶または実行あるいはその両方を行うのに適したデータ処理システムは、システム・バス18を介してメモリ素子28に直接または間接的に結合された少なくとも1つのプロセッサ16を含む。メモリ素子には、プログラム・コードの実際の実行中に利用されるローカル・メモリと、バルク・ストレージと、実行中にバルク・ストレージからコードが取り出される必要がある回数を削減するために少なくとも一部のプログラム・コードの一時的なストレージを提供するキャッシュ・メモリ32と、を含めることができる。
入力/出力またはI/Oデバイス(キーボード、ディスプレイ、ポインティング・デバイスなどを含むがこれらに限定されない)は、直接的に、あるいは介在するI/Oコントローラを介して、システムに結合することができる。
また、ネットワーク・アダプタ20をシステムに結合して、データ処理システムを、介在するプライベートまたはパブリック・ネットワークを介して、他のデータ処理システムもしくはリモート・プリンタまたはストレージ・デバイスに結合可能にし得る。モデム、ケーブル・モデム、およびEthernet(R)カードは、現在利用可能なタイプのネットワーク・アダプタのほんの一部である。
特許請求の範囲を含めて、本明細書で使用する場合、「サーバ」は、サーバ・プログラムを実行する物理的なデータ処理システム(たとえば、図5に示すシステム12)を含む。そのような物理サーバは、ディスプレイおよびキーボードを含む場合と含まない場合とがあることは理解されよう。
1つまたは複数の実施形態は、クラウドまたは仮想マシン環境のコンテキストで少なくとも部分的に実装することができるが、これは例示的であり、非限定的である。図1~図2および付随するテキストに戻って参照されたい。
本明細書に記載の方法のいずれもが、コンピュータ可読記憶媒体上に具現化される別個のソフトウェア・モジュールを含むシステムを提供する追加のステップを含むことができ、モジュールは、たとえば、ブロック図に示し、または本明細書に記載し、あるいはその両方である適切な要素のいずれかまたは全てを含むことができ、限定ではなく例として、記載したモジュール/ブロックまたはサブモジュール/サブブロックあるいはその両方のうちのいずれか1つ、一部または全てを含むことができることに留意されたい。そして、方法ステップは、16などの1つまたは複数のハードウェア・プロセッサ上で実行される上述のシステムの別個のソフトウェア・モジュールまたはサブモジュールあるいはその両方を使用して実施することができる。さらに、コンピュータ・プログラム製品は、別個のソフトウェア・モジュールを有するシステムの提供を含む、本明細書に記載の1つまたは複数の方法ステップを実施するように実装されるよう構成されたコードを有するコンピュータ可読記憶媒体を含むことができる。
一部のケースで使用することができるユーザ・インターフェースの一例は、サーバなどによってユーザのコンピューティング・デバイスのブラウザにサービス提供されるハイパーテキスト・マークアップ言語(HTML:hypertext markup language)コードである。HTMLはユーザのコンピューティング・デバイス上のブラウザによって解析されて、グラフィカル・ユーザ・インターフェース(GUI)が生成される。
例示的なシステムおよび製造品の詳細
本発明は、任意の可能な技術的詳細レベルの統合におけるシステム、方法、またはコンピュータ・プログラム製品、あるいはそれらの組み合わせであり得る。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実施させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のために命令を保持および記憶可能な有形のデバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、限定はしないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであり得る。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラム可能読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル・バーサタイル・ディスク(DVD:digital versatile disk)、メモリー・スティック(R)、フレキシブル・ディスク、命令が記録されたパンチ・カードまたは溝の隆起構造などの機械的にコード化されたデバイス、およびこれらの任意の適切な組み合わせが含まれる。コンピュータ可読記憶媒体は、本明細書で使用する場合、たとえば、電波または他の自由に伝搬する電磁波、導波管もしくは他の伝送媒体を伝搬する電磁波(たとえば、光ファイバ・ケーブルを通過する光パルス)、または有線で伝送される電気信号などの一過性の信号自体であると解釈されるべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいは、たとえば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくは無線ネットワーク、またはそれらの組み合わせなどのネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組み合わせを含み得る。各コンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶する。
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または類似のプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで書かれたソース・コードまたはオブジェクト・コードであり得る。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上かつ部分的にリモート・コンピュータ上で、あるいは完全にリモート・コンピュータまたはサーバ上で実行され得る。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され得、または(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータへの接続がなされ得る。いくつかの実施形態では、たとえば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA:field-programmable gate array)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic array)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用してコンピュータ可読プログラム命令を実行することによって、電子回路を個人向けにし得る。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して本明細書で説明している。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装できることは理解されよう。
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供して、それらの命令がコンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行された場合に、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/行為を実装するための手段が生成されるようなマシンを生成し得る。また、これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはそれらの組み合わせに特定の方法で機能するように指示することが可能なコンピュータ可読記憶媒体に記憶して、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/行為の態様を実装する命令を含む製造品を構成するようにし得る。
また、コンピュータ可読プログラム命令をコンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードして、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させることによって、それらの命令がコンピュータ、他のプログラム可能装置、または他のデバイス上で実行された場合に、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/行為が実装されるようなコンピュータ実装処理を生成し得る。
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示している。これに関して、フローチャートまたはブロック図の各ブロックは、指定された論理的機能(複数可)を実装するための1つまたは複数の実行可能命令を含むモジュール、セグメント、または命令の一部を表し得る。いくつかの代替的実装形態では、ブロックに記載した機能は、図示した順序以外で行われ得る。たとえば、関与する機能性に応じて、連続して示した2つのブロックは、実際には実質的に同時に実行され得、またはそれらのブロックは、場合により逆の順序で実行され得る。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせは、指定された機能もしくは行為を実行するか、または専用ハードウェアおよびコンピュータ命令の組み合わせを実施する専用のハードウェアベースのシステムによって実装できることにも気付くであろう。
本発明の様々な実施形態の説明は例示の目的で提示しているが、網羅的であることも、開示した実施形態に限定されることも意図したものではない。記載した実施形態の範囲および思想から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本明細書で使用する用語は、実施形態の原理、実際の応用、もしくは市場で見られる技術に対する技術的改善を最もよく説明するために、または当業者が本明細書に開示した実施形態を理解できるようにするために選んでいる。
Claims (20)
- ソース・データベース・システムのメタデータ・カタログ内のテーブル統計を観察することと、
ターゲット・データベース・システムを利用する統計生成コストを推定し、ソース・データベース・システムを利用するソース統計生成コストを推定することと、
前記ターゲット・データベース・システムを利用する前記統計生成コストと、前記ソース・データベース・システムを利用する前記ソース統計生成コストとを比較することと、
前記ターゲット・データベース・システムを利用する前記統計生成コストが前記ソース・データベース・システムを利用する前記ソース統計生成コストと事前定義された関係を有することに応答して、前記ターゲット・データベース・システムによる統計生成クエリを前記ソース・データベース・システムによってトリガすることと、
前記ソース・データベース・システムによる前記トリガに応答して、前記ターゲット・データベース・システムによって前記統計生成クエリを実行することと、
前記ソース・データベース・システムによる前記トリガと、前記統計生成クエリの前記実行とに応答して、前記生成された統計を前記ターゲット・データベース・システムから前記ソース・データベース・システムに送信することと、
前記生成された統計に基づいて前記メタデータ・カタログ内の前記テーブル統計を更新することと、
クエリ・プランを最適化するために前記更新されたテーブル統計を使用することと、
を含む、方法。 - 前記観察、推定、および比較の動作を繰り返すことと、
前記繰り返されたステップに関して前記ターゲット・データベース・システムを利用する前記統計生成コストが前記ソース・データベース・システムを利用する前記ソース統計生成コスト以上であることに応答して、前記ソース・データベース・システムによって統計生成クエリを実行することと、
をさらに含む、請求項1に記載の方法。 - 前記テーブル統計を前記観察することは、クエリ実行、前記ソース・データベース・システムのテーブルで処理される入来する変更の監視、および自動化されたバックグラウンド・タスクのうちの1つまたは複数を実行することをさらに含む、請求項1に記載の方法。
- 前記統計が欠落しておらず、大きなデータ変更がないと判定したことに応答して、前記ソース・データベース・システム上の既存の統計を使用することをさらに含む、請求項1に記載の方法。
- 統計が前記メタデータ・カタログから欠落しているか否かを判定するためのチェックを実行することをさらに含み、統計の欠落の判定に応答して、前記推定、比較、トリガ、前記統計生成クエリの実行、送信、および更新の動作が実行される、請求項1に記載の方法。
- 前記ソース・データベース・システムのテーブルに大きなデータ変更があるか否かを判定するためのチェックを実行することをさらに含み、大きなデータ変更の判定に応答して、前記推定、比較、トリガ、前記統計生成クエリの実行、送信、および更新の動作が実行される、請求項1に記載の方法。
- 前記事前定義された関係は、前記ターゲット・データベース・システムを利用する前記統計生成コストが前記ソース・データベース・システムを利用する前記ソース統計生成コスト未満であることである、請求項1に記載の方法。
- コンピュータによって実行された場合に、前記コンピュータに方法を実行させるコンピュータ実行可能命令を含む非一過性コンピュータ可読媒体であって、前記方法は、
ソース・データベース・システムのメタデータ・カタログ内のテーブル統計を観察することと、
ターゲット・データベース・システムを利用する統計生成コストを推定し、ソース・データベース・システムを利用するソース統計生成コストを推定することと、
前記ターゲット・データベース・システムを利用する前記統計生成コストと、前記ソース・データベース・システムを利用する前記ソース統計生成コストとを比較することと、
前記ターゲット・データベース・システムを利用する前記統計生成コストが前記ソース・データベース・システムを利用する前記ソース統計生成コストと事前定義された関係を有することに応答して、前記ターゲット・データベース・システムによる統計生成クエリを前記ソース・データベース・システムによってトリガすることと、
前記ソース・データベース・システムによる前記トリガに応答して、前記ターゲット・データベース・システムによって前記統計生成クエリを実行することと、
前記ソース・データベース・システムによる前記トリガと、前記統計生成クエリの前記実行とに応答して、前記生成された統計を前記ターゲット・データベース・システムから前記ソース・データベース・システムに送信することと、
前記生成された統計に基づいて前記メタデータ・カタログ内の前記テーブル統計を更新することと、
クエリ・プランを最適化するために前記更新されたテーブル統計を使用することと、
を含む、非一過性コンピュータ可読媒体。 - 前記動作は、
前記観察、推定、および比較の動作を繰り返すことと、
前記ターゲット・データベース・システムを利用する前記統計生成コストが前記ソース・データベース・システムを利用する前記ソース統計生成コスト以上であることに応答して、前記ソース・データベース・システムによって統計生成クエリを実行することと、
をさらに含む、請求項8に記載の非一過性コンピュータ可読媒体。 - 前記事前定義された関係は、前記ターゲット・データベース・システムを利用する前記統計生成コストが前記ソース・データベース・システムを利用する前記ソース統計生成コストから指定された閾値内にあることである、請求項8に記載の非一過性コンピュータ可読媒体。
- 前記動作は、前記統計が欠落しておらず、大きなデータ変更がないと判定したことに応答して、前記ソース・データベース・システム上の既存の統計を使用することをさらに含む、請求項8に記載の非一過性コンピュータ可読媒体。
- 前記動作は、統計が前記メタデータ・カタログから欠落しているか否かを判定するためのチェックを実行することをさらに含み、統計の欠落の判定に応答して、前記推定、比較、トリガ、前記統計生成クエリの実行、送信、および更新の動作が実行される、請求項8に記載の非一過性コンピュータ可読媒体。
- 前記動作は、前記ソース・データベース・システムのテーブルに大きなデータ変更があるか否かを判定するためのチェックを実行することをさらに含み、大きなデータ変更の判定に応答して、前記推定、比較、トリガ、前記統計生成クエリの実行、送信、および更新の動作が実行される、請求項8に記載の非一過性コンピュータ可読媒体。
- 第1のメモリに結合された少なくとも1つの第1のプロセッサを備えるソース・データベース・システムと、
第2のメモリに結合された少なくとも1つの第2のプロセッサを備えるターゲット・データベース・システムと、
を備えるシステムであって、前記システムは動作を実行するように動作可能であり、前記動作は、
前記ソース・データベース・システムのメタデータ・カタログ内のテーブル統計を観察することと、
ターゲット・データベース・システムを利用する統計生成コストを推定し、ソース・データベース・システムを利用するソース統計生成コストを推定することと、
前記ターゲット・データベース・システムを利用する前記統計生成コストと、前記ソース・データベース・システムを利用する前記ソース統計生成コストとを比較することと、
前記ターゲット・データベース・システムを利用する前記統計生成コストが前記ソース・データベース・システムを利用する前記ソース統計生成コストと事前定義された関係を有することに応答して、前記ターゲット・データベース・システムによる統計生成クエリを前記ソース・データベース・システムによってトリガすることと、
前記ソース・データベース・システムによる前記トリガに応答して、前記ターゲット・データベース・システムによって前記統計生成クエリを実行することと、
前記ソース・データベース・システムによる前記トリガと、前記統計生成クエリの前記実行とに応答して、前記生成された統計を前記ターゲット・データベース・システムから前記ソース・データベース・システムに送信することと、
前記生成された統計に基づいて前記メタデータ・カタログ内の前記テーブル統計を更新することと、
クエリ・プランを最適化するために前記更新されたテーブル統計を使用することと、
を含む、システム。 - 前記動作は、
前記観察、推定、および比較の動作を繰り返すことと、
前記ターゲット・データベース・システムを利用する前記統計生成コストが前記ソース・データベース・システムを利用する前記ソース統計生成コスト以上であることに応答して、前記ソース・データベース・システムによって統計生成クエリを実行することと、
をさらに含む、請求項14に記載のシステム。 - 前記テーブル統計を前記観察することは、クエリ実行、更新処理、および自動化されたバックグラウンド・タスクのうちの1つまたは複数を実行することをさらに含む、請求項14に記載のシステム。
- 前記動作は、前記統計が欠落しておらず、大きなデータ変更がないと判定したことに応答して、前記ソース・データベース・システム上の既存の統計を使用することをさらに含む、請求項14に記載のシステム。
- 前記動作は、統計が前記メタデータ・カタログから欠落しているか否かを判定するためのチェックを実行することをさらに含み、統計の欠落の判定に応答して、前記推定、比較、トリガ、前記統計生成クエリの実行、送信、および更新の動作が実行される、請求項14に記載のシステム。
- 前記動作は、前記ソース・データベース・システムのテーブルに大きなデータ変更があるか否かを判定するためのチェックを実行することをさらに含み、大きなデータ変更の判定に応答して、前記推定、比較、トリガ、前記統計生成クエリの実行、送信、および更新の動作が実行される、請求項14に記載のシステム。
- 前記ターゲット・データベース・システムは統計のようなクエリ向けに最適化されている、請求項14に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/827,891 US11182386B2 (en) | 2020-03-24 | 2020-03-24 | Offloading statistics collection |
US16/827,891 | 2020-03-24 | ||
PCT/IB2021/051531 WO2021191702A1 (en) | 2020-03-24 | 2021-02-24 | Offloading statistics collection |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023518345A true JP2023518345A (ja) | 2023-05-01 |
Family
ID=77856500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022549078A Pending JP2023518345A (ja) | 2020-03-24 | 2021-02-24 | 統計の収集のオフロード |
Country Status (10)
Country | Link |
---|---|
US (1) | US11182386B2 (ja) |
JP (1) | JP2023518345A (ja) |
KR (1) | KR20220129085A (ja) |
CN (1) | CN115335821B (ja) |
AU (1) | AU2021244852B2 (ja) |
CA (1) | CA3167981C (ja) |
DE (1) | DE112021000338B4 (ja) |
GB (1) | GB2609576A (ja) |
IL (1) | IL295463A (ja) |
WO (1) | WO2021191702A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11520788B2 (en) * | 2021-03-05 | 2022-12-06 | Insight Direct Usa, Inc. | Methods and systems for transforming distributed database structure for reduced compute load |
US11775516B2 (en) | 2022-02-09 | 2023-10-03 | International Business Machines Corporation | Machine-learning-based, adaptive updating of quantitative data in database system |
KR20240049036A (ko) | 2022-10-07 | 2024-04-16 | 삼성메디슨 주식회사 | 초음파 진단 장치 및 초음파 진단 장치의 제어방법 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4723301B2 (ja) * | 2005-07-21 | 2011-07-13 | 株式会社日立製作所 | ストリームデータ処理システムおよびストリームデータ処理方法 |
US7991763B2 (en) * | 2007-04-13 | 2011-08-02 | International Business Machines Corporation | Database query optimization utilizing remote statistics collection |
US8095507B2 (en) | 2008-08-08 | 2012-01-10 | Oracle International Corporation | Automated topology-based statistics monitoring and performance analysis |
US9110948B2 (en) * | 2012-11-09 | 2015-08-18 | International Business Machines Corporation | Relative performance prediction of a replacement database management system (DBMS) |
US8996499B2 (en) * | 2012-12-19 | 2015-03-31 | International Business Machines Corporation | Using temporary performance objects for enhanced query performance |
US9495418B2 (en) * | 2013-08-07 | 2016-11-15 | International Business Machines Corporation | Scalable acceleration of database query operations |
US10019478B2 (en) | 2013-09-05 | 2018-07-10 | Futurewei Technologies, Inc. | Mechanism for optimizing parallel execution of queries on symmetric resources |
US9361338B2 (en) * | 2013-11-26 | 2016-06-07 | International Business Machines Corporation | Offloaded, incremental database statistics collection and optimization |
US9928281B2 (en) | 2015-03-20 | 2018-03-27 | International Business Machines Corporation | Lightweight table comparison |
KR101706252B1 (ko) | 2016-02-29 | 2017-02-13 | 주식회사 티맥스데이터 | 이기종 데이터베이스들 간의 쿼리 결과를 동기화하기 위한 방법, 서버 및 컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램 |
CN108153776A (zh) | 2016-12-05 | 2018-06-12 | 北京国双科技有限公司 | 数据查询方法及装置 |
US20190034496A1 (en) | 2017-07-27 | 2019-01-31 | Citrix Systems, Inc. | Abstract Query Processing Using Metadata on Multiple Complex Data Sources |
US11468060B2 (en) * | 2018-06-25 | 2022-10-11 | Oracle International Corporation | Automatic query offloading to a standby database |
-
2020
- 2020-03-24 US US16/827,891 patent/US11182386B2/en active Active
-
2021
- 2021-02-24 DE DE112021000338.0T patent/DE112021000338B4/de active Active
- 2021-02-24 WO PCT/IB2021/051531 patent/WO2021191702A1/en active Application Filing
- 2021-02-24 CN CN202180023445.XA patent/CN115335821B/zh active Active
- 2021-02-24 KR KR1020227030112A patent/KR20220129085A/ko unknown
- 2021-02-24 IL IL295463A patent/IL295463A/en unknown
- 2021-02-24 JP JP2022549078A patent/JP2023518345A/ja active Pending
- 2021-02-24 GB GB2215278.9A patent/GB2609576A/en active Pending
- 2021-02-24 AU AU2021244852A patent/AU2021244852B2/en active Active
- 2021-02-24 CA CA3167981A patent/CA3167981C/en active Active
Also Published As
Publication number | Publication date |
---|---|
GB202215278D0 (en) | 2022-11-30 |
GB2609576A (en) | 2023-02-08 |
AU2021244852A1 (en) | 2022-09-01 |
US20210303575A1 (en) | 2021-09-30 |
CA3167981C (en) | 2023-12-19 |
CA3167981A1 (en) | 2021-09-30 |
AU2021244852B2 (en) | 2023-04-27 |
WO2021191702A1 (en) | 2021-09-30 |
IL295463A (en) | 2022-10-01 |
CN115335821A (zh) | 2022-11-11 |
DE112021000338T5 (de) | 2022-09-22 |
DE112021000338B4 (de) | 2024-05-29 |
US11182386B2 (en) | 2021-11-23 |
KR20220129085A (ko) | 2022-09-22 |
CN115335821B (zh) | 2023-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2021244852B2 (en) | Offloading statistics collection | |
US11366809B2 (en) | Dynamic creation and configuration of partitioned index through analytics based on existing data population | |
US10621003B2 (en) | Workflow handling in a multi-tenant cloud environment | |
US10007682B2 (en) | Dynamically maintaining data structures driven by heterogeneous clients in a distributed data collection system | |
US10956214B2 (en) | Time frame bounded execution of computational algorithms | |
US11321318B2 (en) | Dynamic access paths | |
US11693858B2 (en) | Access path optimization | |
US20180004797A1 (en) | Application resiliency management using a database driver | |
US11455574B2 (en) | Dynamically predict optimal parallel apply algorithms | |
US11055285B2 (en) | Access path optimization | |
US10067849B2 (en) | Determining dynamic statistics based on key value patterns | |
US20200089799A1 (en) | Cube construction for an olap system | |
US11893015B2 (en) | Optimizing query performance in virtual database | |
US20230078577A1 (en) | Query result set processing | |
WO2022029593A1 (en) | Shadow experiments for serverless multi-tenant cloud services | |
US12105705B2 (en) | Database query processing with database clients | |
US11841857B2 (en) | Query efficiency using merged columns | |
US12019645B2 (en) | Record management in time series database | |
US12124454B2 (en) | Shadow experiments for serverless multi-tenant cloud services | |
US10642741B2 (en) | Accessing tables with heterogeneous partitions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221228 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230721 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240723 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240724 |