JP2021521507A - ワークロード・パフォーマンスを増大させるためにターゲット・データベース管理システム上のリソース使用を自動的に最適化すること - Google Patents

ワークロード・パフォーマンスを増大させるためにターゲット・データベース管理システム上のリソース使用を自動的に最適化すること Download PDF

Info

Publication number
JP2021521507A
JP2021521507A JP2020551952A JP2020551952A JP2021521507A JP 2021521507 A JP2021521507 A JP 2021521507A JP 2020551952 A JP2020551952 A JP 2020551952A JP 2020551952 A JP2020551952 A JP 2020551952A JP 2021521507 A JP2021521507 A JP 2021521507A
Authority
JP
Japan
Prior art keywords
computer
workload
dbms
target dbms
cost
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020551952A
Other languages
English (en)
Other versions
JP7291719B2 (ja
Inventor
カメシュワラン、ソウミャ
ベンデル、ピーター
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2021521507A publication Critical patent/JP2021521507A/ja
Application granted granted Critical
Publication of JP7291719B2 publication Critical patent/JP7291719B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3414Workload generation, e.g. scripts, playback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ワークロード・パフォーマンスを増大させ、リソース使用を低減させるために、ソース・データベース管理システム(ソースDBMS)からターゲットDBMSにデータのセットをロードすることを提供する。【解決手段】ターゲットDBMSにオフロードされる資格を有するテーブルのサイズおよび変更率を使用して、データのセットをターゲットDBMSにロードすることに対応する全CPUコストと、複数のロード戦略からなるロード戦略のセットに基づいてターゲットDBMS上でワークロードを実行することに対応するワークロード節減コストとが決定される。全CPUコストは、それぞれのロード戦略のワークロード節減コストと比較される。全CPUコストをそれぞれのロード戦略のワークロード節減コストと比較したことに基づいて、最適なロード戦略が選択される。データのセットは、選択された最適なロード戦略に従って、ソースDBMSからターゲットDBMSに自動的にロードされる。【選択図】図2

Description

本開示は一般に、データベース管理システムに関し、より詳細には、ターゲット・データベース管理システムによって使用されているコンピュータ・メモリおよび中央処理ユニット・リソースを自動的に最適化して、加速されたアナリティカル照会ワークロード・パフォーマンス(accelerated analytical query workload performance)を増大させることに関する。
データベースは、データの編成された集合体である。データベース管理システム(database management system)(DBMS)は、データベースを作成および管理するためのシステム・ソフトウェアである。DBMSは、ユーザが、データベース内においてデータを作成し、読み取り、更新し、削除することを可能にする。言い換えると、DBMSは、データベースとユーザの間またはデータベースとアプリケーションの間のインタフェースの役目を果たし、データが一貫して編成されること、および容易にアクセス可能な状態をデータが維持することを保証する。
DBMSは、データ、データにアクセスすることを可能にするデータベース・エンジン、およびデータベースの論理構造を定義するデータベース・スキーマを管理する。これらの要素は、並行性(concurrency)、セキュリティ、データ保全性および均一な管理手順(uniform administration procedure)を提供するのに役立つ。DBMSによってサポートされる典型的なデータベース管理タスクは、変更管理、パフォーマンス監視ならびにバックアップおよびリカバリを含む。多くのデータベース管理システム(DBMS)はさらに、自動化されたロールバック、リスタートおよびリカバリ、ならびにアクティビティの記録を実行することがある。
リレーショナルDBMSではレコードがテーブルの中に記憶される。レコードはしばしば行(row)と呼ばれ、記録の属性は列(column)と呼ばれる。データベースは一般に、異なるDBMSを横断する可搬性を持たないが、異なるDBMSは、例えば構造化照会言語(Structured Query Language)(SQL)、オープン・データベース・コネクティビティ(Open Database Connectivity)(ODBC)またはジャバ・データベース・コネクティビティ(Java Database Connectivity)(JDBC)などの規格を使用して、単一のアプリケーションが2つ以上のDBMSとともに機能することを可能にすることによって、相互運用することができる。
技術の進歩の結果、あらゆる分野でデータ量が増大した。価値ある洞察(insight)を得るため、ユーザは、特定の分野の大量のデータに対してリアルタイム・アナリティクス(real-time analytics)を実行する能力を要求する。しかしながら、リアルタイム・データ・アナリティクスは、中央処理ユニット(CPU)上での非常に時間がかかるコストの高い照会操作を必要とする。さらに、従来のDBMSでは通常、CPUリソースが、アナリティカル・ワークロードに対してではなくトランザクション・ワークロードに対して専ら使用される。
したがって、当技術分野では、上記の課題を解決することが求められている。
第1の態様から見ると、本発明は、ワークロード・パフォーマンスを増大させ、リソース使用を低減させるために、ソース・データベース管理システム(DBMS)からターゲットDBMSにデータのセットをロードするためのコンピュータ実施方法であって、このコンピュータ実施方法が、コンピュータによって、ターゲットDBMSにオフロードされる(offloaded)資格を有するテーブルのサイズおよび変更率(change rate)を使用して、データのセットをターゲットDBMSにロードすることに対応する全中央プロセッサ・ユニット(CPU)コストと、1つまたは複数のロード戦略からなるロード戦略のセットに基づいてターゲットDBMS上で1つまたは複数のワークロードを実行することに対応するワークロード節減コストとを決定すること、コンピュータによって、全CPUコストを、ロード戦略のセットの中のそれぞれのロード戦略のワークロード節減コストと比較すること、コンピュータによって、全CPUコストをそれぞれのロード戦略のワークロード節減コストと比較したことに基づいて、ロード戦略のセットから最適なロード戦略を選択すること、ならびにワークロード・パフォーマンスを増大させ、CPUコストを低減させる1つまたは複数のワークロードの加速された実行のために、コンピュータによって、選択した最適なロード戦略に従って、ソースDBMSからターゲットDBMSにデータのセットを自動的にロードすることを含む、コンピュータ実施方法を提供する。
別の態様から見ると、本発明は、ワークロード・パフォーマンスを増大させ、リソース使用を低減させるために、ソース・データベース管理システム(DBMS)からターゲットDBMSにデータのセットをロードするためのコンピュータ・システムであって、このコンピュータ・システムが、バス・システムと、バス・システムに接続されたストレージ・デバイスであり、プログラム命令を記憶したストレージ・デバイスと、バス・システムに接続されたプロセッサとを備え、このプロセッサが、プログラム命令を実行して、ターゲットDBMSにオフロードされる資格を有するテーブルのサイズおよび変更率を使用して、データのセットをターゲットDBMSにロードすることに対応する全中央プロセッサ・ユニット(CPU)コストと、1つまたは複数のロード戦略からなるロード戦略のセットに基づいてターゲットDBMS上で1つまたは複数のワークロードを実行することに対応するワークロード節減コストとを決定し、全CPUコストを、ロード戦略のセットの中のそれぞれのロード戦略のワークロード節減コストと比較し、全CPUコストをそれぞれのロード戦略のワークロード節減コストと比較したことに基づいて、ロード戦略のセットから最適なロード戦略を選択し、ワークロード・パフォーマンスを増大させ、CPUコストを低減させる1つまたは複数のワークロードの加速された実行のために、選択した最適なロード戦略に従って、ソースDBMSからターゲットDBMSにデータのセットを自動的にロードする、コンピュータ・システムを提供する。
別の態様から見ると、本発明は、ワークロード・パフォーマンスを増大させ、リソース使用を低減させるために、ソース・データベース管理システム(DBMS)からターゲットDBMSにデータのセットをロードするためのコンピュータ・プログラム製品であって、このコンピュータ・プログラム製品が、処理回路によって読取り可能なコンピュータ可読ストレージ媒体であり、本発明のステップを実行するための方法を実行するため処理回路によって実行するための命令を記憶したコンピュータ可読ストレージ媒体を含む、コンピュータ・プログラム製品を提供する。
別の態様から見ると、本発明は、コンピュータ可読媒体に記憶された、ディジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムであって、プログラムがコンピュータ上でランされたときに、本発明のステップを実行するためのソフトウェア・コード部分を含むコンピュータ・プログラムを提供する。
例示的な一実施形態によれば、ワークロード・パフォーマンスを増大させ、リソース使用を低減させるために、ソース・データベース管理システム(DBMS)からターゲットDBMSにデータのセットをロードするためのコンピュータ実施方法が提供される。コンピュータは、ターゲットDBMSにオフロードされる資格を有するテーブルのサイズおよび変更率を使用して、データのセットをターゲットDBMSにロードすることに対応する全中央プロセッサ・ユニット(CPU)コストと、1つまたは複数のロード戦略からなるロード戦略のセットに基づいてターゲットDBMS上で1つまたは複数のワークロードを実行することに対応するワークロード節減コストとを決定する。コンピュータは、全CPUコストを、ロード戦略のセットの中のそれぞれのロード戦略のワークロード節減コストと比較する。コンピュータは、全CPUコストをそれぞれのロード戦略のワークロード節減コストと比較したことに基づいて、ロード戦略のセットから最適なロード戦略を選択する。コンピュータは、ワークロード・パフォーマンスを増大させ、CPUコストを低減させる1つまたは複数のワークロードの加速された実行のために、選択した最適なロード戦略に従って、ソースDBMSからターゲットDBMSにデータのセットを自動的にロードする。例示的な他の実施形態によれば、ワークロード・パフォーマンスを増大させ、リソース使用を低減させるために、ソースDBMSからターゲットDBMSにデータのセットをロードするためのコンピュータ・システムおよびコンピュータ・プログラム製品が提供される。
例示的な他の実施形態によれば、コンピュータは、ターゲットDBMS上でランしているワークロードのセットと、ターゲットDBMS上でそれぞれのワークロードをランすることに関連したコストとに関する情報を収集する。コンピュータは、ターゲットDBMS内のテーブルのセットのサイズと、セットの中のそれぞれのテーブルに関連した参照カウントであり、ワークロードのセットによる使用に基づく参照カウントとを取得する。コンピュータは、ターゲットDBMS内のテーブルのセットの中のそれぞれのテーブルについて、ワークロードのセットによるテーブル・アクセスの頻度を評価する。コンピュータは、ワークロードのセットによって参照されているそれぞれのテーブルに関連したテーブル・アクセスの頻度を、アクセスの頻度が最小限またはゼロであるテーブルをターゲットDBMSから削除することに関連したメモリおよびCPU節減コストにマップして、テーブル削除候補を識別する。コンピュータは、メモリ使用を低減させ、ターゲットDBMS上でのワークロード・パフォーマンスを増大させるために、マップに基づいて、識別されたテーブル削除候補をターゲットDBMSから自動的に削除する。
したがって、例示的な実施形態は、それぞれのテーブルを参照しているワークロードをオフロードすることのCPU節減コストと、ターゲットDBMS上のそれぞれのテーブルにデータをロードすることによって生じるCPUコストとを比較することによって、それぞれのテーブルのコスト/ベネフィット・バランスを計算する。さらに、例示的な実施形態は、ターゲットDBMS上で使用されていないまたは最小限にしか使用されていないテーブルを削除する。その結果として、例示的な実施形態は、メモリおよびCPU使用を最適化して、ワークロード・パフォーマンスを増大させる。
次に、添付図面を参照して、本発明の実施形態を単なる例として説明する。
例示的な実施形態を実施することができるデータ処理システムのネットワークの絵図である。 例示的な実施形態を実施することができるデータ処理システムの図である。 例示的な実施形態に基づく、最初にテーブル・データをロードするためのプロセスを示す流れ図である。 例示的な実施形態に基づく、最初にテーブル・データをロードするためのプロセスを示す流れ図である。 例示的な実施形態に基づく、パーティション化されたテーブルのデータをリフレッシュするためのプロセスを示す流れ図である。 例示的な実施形態に基づく、パーティション化されたテーブルのデータをリフレッシュするためのプロセスを示す流れ図である。 例示的な実施形態に基づく、テーブル・データの増分更新に関して使用可能にされたテーブルを評価するためのプロセスを示す流れ図である。 例示的な実施形態に基づく、テーブル・データの増分更新に関して使用可能にされたテーブルを評価するためのプロセスを示す流れ図である。 例示的な実施形態に基づく、参照されていないまたは最小限にしか参照されていないテーブルを削除するためのプロセスを示す流れ図である。 例示的な実施形態に基づく、最適なロード戦略を選択するためのプロセスを示す流れ図である。 例示的な実施形態に基づく、テーブル・アクセス頻度をメモリおよびCPU節減コストにマップするためのプロセスを示す流れ図である。
本発明は、統合化の可能な技術的詳細レベルにおける、システム、方法もしくはコンピュータ・プログラム製品、またはこれらの組合せとすることができる。このコンピュータ・プログラム製品は、本発明の諸態様をプロセッサに実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体を含むことができる。
このコンピュータ可読ストレージ媒体は、命令実行デバイスが使用するための命令を保持および記憶することができる有形のデバイスとすることができる。このコンピュータ可読ストレージ媒体は例えば、限定はされないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたはこれらの適当な組合せとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダムアクセス・メモリ(RAM)、リードオンリー・メモリ(ROM)、消去可能なプログラマブル・リードオンリー・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リードオンリー・メモリ(CD−ROM)、ディジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、機械的にコード化されたデバイス、例えばパンチカードまたはその上に命令が記録された溝の中の一段高くなった構造体、およびこれらの適当な組合せを含む。本明細書で使用されるコンピュータ可読ストレージ媒体は、それ自体が一過性の信号、例えば電波もしくは他の自由に伝搬する電磁波、ウェーブガイドもしくは他の伝送体内を伝搬する電磁波(例えば光ファイバ・ケーブル内を通る光パルス)、または電線を通して伝送される電気信号であると解釈されるべきではない。
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から対応するそれぞれのコンピューティング/処理デバイスにダウンロードすることができ、あるいはネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはそれらの組合せを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくエッジ・サーバ、またはこれらの組合せを含んでもよい。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、コンピュータ可読プログラム命令をネットワークから受け取り、それらのコンピュータ可読プログラム命令を、対応するそれぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に記憶するために転送する。
本発明の操作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データもしくは集積回路用の構成データであってもよく、またはSmalltalk、C++もしくは他の同種のものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは同種のプログラミング言語などの手続き型プログラミング言語を含む、1つもしくは複数のプログラミング言語の任意の組合せで書かれた、ソース・コードもしくはオブジェクト・コードであってもよい。このコンピュータ可読プログラム命令は、全体がユーザのコンピュータ上で実行されてもよく、一部がユーザのコンピュータ上で実行されてもよく、独立型ソフトウェア・パッケージとして実行されてもよく、一部がユーザのコンピュータ上で、一部が遠隔コンピュータ上で実行されてもよく、または全体が遠隔コンピュータもしくはサーバ上で実行されてもよい。上記の最後のシナリオでは、遠隔コンピュータが、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、またはこの接続が、外部コンピュータに対して(例えばインターネット・サービス・プロバイダを使用してインターネットを介して)実施されてもよい。いくつかの実施形態では、本発明の諸態様を実施するために、例えばプログラム可能ロジック回路、フィールド・プログラム可能ゲート・アレイ(FPGA)またはプログラム可能ロジックアレイ(PLA)を含む電子回路が、このコンピュータ可読プログラム命令の状態情報を利用してその電子回路をパーソナライズすることにより、このコンピュータ可読プログラム命令を実行してもよい。
本明細書では、本発明の諸態様が、本発明の実施形態に基づく方法、装置(システム)およびコンピュータ・プログラム製品の流れ図もしくはブロック図またはその両方の図を参照して説明される。それらの流れ図もしくはブロック図またはそれらの両方の図の各ブロック、およびそれらの流れ図もしくはブロック図またはその両方の図のブロックの組合せは、このコンピュータ可読プログラム命令によって実施することができることが理解される。
これらのコンピュータ可読プログラム命令は、機械を形成する汎用コンピュータ、専用コンピュータまたは他のプログラム可能データ処理装置のプロセッサに、それらのコンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行されるこれらの命令が、これらの流れ図もしくはブロック図またはその両方の図のブロックに指定された機能/操作を実施する手段を生成するような態様で提供することができる。これらのコンピュータ可読プログラム命令はさらに、特定の方式で機能するようにコンピュータ、プログラム可能データ処理装置もしくは他のデバイスまたはこれらの組合せに指図することができるコンピュータ可読ストレージ媒体に、その中に命令が記憶されたコンピュータ可読ストレージ媒体が、これらの流れ図もしくはブロック図またはその両方の図のブロックに指定された機能/操作の態様を実施する命令を含む製造物品を含むような態様で記憶することができる。
コンピュータ可読プログラム命令はさらに、コンピュータ、他のプログラム可能装置または他のデバイス上で一連の操作ステップを実行させて、コンピュータによって実施されるプロセスを生み出すために、このコンピュータ、他のプログラム可能データ処理装置または他のデバイスに、このコンピュータ、他のプログラム可能装置または他のデバイス上で実施されるこれらの命令が、これらの流れ図もしくはブロック図またはその両方の図のブロックに指定された機能/操作を実施するような態様でロードすることができる。
添付図中の流れ図およびブロック図は、本発明のさまざまな実施形態に基づくシステム、方法およびコンピュータ・プログラム製品の可能な実施態様のアーキテクチャ、機能および操作を示す。この点に関して、それらの流れ図またはブロック図の各ブロックは、指定されたロジック機能を実施する1つまたは複数の実行可能命令を含む、命令のモジュール、セグメントまたは部分を表すことがある。いくつかの代替的実施態様では、これらのブロックに示された機能が、図に示された順序とは異なる順序で実施される。例えば、連続して示された2つのブロックが、実際は、実質的に同時に実行されることがあり、または、含まれる機能によってはそれらのブロックが逆の順序で実行されることもある。それらのブロック図もしくは流れ図またはその両方の図の各ブロック、ならびにそれらのブロック図もしくは流れ図またはその両方の図のブロックの組合せを、指定された機能もしくは操作を実行しまたは専用ハードウェアとコンピュータ命令の組合せを実施するハードウェアベースの専用システムによって実施することができることにも留意すべきである。
次に図、特に図1および図2を参照すると、例示的な実施形態を実施することができるデータ処理環境の図が示されている。図1および図2は、単なる例であることが意図されており、図1および図2が、異なる実施形態を実施することができる環境に関する限定を言明または暗示することは意図されていないことを理解すべきである。示された環境に対して多くの変更を加えることができる。
図1は、例示的な実施形態を実施することができるデータ処理システムのネットワークの絵図を示す。ネットワーク・データ処理システム100は、例示的な実施形態を実施することができる、コンピュータ、データ処理システムおよび他のデバイスのネットワークである。ネットワーク・データ処理システム100はネットワーク102を含み、ネットワーク102は、ネットワーク・データ処理システム100内で一緒に接続されたコンピュータ、データ処理システムおよび他のデバイス間の通信リンクを提供するために使用される媒体である。ネットワーク102は、例えば有線通信リンク、無線通信リンクおよび光ファイバ・ケーブルなどの接続を含むことができる。
図示の例では、サーバ104、サーバ106およびサーバ108が、ストレージ110とともにネットワーク102に接続している。サーバ104、サーバ106およびサーバ108は例えば、ネットワーク102との高速接続を有するサーバ・コンピュータであってもよい。さらに、サーバ104はソースDBMSサーバ、サーバ106はターゲットDBMSサーバ、サーバ108はオフロード管理サーバである。ソースDBMSサーバ104、ターゲットDBMSサーバ106およびオフロード管理サーバ108はそれぞれ、1つまたは複数のコンピュータからなる一組のコンピュータを表していてもよいことに留意すべきである。さらに、DBMSサーバ104、ターゲットDBMSサーバ106およびオフロード管理サーバ108は、データ・センタ内のコンピュータであってもよい。あるいは、DBMSサーバ104、ターゲットDBMSサーバ106およびオフロード管理サーバ108は、クラウド環境のコンピューティング・ノードであってもよい。
ソースDBMSサーバ104は、テーブルの中にデータを記憶したリレーショナル・データベースを表し、そのデータを要求するリクエストに応える供給源である。言い換えると、ソースDBMSサーバ104は、そのデータに対応するクライアント・デバイスからの照会に対応する。このデータは任意のタイプのデータとすることができる。ターゲットDBMSサーバ106は、ソースDBMSサーバ104に含まれるデータに対する照会を加速するためのアクセラレータを表し、テーブルのリレーショナル・データベースを含む。オフロード・マネージャ・サーバ108は、ソースDBMSサーバ104からターゲットDBMSサーバ106に照会ワークロードをオフロードするプロセスを制御する。
オフロード・マネージャ・サーバ108は、それぞれのテーブルを参照している照会ワークロードをソースDBMSサーバ104からオフロードすることのCPU節減コストと、ターゲットDBMS上の参照されているそれぞれのテーブルにデータをロードすることにより生じるCPUコストとを比較することによって、照会ワークロードによって参照されているそれぞれのテーブルに対するリソース・コストとリソース・コスト節減との間のバランスを決定する。さらに、オフロード・マネージャ・サーバ108は、参照されていないまたは最小限にしか参照されていない(例えば特定のテーブルに対応する参照数が規定された参照しきい数よりも小さい)テーブルをターゲットDBMS106から削除して、ターゲットDBMS106上のメモリを解放する。したがって、オフロード・マネージャ・サーバ108は、ターゲットDBMS106によるメモリおよびCPUの使用を最適化して、加速されたアナリティカル照会ワークロード・パフォーマンスを増大させる。
ネットワーク102にはクライアント112、クライアント114およびクライアント116も接続している。クライアント112、114および116はソースDBMSサーバ104のクライアントである。クライアント112、114および116のユーザは、クライアント112、114および116を利用して、ソースDBMSサーバ104にデータを照会することができる。この照会は例えば、ソースDBMSサーバ104内のCPU使用の増大を必要とするアナリティカル照会であってもよい。この例では、クライアント112、114および116が、ネットワーク102との有線通信リンクを有するデスクトップまたはパーソナル・コンピュータとして示されている。しかしながら、クライアント112、114および116が、例えばネットワーク102との有線または無線通信リンクを有する、ネットワーク・コンピュータ、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、スマートフォン、スマート・ウォッチ、スマート・テレビジョン、ゲーム・デバイス、キオスク(kiosk)などの他のタイプのデータ処理システムを表すことがあることに留意すべきである。
ストレージ110は、任意のタイプのデータを、構造化されたフォーマットまたは構造化されていないフォーマットで記憶することができるネットワーク・ストレージ・デバイスを表す。さらに、ストレージ110は、複数のネットワーク・ストレージ・デバイスを表すことがある。ストレージ110は例えば、複数のソースDBMSサーバの識別子およびネットワーク・アドレス、複数のターゲットDBMSサーバの識別子およびネットワーク・アドレス、複数のクライアント・デバイスの識別子およびネットワーク・アドレス、リアルタイム・データベース統計量などを記憶することができる。さらに、ストレージ110は例えば、クライアント・デバイス・ユーザおよびシステム管理者に関連づけられたユーザ名、パスワードおよび生体測定データ(biometric data)を含むことがある認証または証明データなどの他のタイプのデータを記憶することができる。
さらに、ネットワーク・データ処理システム100は、示されていない任意の数の追加のサーバ、クライアント・デバイス、ストレージ・デバイスおよび他のデバイスを含んでいてもよいことに留意すべきである。ネットワーク・データ処理システム100内に位置するプログラム・コードは、コンピュータ可読ストレージ媒体上に記憶されていてもよく、使用のためにコンピュータまたは他のデータ処理デバイスにダウンロードされてもよい。例えば、ソースDBMSサーバ104上のコンピュータ可読ストレージ媒体にプログラム・コードが記憶されていてもよく、クライアント112上で使用するためにネットワーク102を介してクライアント112にダウンロードされてもよい。
図示の例では、例えばインターネット、イントラネット、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)またはこれらの任意の組合せなどのいくつかの異なるタイプの通信ネットワークとして、ネットワーク・データ処理システム100を実施することができる。図1は、単なる例であることが意図されており、図1が、異なる例示的な実施形態のアーキテクチャを限定することは意図されていない。
次に図2に参照すると、例示的な実施形態に基づくデータ処理システムの図が示されている。データ処理システム200は、例示的な実施形態のプロセスを実施するコンピュータ可読プログラム・コードまたは命令がその中に位置することができる、図1のオフロード管理サーバ108などのコンピュータの一例である。この説明のための例では、データ処理システム200が通信ファブリック(communications fabric)202を含み、通信ファブリック202は、プロセッサ・ユニット204、メモリ206、永続ストレージ208、通信ユニット210、入力/出力(I/O)ユニット212およびディスプレイ214の間の通信を提供する。
プロセッサ・ユニット204は、メモリ206にロードされていることがあるソフトウェア・アプリケーションおよびプログラムに関する命令を実行する役目を果たす。特定の実施態様に応じて、プロセッサ・ユニット204は、1つまたは複数のハードウェアCPUデバイスからなる一組のハードウェアCPUデバイスであってもよく、またはマルチプロセッサ・コアであってもよい。
メモリ206および永続ストレージ208はストレージ・デバイス216の例である。コンピュータ可読ストレージ・デバイスは、例えば、限定はされないが、データ、関数形式のコンピュータ可読プログラム・コードもしくは他の適当な情報またはこれらの組合せなどの情報を、一時的にもしくは永続的にまたはその両方で記憶することができる任意のハードウェアである。さらに、コンピュータ可読ストレージ・デバイスは、伝搬媒体を除外する。これらの例では、メモリ206が例えば、ランダムアクセス・メモリ、または他の適当な揮発性もしくは不揮発性のストレージ・デバイスであってもよい。特定の実施態様に応じて、永続ストレージ208はさまざまな形態をとることができる。例えば、永続ストレージ208は1つまたは複数のデバイスを含んでいてもよい。例えば、永続ストレージ208は、ハード・ドライブ、フラッシュ・メモリ、再書込み可能な光ディスク、再書込み可能な磁気テープまたはこれらのある組合せであってもよい。永続ストレージ208によって使用される媒体は取外し可能であってもよい。例えば、永続ストレージ208に対して取外し可能なハード・ドライブが使用されてもよい。
この例では、永続ストレージ208がオフロード・マネージャ218を記憶している。しかしながら、オフロード・マネージャ218は永続ストレージ208内にあるものとして示されているが、例示的な代替実施形態では、オフロード・マネージャ218がデータ処理システム200の別個の構成要素であってもよいことに留意すべきである。例えば、オフロード・マネージャ218は、通信ファブリック202に結合されたハードウェア構成要素であってもよく、またはハードウェア構成要素とソフトウェア構成要素の組合せであってもよい。例示的な別の代替実施形態では、オフロード・マネージャ218の第1の部分がデータ処理システム200上に位置していてもよく、オフロード・マネージャ218の第2の部分が、図1のターゲットDBMSサーバ106などの第2のデータ処理システム上に位置していてもよい。例示的な別の代替実施形態では、オフロード・マネージャ218が、データ処理システム200上に位置する代わりに、またはデータ処理システム200上に位置することに加えて、ターゲットDBMSサーバ内に位置していてもよい。
オフロード・マネージャ218は、長時間ランしているアナリティカル照会ワークロードを、例えば図1のソースDBMSサーバ104などのソースDBMSから、例えば図1のターゲットDBMSサーバ106などのターゲットDBMSにオフロードするプロセスを制御する。オフロード・マネージャ218は、ソースDBMS上ではなくターゲットDBMS上でワークロードをランすることによるCPUワークロード・コストの節減と、ワークロードによって参照されているターゲットDBMS上のテーブルへのデータのロードに対応するCPUコストとを決定する。オフロード・マネージャ218はさらに、ターゲットDBMS上の既にロードされたどのテーブルを削除して、ターゲットDBMSのメモリ・リソースを節減し、ターゲットDBMS上でのワークロード・パフォーマンスを増大させることができるのかを決定する。
この例では、永続ストレージ208がさらに、ソースDBMS220、全CPUコスト222、ワークロード節減コスト224、リアルタイム統計データ226、ターゲットDBMS228および推奨ロード戦略(load strategy recommendation)230を記憶している。ソースDBMS220は、ソースDBMSの識別子およびネットワーク・アドレスを表す。オフロード・マネージャ218は、それらの識別子およびネットワーク・アドレスを使用してソースDBMSに接続し、ソースDBMSに対応する情報を取得する。この情報は例えばワークロード232を含んでいてもよい。ワークロード232は、ソースDBMS上でランしている1つまたは複数のワークロードからなるワークロードのセットを表す。ワークロード232は例えば、ソースDBMS上でのCPU使用の増大を必要とするアナリティカル照会であってもよい。テーブル234は、ワークロード232を実行するためにソースDBMSによって参照されているテーブルのセットを表す。サイズ236は、ワークロード232に関して参照されているテーブルのセットの中のそれぞれのテーブルのサイズを表す。変更率238は、ワークロード232に関して参照されているテーブルのセットの中のそれぞれのテーブルの変更の頻度を表す。
オフロード・マネージャ218は、サイズ236および変更率238を利用して、ワークロード232に対応する全CPUコスト222を計算する。全CPUコスト222は、ターゲットDBMSにテーブル234をロードしてターゲットDBMS上でワークロード232を実行することの総計のCPU使用コストを表す。ワークロード節減コスト224は、ソースDBMSからターゲットDBMSにワークロード232をオフロードすることによるCPU使用の低減を表す。
リアルタイム統計データ226は、サイズ、変更率、エラーなどの、テーブル234に対応する現在のリアルタイム情報を表す。ターゲットDBMS228は、ターゲットDBMSの識別子およびネットワーク・アドレスを表す。オフロード・マネージャ218は、それらの識別子およびネットワーク・アドレスを使用して、ターゲットDBMSに接続し、ターゲットDBMSに対応する情報を取得する。
テーブル・アクセスしきい値240は、ターゲットDBMSにロードされたテーブルに対する参照またはアクセスの予め規定された最小数を表す。オフロード・マネージャ218は、テーブル・アクセスしきい値240に等しいかまたはそれよりも小さい対応する数のアクセスを有するテーブルを、テーブル削除候補242として識別する。テーブル削除候補242は、メモリを増やし、したがってターゲットDBMS上でのワークロード・パフォーマンスを増大させるためにオフロード・マネージャ218がターゲットDBMSから削除することができる1つまたは複数のテーブルからなるテーブルのセットを表す。
推奨ロード戦略230は、ターゲットDBMSのテーブルにデータをロードするためにオフロード・マネージャ218が利用することができるテーブル・ロード計画を表す。推奨ロード戦略230は例えば、アンロード・ベースの(UNLOAD-based)リフレッシュ戦略もしくは増分更新戦略またはその両方であってもよい。アンロード・ベースのリフレッシュ戦略は、特定の時点においてターゲットDBMS上のワークロードによって参照されているテーブル・パーティションおよびテーブル全体を更新する。増分更新戦略は、ターゲットDBMS上のワークロードによって参照されているテーブルの中のデータを絶えず更新する。
この例では、通信ユニット210が、図1のネットワーク102などのネットワークを介した他のコンピュータ、データ処理システムおよびデバイスとの通信を提供する。通信ユニット210は、物理通信リンクと無線通信リンクの両方を使用することによって通信を提供することができる。物理通信リンクは、例えばワイヤ、ケーブル、ユニバーサル・シリアル・バスまたは他の物理技術を利用して、データ処理システム200用の物理通信リンクを確立することができる。無線通信リンクは、例えば短波、高周波、超高周波、マイクロ波、ワイヤレス・フィデリティ(wireless fidelity)(Wi−Fi)、Bluetooth(登録商標)技術、グローバル・システム・フォー・モバイル・コミュニケーションズ(global system for mobile communications)(GSM)、符号分割多重アクセス(CDMA)、第2世代(2G)、第3世代(3G)、第4世代(4G)、4Gロング・ターム・レボリューション(Long Term Evolution)(LTE)、LTEアドバンスト(LTE Advanced)または他の無線通信技術もしくは規格を利用して、データ処理システム200用の無線通信リンクを確立することができる。
入力/出力ユニット212は、データ処理システム200に接続されていることがある他のデバイスとのデータの入力および出力を可能にする。例えば、入力/出力ユニット212は、キーパッド、キーボード、マウスもしくは他の適当な何らかの入力デバイスまたはこれらの組合せを介したユーザ入力のための接続を提供することができる。ディスプレイ214は、ユーザに対して情報を表示する機構を提供する。例えばユーザ・インタフェースを通してオンスクリーン選択を実行することまたはデータを入力することを可能にするために、ディスプレイ214はタッチ・スクリーン機能を含んでいてもよい。
通信ファブリック202を通してプロセッサ・ユニット204と通信するストレージ・デバイス216内に、オペレーティング・システム、アプリケーションもしくはプログラムまたはこれらの組合せのための命令が位置していてもよい。この説明のための例では、これらの命令が、関数形式で永続ストレージ208上にある。プロセッサ・ユニット204によってランするために、これらの命令をメモリ206にロードすることができる。プロセッサ・ユニット204は、メモリ206などのメモリ内に位置していることがあるコンピュータ実施命令を使用して、異なる実施形態のプロセスを実行することができる。これらのプログラム命令は、プログラム・コード、コンピュータ使用可能プログラム・コードまたはコンピュータ可読プログラム・コードと呼ばれ、プロセッサ・ユニット204内のプロセッサによって読み取られ、ランされることがある。異なる実施形態では、メモリ206または永続ストレージ208などの異なるコンピュータ可読物理ストレージ・デバイス上に、これらのプログラム命令が具体化されていることがある。
プログラム・コード244は、選択的に取外し可能なコンピュータ可読媒体246上に関数形式で位置し、プログラム・コード244は、プロセッサ・ユニット204によってランするために、データ処理システム200にロードされてもよく、またはデータ処理システム200に転送されてもよい。プログラム・コード244とコンピュータ可読媒体246はコンピュータ・プログラム製品248を形成する。一例では、コンピュータ可読媒体246が、コンピュータ可読ストレージ媒体250またはコンピュータ可読信号媒体252であってもよい。コンピュータ可読ストレージ媒体250は例えば、永続ストレージ208の部分であるハード・ドライブなどのストレージ・デバイスに転送するために永続ストレージ208の部分であるドライブまたは他のデバイス内に挿入または配置された光学または磁気ディスクを含むことができる。コンピュータ可読ストレージ媒体250は、データ処理システム200に接続されたハード・ドライブ、サム・ドライブ(thumb drive)またはフラッシュ・メモリなどの永続ストレージの形態をとることができる。いくつかの事例では、コンピュータ可読ストレージ媒体250が、データ処理システム200から取外し可能でないものであってもよい。
あるいは、プログラム・コード244を、コンピュータ可読信号媒体252を使用してデータ処理システム200に転送することもできる。コンピュータ可読信号媒体252は例えば、プログラム・コード244を含む被伝搬データ信号であってもよい。例えば、コンピュータ可読信号媒体252は、電磁信号、光学信号もしくは他の適当なタイプの信号またはこれらの組合せであってもよい。これらの信号は、無線通信リンク、光ファイバ・ケーブル、同軸ケーブル、ワイヤもしくは他の適当なタイプの通信リンクまたはこれらの組合せなどの通信リンクを介して伝送されてもよい。言い換えると、この説明のための例では、通信リンクもしくは接続またはその両方が、物理または無線式であってもよい。コンピュータ可読媒体は、プログラム・コードを含む通信リンクまたは無線伝送などの非有形媒体の形態をとるものであってもよい。
いくつかの例示的な実施形態では、プログラム・コード244が、データ処理システム200内で使用するために、コンピュータ可読信号媒体252によって、ネットワークを介して、別のデバイスまたはデータ処理システムから永続ストレージ208にダウンロードされてもよい。例えば、データ処理システム内のコンピュータ可読ストレージ媒体の中に記憶されたプログラム・コードが、ネットワークを介して、そのデータ処理システムからデータ処理システム200にダウンロードされてもよい。プログラム・コード244を提供するデータ処理システムは、プログラム・コード244を記憶および送信することができるサーバ・コンピュータ、クライアント・コンピュータまたは他の何らかのデバイスであってもよい。
データ処理システム200の示された異なる構成要素が、異なる実施形態が実施される方式のアーキテクチャを限定することは意図されていない。それらの異なる例示的な実施形態は、データ処理システム200に関して説明した構成要素の他に、またはデータ処理システム200に関して説明した構成要素の代わりに構成要素を含むデータ処理システム内で実施されることがある。図2に示された他の構成要素は、示された説明のための例とは異なるものとすることができる。異なる実施形態は、プログラム・コードを実行することができる任意のハードウェア・デバイスまたはシステムを使用して実施されることがある。一例として、データ処理システム200は、無機構成要素と統合された有機構成要素を含むものであってもよく、もしくは人間以外の有機構成要素から全体が構成されていてもよく、またはその両方であってもよい。例えば、ストレージ・デバイスは有機半導体から構成されていてもよい。
別の例として、データ処理システム200内のコンピュータ可読ストレージ・デバイスは、データを記憶することができる任意のハードウェア装置である。メモリ206、永続ストレージ208およびコンピュータ可読ストレージ媒体250は、有形の物理ストレージ・デバイスの例である。
別の例では、通信ファブリック202を実施するためにバス・システムが使用されてもよく、そのバス・システムは、システム・バスまたは入力/出力バスなどの1つまたは複数のバスから構成されたものであってもよい。当然ながら、このバス・システムは、バス・システムに接続された異なる構成要素またはデバイス間のデータの転送を提供する適当な任意のタイプのアーキテクチャを使用して実施することができる。さらに、通信ユニットは、データを送信および受信するために使用されるモデムまたはネットワーク・アダプタなどの1つまたは複数のデバイスを含むものであってもよい。さらに、メモリは例えば、通信ファブリック202に存在することがあるインタフェースおよびメモリ・コントローラ・ハブに見られるものなどのメモリ206またはキャッシュであってもよい。
長時間ランしているアナリティカル照会ワークロードのオフロードを加速するために、アクセラレータが使用される。照会を加速するためには、照会によって参照されているテーブルのデータをアクセラレータにロードする必要がある。そのような多数の照会がアクセラレータにオフロードされると、メモリ消費が増大し、その一方で照会パフォーマンスは低下する。
CPU、メモリおよび永続ストレージなどのリソース制約物(resource restriction)は、加速された照会パフォーマンスを強化するために、アクセラレータによる高度に最適化されたリソース使用を要求する。多くの場合、アクセラレータによって使用されるシステム・ハードウェアにテーブル・データを無制限にオフロードすると、システム・リソースが必要以上に消費される。その結果として、テーブル・データの知的な(intelligent)テーブル・ロードおよびアンロードは、ワークロードまたは照会パフォーマンスを向上させる。
現在、ワークロード・チューナ(workload tuner)が、アクセラレータにオフロードしたときにどのテーブルおよびデータのパフォーマンスが向上するかについての示唆を提供する。しかしながら、ワークロード・チューナは、照会統計量だけに基づいて推奨を提供する。言い換えると、ワークロード・チューナは、検討中の照会ワークロードがどのように導き出されるのかに依存する。ワークロードの部分である照会がステートメント・キャッシュ(Statement cache)から来ている場合、DBMS上で照会をランすることの実コストは既知である。
しかしながら、ワークロード・チューナが、アクセラレータにオフロードするテーブルを示唆することによって照会チューニング洞察を提案するときには、データをアクセラレータにロードするための実CPU使用コストは考慮されない。時間が経過して、多数のテーブルのデータがアクセラレータにロードされると、アクセラレータによって利用されるメモリ・リソースも使用しつくされ、パフォーマンスは低下する。
例示的な実施形態は、ソースDBMSからオフロードされるワークロードによって参照されているそれぞれのテーブルにデータをロードすることのCPU使用コストを考慮することによって、ターゲットDBMS(すなわちアクセラレータ)のテーブルにデータをロードする。したがって、例示的な実施形態は、それぞれのテーブルを参照しているワークロード/照会をオフロードすることのCPU節減コストと、ターゲットDBMS上のそれぞれのテーブルにデータをロードすることによって生じるCPUコストとを比較することによって、それぞれのテーブルの「コスト/ベネフィット・バランス」を計算する。さらに、例示的な実施形態は、ターゲットDBMSによって使用されていないかまたは最小限にしか使用されていないデータ(すなわちテーブル)を削除することを推奨する推奨を提供する。結果的に、例示的な実施形態は、ターゲットDBMSによって使用されるメモリおよびCPUリソースを最適化して、加速されたアナリティカル・ワークロード/照会パフォーマンスを増大させることによって、システム・リソース最適化を提供する。
例示的な実施形態は、ソースDBMSから、ソースDBMSデータ・セットのサブセットを含むターゲットDBMSへのデータ・ロード戦略を最適化するためのコンピュータ実施方法を提供する。ターゲットDBMSは、このデータのサブセットを使用して、1つまたは複数のワークロード(例えばアナリティカル照会)をランする。例示的な実施形態は、ソースDBMSをヒットしているワークロードと、ソースDBMS上でワークロードをランすることに対応するコストと、ワークロードによって参照されているテーブルと、ワークロードによって参照されているテーブルであって、ターゲットDBMSにオフロードされるテーブルの資格に関する情報を収集する。例示的な実施形態は、ターゲットDBMSにオフロードされる資格を有するテーブルのサイズを取得する。さらに、例示的な実施形態は、ターゲットDBMSにオフロードされる資格を有するテーブルの変更率を評価する。例示的な実施形態は、ターゲットDBMSにオフロードされる資格を有するテーブルのサイズおよび変更率を使用して、データのサブセットをターゲットDBMSにロードすることに対応する全CPUコストと、1つまたは複数のロード戦略からなるロード戦略のセットに基づいてターゲットDBMS上で1つまたは複数のワークロードを実行することに対応するワークロード節減コストとを決定する。特定のテーブルに対する決定されたワークロード節減コストは、その特定のテーブルに対応する予測される将来のワークロードを含む。例示的な実施形態は、全CPUコストを、ロード戦略のセットの中のそれぞれのロード戦略のワークロード節減コストと比較する。例示的な実施形態は、全コストをそれぞれのロード戦略のワークロード節減コストと比較したことに基づいて、ロード戦略のセットから最適なロード戦略を選択する。例示的な実施形態は、1つまたは複数のワークロードの加速された実行のために、選択した最適なロード戦略に従って、ターゲットDBMSへのデータのサブセットのロードを自動的に実施する。
さらに、例示的な実施形態は、ターゲットDBMSに対応するデータ削除戦略を最適化するためのコンピュータ実施方法であって、その結果、加速されたワークロード・パフォーマンスを提供するコンピュータ実施方法を提供する。例示的な実施形態は、ターゲットDBMS上でランしているワークロードのセットと、ターゲットDBMS上でそれぞれのワークロードをランすることに関連したコストとに関する情報を収集する。例示的な実施形態は、ターゲットDBMS内のテーブルのセットの中のそれぞれのテーブルのサイズと、セットの中のそれぞれのテーブルに関連した参照カウントであり、ワークロードのセットによる使用に基づく参照カウントとを取得する。例示的な実施形態は、ターゲットDBMS内のテーブルのセットの中のそれぞれのテーブルについて、ワークロードのセットによるテーブル・アクセスの頻度を評価する。例示的な実施形態は、ワークロードのセットによって参照されているそれぞれのテーブルに関連したテーブル・アクセスの頻度を、アクセスの頻度が最小限またはゼロであるテーブルをターゲットDBMSから削除することに関連したメモリおよびCPU節減コストにマップして、テーブル削除候補を識別する。例示的な実施形態は、マップに基づいて、識別されたテーブル削除候補をターゲットDBMSから自動的に削除する。
アクセラレータ(すなわちターゲットDBMS)は、特定のタイプのデータベース・ワークロード(例えばアナリティカル照会)を迅速に実行するのに特に適している。例示的な実施形態は、ワークロード(例えば照会)パフォーマンスを増大させるために、データの全部または一部をソース・データベースからターゲット・データベースにコピーする。例示的な実施形態は、ソース・データベースが受け取った照会をソース・データベース内で実行するのか、またはターゲット・データベースにオフロードするのかを動的に判定する。例示的な実施形態がターゲット・データベースに照会をオフロードするか否かは、ワークロード(例えばアナリティカル照会ワークロード)のタイプに依存する。ソース・データベース内の元のデータテーブル上で実行されるよりも、ターゲット・データベース上で実行された方がワークロードが速く実行されると例示的な実施形態が判定または予測したときに、例示的な実施形態は、ターゲット・データベースにワークロードをディスパッチする。したがって、例示的な実施形態は、ターゲット・データベースを利用して、ワークロード/照会の実行を加速する。
ターゲット・データベースにデータをロードおよびアンロードする以前の方法は常に手動プロセスであった。そのプロセスは、データベース管理者の最良の判断に委ねられていた。いくつかの最良の実施は示されたが、以前の方法は、データのロードおよびアンロード戦略上の判断を実行する際にデータベース管理者をサポートする手段を有していなかった。
ソースDBMS内のデータの編成はテーブル間で異なることがある。一部のテーブルはパーティション化されていないテーブルであり、一部のテーブルは、範囲またはグロース(growth)によってパーティション化されている。これらのテーブルの中のデータの変更率も、テーブルの目的に基づいて大幅に変動する。したがって、最適なロード戦略を推奨および実施するプロセスが求められている。
例示的な実施形態は、ソースDBMS上ではなくターゲットDBMS上でワークロードをランすることによるワークロード・コストの節減と、ターゲットDBMS上で参照されているテーブルへのデータの最初のロードに対応するCPUコストとに関する情報を受け入れる。次いで、例示的な実施形態は、これらのテーブルの中のデータの変更率を決定し、所与のテーブルに対して使用することができる異なるロード戦略に関連したCPUコストを計算する。この情報が受け入れられ、計算された後、例示的な実施形態は、ターゲットDBMS上でのワークロード・パフォーマンス節減およびターゲットDBMSのテーブルにデータをロードすることに関連したコストを含む実コストと、関連したデータ・ロード・オーバーヘッドを最小化する理論的根拠を含む推奨された/選択されたロード戦略とを、ユーザ(例えばデータベース管理者)に提示する。例示的な実施形態はさらに、ターゲットDBMS上で、推奨された/選択されたロード戦略を使用したロード操作を自動的に実行する。
例示的な実施形態は、例えばパラメータが「はい」にセットされているときに、ターゲットDBMS上でワークロードをランすることによるワークロード・コストの節減に関するデータを収集する。特定のワークロードが与えられると、例示的な実施形態は、ソースDBMS上でワークロードを直接にランすることのワークロード・コストを決定し、ターゲットDBMS上でワークロードをランするとワークロード・コストが低減すると例示的な実施形態が判定したことに応答して、ターゲットDBMS上でワークロードをランすることを推奨する。したがって、例示的な実施形態は、ワークロード節減コストに基づいて推奨を生成する。例示的な実施形態は、ワークロードによって参照されているそれぞれのテーブルのサイズとターゲットDBMSにロードする資格とに関する情報を、ソースDBMSカタログ・テーブルから取り出す。
ターゲットDBMS上のデータを同期させるために例示的な実施形態が実行することができる2つのタイプのデータ・ロード/リフレッシュ戦略、すなわちアンロード・ベースのリフレッシュ戦略および増分更新戦略がある。アンロード・ベースのリフレッシュ戦略は、特定の時点においてテーブル・パーティションおよびテーブル全体を更新する。アンロード・ベースのリフレッシュ機能は、ソースDBMS上のデータのスナップショットを捕捉し、そのデータをターゲットDBMSに転送する。増分更新戦略は、ソースDBMSログに記録された変更を適用することによって、ターゲットDBMS上のデータを絶えず更新する。ソースDBMSからターゲットDBMSのテーブルにデータをロードすることに関連した全CPUコストは、選択されたロード戦略に基づいて変動する。
増分更新またはアンロード・ベースのリフレッシュにおけるデータ同期のためのCPUコストは、ターゲットDBMSから転送されるデータの全サイズに依存する。増分更新の場合、転送されるデータの全サイズは、ソースDBMS内のテーブルに適用されたバイトの変化の正味のボリュームである。アンロード・ベースのリフレッシュでは、パーティション全体だけをリフレッシュすることができるため、転送されるデータの全サイズが、変更したパーティションの数およびサイズに依存する。増分更新機能は、ソースDBMSサブシステム全体のログを読み取るため、CPUコストの推定値は、このサブシステムのログに記録されたアクティビティ全体に基づいていなければならない。範囲内変化と範囲外変化が識別されなければならない。範囲内変化は、ターゲットDBMS上の増分更新されたテーブルに関するログ・アクティビティを示し、範囲外変化は他の全てのアクティビティを示す。アンロード・ベースのリフレッシュを使用したデータ・ロードのCPUコストは、変更された行の数および主題テーブルの平均行長さの関数である。増分更新では、ソースDBMSを走査する必要があるときに、データ・リフレッシュのCPUコストが、主題テーブルの平均行長さ、挿入、更新および削除の数、ならびに範囲外変更をフィルタリングすることに関連した時間の関数である。
現在、ユーザは、参照されている検討中のそれぞれのテーブルを転送するためのステップを計算し、手動で実行している。これは、時間がかかり、エラーを生じやすく、したがってこの現行のプロセスを最適でないものにする。このことは、多数の因子の計算を自動化するための論理を含め、結果を統合して具体的なコスト・データおよび推奨を生成することによって例示的な実施形態が考慮し、対処する問題の一部である。さらに、例示的な実施形態は、生成された推奨に基づいて自動的に行動をとる能力を有する。
次に図3〜4を参照すると、例示的な実施形態に基づく、最初にテーブル・データをロードするためのプロセスを示す流れ図が示されている。このプロセスでは、ターゲットDBMS上でワークロード/照会をランすることによるワークロード/照会コスト節減が使用可能であるが、ターゲットDBMS上でワークロード/照会がランすることを可能にするのに必要なテーブル・データはまだ使用可能ではない。図3〜4に示されたプロセスは、例えば図1のオフロード・マネージャ・サーバ108または図2のデータ処理システム200などのコンピュータ内で実施することができる。
このプロセスは、コンピュータが、ソースDBMSから、ソースDBMS上でランしているワークロードと、ソースDBMS上でワークロードをランすることに関連したコストとに関する情報を収集する(ステップ302)ときに始まる。これは、ソースDBMSに対するワークロードの実行計画を生成することによって実行される。ソースDBMSは、例えば図1のソースDBMSサーバ104であってもよい。その後、コンピュータは、収集した情報を使用して、ワークロードによって参照されているテーブルのセットを識別する(ステップ304)。
続いて、コンピュータは、テーブルのセットからテーブルを選択する(ステップ306)。コンピュータは、選択したテーブルがターゲットDBMS内に位置するかどうかに関する判定を実行する(ステップ308)。ターゲットDBMSは、例えば図1のターゲットDBMSサーバ106であってもよい。選択したテーブルがターゲットDBMS内に位置するとコンピュータが判定した場合、ステップ308の「はい」出力に進み、プロセスは、図5のステップ410に進む。選択したテーブルがターゲットDBMS内に位置しないとコンピュータが判定した場合、ステップ308の「いいえ」出力に進み、コンピュータは、ソースDBMSのカタログ・テーブルを参照することにより、選択したテーブルに最初にロードするデータ量を決定する(ステップ310)。
さらに、コンピュータは、選択したテーブルにこのデータ量をロードすることのCPUコスト値を計算する(ステップ312)。コンピュータはさらに、計算したCPUコスト値の分だけCPUコスト・カウンタを増分する(ステップ314)。その後、コンピュータは、テーブルのセットの中に別のテーブルが存在するかどうかに関する判定を実行する(ステップ316)。テーブルのセットの中に別のテーブルが存在するとコンピュータが判定した場合、ステップ316の「はい」出力に進み、プロセスはステップ306に戻り、コンピュータは、テーブルのセットから別のテーブルを選択する。テーブルのセットの中に別のテーブルが存在しないとコンピュータが判定した場合、ステップ316の「いいえ」出力に進み、コンピュータは、ターゲットDBMSにデータをロードすることの全CPUコストを、CPUコスト・カウンタに基づいて決定する(ステップ318)。
コンピュータは、ターゲットDBMSにデータをロードすることの全CPUコストを、ターゲットDBMS上でワークロードをランすることのワークロード節減コストと比較する(ステップ320)。さらに、コンピュータは、ターゲットDBMSにテーブル・データをロードすることによる将来のワークロード節減コストを考慮する。コンピュータが全CPUコストをワークロード節減コストと比較したことに応答して、コンピュータは、全CPUコストがワークロード節減コストよりも大きいかどうかに関する判定を実行する(ステップ322)。全CPUコストがワークロード節減コストよりも大きいとコンピュータが判定した場合、ステップ322の「はい」出力に進み、その後、プロセスは終了となる。全CPUコストがワークロード節減コストよりも小さいとコンピュータが判定した場合、ステップ322の「いいえ」出力に進み、コンピュータは、ターゲットDBMSのテーブルにデータをロードするよう推奨する推奨ロード戦略を生成する(ステップ324)。推奨ロード戦略を生成するプロセスについては、下記の図10の説明においてより詳細に説明する。
さらに、コンピュータは、ターゲットDBMS上の既にロードされたテーブルを削除することができるかどうかに関する判定を実行する(ステップ326)。ターゲットDBMS上の既にロードされたテーブルを削除することができるとコンピュータが判定した場合、ステップ326の「はい」出力に進み、プロセスは、図9のステップ602に進む。ターゲットDBMS上の既にロードされたテーブルを削除することができないとコンピュータが判定した場合、ステップ326の「いいえ」出力に進み、コンピュータは、推奨ロード戦略内のテーブルに対応するリアルタイム統計データを収集して、テーブルの更新パターンを決定する(ステップ328)。
その後、コンピュータは、推奨ロード戦略内のテーブルが、収集したリアルタイム統計データに基づく増分更新の資格を有するかどうかに関する判定を実行する(ステップ330)。推奨ロード戦略内のテーブルが、収集したリアルタイム統計データに基づく増分更新の資格を有していないとコンピュータが判定した場合、ステップ330の「いいえ」出力に進み、コンピュータは、ターゲットDBMS上での増分更新の資格を有していない推奨ロード戦略内のテーブルのアンロード・ベースのリフレッシュを実行する(ステップ332)。推奨ロード戦略内のテーブルが、収集したリアルタイム統計データに基づく増分更新の資格を有するとコンピュータが判定した場合、ステップ330の「はい」出力に進み、コンピュータは、ターゲットDBMS上での増分更新の資格を有する推奨ロード戦略内のテーブルの増分更新を使用可能にする(ステップ334)。さらに、コンピュータは、レビュー(review)のため、推奨ロード戦略を理論的根拠(rationale)とともにユーザに送信する(ステップ336)。その後、プロセスは終了となる。
次に図5〜6を参照すると、例示的な実施形態に基づく、パーティション化されたテーブルのデータをリフレッシュするためのプロセスを示す流れ図が示されている。このプロセスでは、ターゲットDBMS上でワークロードをランすることによるワークロード節減コストが使用可能であり、ターゲットDBMS上でワークロードをランするために必要なテーブル・データをリフレッシュする必要がある。図5〜6に示されたプロセスは、例えば図1のオフロード・マネージャ・サーバ108または図2のデータ処理システム200などのコンピュータ内で実施することができる。
このプロセスは、コンピュータが、ソースDBMSから、ソースDBMS上でランしているワークロードと、ソースDBMS上でワークロードをランすることに関連したコストとに関する情報を収集する(ステップ402)ときに始まる。コンピュータは、収集した情報を使用して、ワークロードによって参照されているテーブルのセットを識別する(ステップ404)。コンピュータは、テーブルのセットからテーブルを選択する(ステップ406)。
コンピュータは、選択したテーブルがターゲットDBMS内に位置するかどうかに関する判定を実行する(ステップ408)。選択したテーブルがターゲットDBMS内に位置しないとコンピュータが判定した場合、ステップ408の「いいえ」出力に進み、プロセスは、図3のステップ310に戻る。選択したテーブルがターゲットDBMS内に位置するとコンピュータが判定した場合、ステップ408の「はい」出力に進み、コンピュータは、選択したテーブル上で増分更新が使用可能であるかどうかに関する判定を実行する(ステップ410)。選択したテーブル上で増分更新が使用可能であるとコンピュータが判定した場合、ステップ410の「はい」出力に進み、プロセスは、図7のステップ512に進む。選択したテーブル上で増分更新が使用可能でないとコンピュータが判定した場合、ステップ410の「いいえ」出力に進み、コンピュータは、選択したテーブルがパーティション化されているかどうかに関する判定を実行する(ステップ412)。
選択したテーブルはパーティション化されているとコンピュータが判定した場合、ステップ412の「はい」出力に進み、コンピュータは、選択したテーブルのパーティション・リロードのCPUコスト値を計算する(ステップ414)。コンピュータは、例えばSYSPROC.ACCEL_LOAD_TABLESに記憶された手順を利用して、以前にテーブル・データがターゲットDBMSにロードされたときの最後のロード/リフレッシュ以降にどのパーティション化が変更されたのかを識別することができる。その後、プロセスはステップ418に進む。選択したテーブルはパーティション化されていないとコンピュータが判定した場合、ステップ412の「いいえ」出力に進み、コンピュータは、選択したテーブルの全体をリロードすることのCPUコスト値を計算する(ステップ416)。
その後、コンピュータは、計算したCPUコスト値の分だけCPUコスト・カウンタを増分する(ステップ418)。さらに、コンピュータは、テーブルのセットの中に別のテーブルが存在するかどうかに関する判定を実行する(ステップ420)。テーブルのセットの中に別のテーブルが存在するとコンピュータが判定した場合、ステップ420の「はい」出力に進み、プロセスはステップ406に戻り、コンピュータは、テーブルのセットの中の別のテーブルを選択する。テーブルのセットの中に別のテーブルが存在しないとコンピュータが判定した場合、ステップ420の「いいえ」出力に進み、コンピュータは、ターゲットDBMSのテーブルにデータをリロードすることの全CPUコストを、CPUコスト・カウンタに基づいて決定する(ステップ422)。
コンピュータは、ターゲットDBMSのテーブルにデータをリロードすることの全CPUコストを、ターゲットDBMS上でワークロードをランすることのワークロード節減コストと比較する(ステップ424)。コンピュータが全CPUコストをワークロード節減コストと比較したことに応答して、コンピュータは、全CPUコストがワークロード節減コストよりも大きいかどうかに関する判定を実行する(ステップ426)。全CPUコストがワークロード節減コストよりも大きいとコンピュータが判定した場合、ステップ426の「はい」出力に進み、その後、プロセスは終了となる。全CPUコストがワークロード節減コストよりも小さいとコンピュータが判定した場合、ステップ426の「いいえ」出力に進み、コンピュータは、ターゲットDBMSのテーブルにデータをリロードするよう推奨する推奨ロード戦略を生成する(ステップ428)。
さらに、コンピュータは、推奨ロード戦略を自動的に実行する(ステップ430)。さらに、コンピュータは、ターゲットDBMS上の既にロードされたテーブルを削除することができるかどうかに関する判定を実行する(ステップ432)。ターゲットDBMS上の既にロードされたテーブルを削除することができるとコンピュータが判定した場合、ステップ432の「はい」出力に進み、プロセスは、図9のステップ602に進む。ターゲットDBMS上の既にロードされたテーブルを削除することができないとコンピュータが判定した場合、ステップ432の「いいえ」出力に進み、プロセスはその後、終了となる。
次に図7〜8を参照すると、例示的な実施形態に基づく、テーブル・データの増分更新に関して使用可能にされたテーブルを評価するためのプロセスを示す流れ図が示されている。このプロセスでは、ターゲットDBMS上でワークロードをランすることによるワークロード節減コストが使用可能であり、さらに、テーブルの増分更新が使用可能にされているため、ターゲットDBMS上でワークロードをランするために必要なテーブル・データが使用可能であり、最新(current)である。図7〜8に示されたプロセスは、例えば図1のオフロード・マネージャ・サーバ108または図2のデータ処理システム200などのコンピュータ内で実施することができる。
このプロセスは、コンピュータが、ソースDBMSから、ソースDBMS上でランしているワークロードと、ソースDBMS上でワークロードをランすることに関連したコストとに関する情報を収集する(ステップ502)ときに始まる。コンピュータは、収集した情報を使用して、ワークロードによって参照されているテーブルのセットを識別する(ステップ504)。コンピュータは、テーブルのセットからテーブルを選択する(ステップ506)。
コンピュータは、選択したテーブルがターゲットDBMS内に位置するかどうかに関する判定を実行する(ステップ508)。選択したテーブルがターゲットDBMS内に位置しないとコンピュータが判定した場合、ステップ508の「いいえ」出力に進み、プロセスは、図3のステップ310に戻る。選択したテーブルがターゲットDBMS内に位置するとコンピュータが判定した場合、ステップ508の「はい」出力に進み、コンピュータは、選択したテーブル上で増分更新が使用可能であるかどうかに関する判定を実行する(ステップ510)。
選択したテーブル上で増分更新が使用可能でないとコンピュータが判定した場合、ステップ510の「いいえ」出力に進み、プロセスは、図5のステップ412に戻る。選択したテーブル上で増分更新が使用可能であるとコンピュータが判定した場合、ステップ510の「はい」出力に進み、コンピュータは、選択したテーブルに対応するリアルタイム統計データを収集する(ステップ512)。その後、コンピュータは、選択したテーブルが現在もなお、収集したリアルタイム統計データに基づく増分更新の資格を有しているかどうかに関する判定を実行する(ステップ514)。
選択したテーブルが現在は、収集したリアルタイム統計データに基づく増分更新の資格を有していないとコンピュータが判定した場合、ステップ514の「いいえ」出力に進み、コンピュータは、選択したテーブルの増分更新を停止する(ステップ516)。その後、プロセスはステップ520に進む。選択したテーブルが現在もなお、収集したリアルタイム統計データに基づく増分更新の資格を有しているとコンピュータが判定した場合、ステップ514の「はい」出力に進み、コンピュータは、選択したテーブルの増分更新を継続する(ステップ518)。
コンピュータは、選択したテーブルの現在までの増分更新に対する現在のCPUコスト値を計算する(ステップ520)。さらに、コンピュータは、計算した現在のCPUコスト値の分だけCPUコスト・カウンタを増分する(ステップ522)。さらに、コンピュータは、テーブルのセットの中に別のテーブルが存在するかどうかに関する判定を実行する(ステップ524)。
テーブルのセットの中に別のテーブルが存在するとコンピュータが判定した場合、ステップ524の「はい」出力に進み、プロセスはステップ506に戻り、コンピュータは、テーブルのセットの中の別のテーブルを選択する。テーブルのセットの中に別のテーブルが存在しないとコンピュータが判定した場合、ステップ524の「いいえ」出力に進み、コンピュータは、ターゲットDBMS上のテーブルの増分更新の全CPUコストを、CPUコスト・カウンタに基づいて判定する(ステップ526)。
コンピュータは、ターゲットDBMS上のテーブルの増分更新の全CPUコストを、ターゲットDBMS上でワークロードをランすることのワークロード節減コストと比較する(ステップ528)。コンピュータが全CPUコストをワークロード節減コストと比較したことに応答して、コンピュータは、全CPUコストがワークロード節減コストよりも大きいかどうかに関する判定を実行する(ステップ530)。全CPUコストがワークロード節減コストよりも大きいとコンピュータが判定した場合、ステップ530の「はい」出力に進み、コンピュータは、ターゲットDBMS上のテーブルの増分更新を停止するよう推奨する推奨を生成する(ステップ532)。その後、プロセスはステップ536に進む。全CPUコストがワークロード節減コストよりも小さいとコンピュータが判定した場合、ステップ530の「いいえ」出力に進み、コンピュータは、ターゲットDBMS上のテーブルの増分更新を継続するよう推奨する推奨を生成する(ステップ534)。さらに、コンピュータは、推奨を自動的に実行する(ステップ536)。その後、プロセスは終了となる。
次に図9を参照すると、例示的な実施形態に基づく、参照されていないまたは最小限にしか参照されていないテーブルを削除するためのプロセスを示す流れ図が示されている。このプロセスでは、ワークロード加速を使用可能にするためにターゲットDBMSにロードする必要があるテーブル・データに関する情報が使用可能であり、システム負荷を維持するためにターゲットDBMSから削除することができる候補テーブルに関してターゲットDBMSをチェックする必要がある。図9に示されたプロセスは、例えば図1のオフロード・マネージャ・サーバ108または図2のデータ処理システム200などのコンピュータ内で実施することができる。
このプロセスは、コンピュータが、ターゲットDBMSにロードされたテーブルを、それぞれのテーブルに対応するワークロード・ヒット数に関して評価する(ステップ602)ときに始まる。コンピュータがテーブルを評価したことに応答して、コンピュータは、いずれかのテーブルが、しきいワークロード・ヒット数よりも小さい対応するワークロード・ヒット数を有するかどうかに関する判定を実行する(ステップ604)。どのテーブルも、しきいワークロード・ヒット数よりも小さい対応するワークロード・ヒット数を有していないとコンピュータが判定した場合、ステップ604の「いいえ」出力に進み、その後、プロセスは終了となる。1つまたは複数のテーブルが、しきいワークロード・ヒット数よりも小さい対応するワークロード・ヒット数を有するテーブルのリストを生成するとコンピュータが判定した場合、ステップ604の「はい」出力に進み、コンピュータは、しきいワークロード・ヒット数よりも小さい対応するワークロード・ヒット数を有するテーブルのリストを生成する(ステップ606)。
コンピュータは、テーブルのリストからテーブルを選択する(ステップ608)。コンピュータは、選択したテーブルをターゲットDBMSから削除することができるかどうかに関する判定を実行する(ステップ610)。選択したテーブルをターゲットDBMSから削除することはできないとコンピュータが判定した場合、ステップ610の「いいえ」出力に進み、コンピュータは、選択したテーブルをターゲットDBMS上に維持する(ステップ612)。その後、プロセスはステップ618に進む。選択したテーブルをターゲットDBMSから削除することができるとコンピュータが判定した場合、ステップ610の「はい」出力に進み、コンピュータは、選択したテーブルをテーブル削除リストに追加する(ステップ614)。さらに、コンピュータは、選択したテーブルをターゲットDBMSから削除することによるメモリおよびCPU節減コストを計算する(ステップ616)。
コンピュータは、テーブルのリストの中に別のテーブルが存在するかどうかに関する判定を実行する(ステップ618)。テーブルのリストの中に別のテーブルが存在するとコンピュータが判定した場合、ステップ618の「はい」出力に進み、プロセスはステップ608に戻り、コンピュータは、テーブルのリストの中の別のテーブルを選択する。テーブルのリストの中に別のテーブルが存在しないとコンピュータが判定した場合、ステップ618の「いいえ」出力に進み、コンピュータは、テーブル削除リストの中のテーブルをターゲットDBMSから削除することによる全メモリおよびCPU節減コストを計算する(ステップ620)。
さらに、コンピュータは、全メモリおよびCPU節減コストを用いて、ターゲットDBMSに対するテーブル削除レコメンデーションを生成する(ステップ622)。さらに、コンピュータは、テーブル削除レコメンデーションを自動的に実行する(ステップ624)。その後、プロセスは終了となる。
次に図10を参照すると、例示的な実施形態に基づく、最適なロード戦略を選択するためのプロセスを示す流れ図が示されている。図10に示されたプロセスは、例えば図1のオフロード・マネージャ・サーバ108または図2のデータ処理システム200などのコンピュータ内で実施することができる。
このプロセスは、コンピュータが、ソースDBMSをヒットしているワークロードと、ソースDBMS上でワークロードをランすることに対応するコストと、ワークロードによって参照されているテーブルと、ワークロードによって参照されているテーブルであって、ターゲットDBMSにオフロードされるテーブルの資格に関する情報を収集する(ステップ702)ときに始まる。コンピュータはさらに、ターゲットDBMSにオフロードされる資格を有するテーブルのサイズを取得する(ステップ704)。さらに、コンピュータは、ターゲットDBMSにオフロードされる資格を有するテーブルの変更率を評価する(ステップ706)。
ターゲットDBMSにオフロードされる資格を有するテーブルのサイズおよび変更率を使用して、コンピュータは、データのサブセットをターゲットDBMSにロードすることに対応する全CPUコストと、1つまたは複数のロード戦略からなるロード戦略のセットに基づいてターゲットDBMS上で1つまたは複数のワークロードを実行することに対応するワークロード節減コストとを決定する(ステップ708)。コンピュータは、全CPUコストを、ロード戦略のセットの中のそれぞれのロード戦略のワークロード節減コストと比較する(ステップ710)。
コンピュータは、全CPUコストをそれぞれのロード戦略のワークロード節減コストと比較したことに基づいて、ロード戦略のセットから最適なロード戦略を選択する(ステップ712)。次いで、コンピュータは、1つまたは複数のワークロードの加速された実行のために、選択した最適なロード戦略に従って、ターゲットDBMSへのデータのサブセットのロードを自動的に実施する(ステップ714)。その後、プロセスは終了となる。
次に図11を参照すると、例示的な実施形態に基づく、テーブル・アクセス頻度をメモリおよびCPU節減コストにマップするためのプロセスを示す流れ図が示されている。図11に示されたプロセスは、例えば図1のオフロード・マネージャ・サーバ108または図2のデータ処理システム200などのコンピュータ内で実施することができる。
このプロセスは、コンピュータが、ターゲットDBMS上でランしているワークロードのセットと、ターゲットDBMS上でそれぞれのワークロードをランすることに関連したコストとに関する情報を収集する(ステップ802)ときに始まる。さらに、コンピュータは、ターゲットDBMS内のテーブルのセットのサイズと、セットの中のそれぞれのテーブルに関連した参照カウントであり、ワークロードのセットによる使用に基づく参照カウントとを取得する(ステップ804)。さらに、コンピュータは、ターゲットDBMS内のテーブルのセットの中のそれぞれのテーブルについて、ワークロードのセットによるテーブル・アクセスの頻度を評価する(ステップ806)。
その後、コンピュータは、ワークロードのセットによって参照されているそれぞれのテーブルに関連したテーブル・アクセスの頻度を、アクセスの頻度が最小限またはゼロであるテーブルをターゲットDBMSから削除することに関連したメモリおよびCPU節減コストにマップして、テーブル削除候補を識別する(ステップ808)。次いで、コンピュータは、メモリ使用を低減させ、ターゲットDBMS上でのワークロード・パフォーマンスを増大させるために、このマップに基づいて、識別されたテーブル削除候補をターゲットDBMSから自動的に削除する(ステップ810)。その後、プロセスは終了となる。
このように、本発明の例示的な実施形態は、ターゲット・データベース管理システムによって使用されるコンピュータ・メモリおよび中央処理ユニット・リソースを最適化してワークロード・パフォーマンスを増大させるための、コンピュータ実施方法、コンピュータ・システム、およびコンピュータ・プログラム製品を提供する。本発明のさまざまな実施形態の説明は、例示のために提示されたものであり、網羅的であることも、開示された実施形態に限定されることも意図されていない。当業者には、記載された実施形態の趣旨を逸脱しない多くの修正および変更が明白となろう。本明細書で使用されている用語は、実施形態の原理、実際的な用途または市場に出ている技術に優る技術的改良を最もよく説明するため、または本明細書に開示された実施形態を当業者が理解することを可能にするために選択されたものである。

Claims (28)

  1. ワークロード・パフォーマンスを増大させ、リソース使用を低減させるために、ソース・データベース管理システム(DBMS)からターゲットDBMSにデータのセットをロードするためのコンピュータ実施方法であって、前記コンピュータ実施方法が、
    コンピュータによって、前記ターゲットDBMSにオフロードされる資格を有するテーブルのサイズおよび変更率を使用して、前記データのセットを前記ターゲットDBMSにロードすることに対応する全中央プロセッサ・ユニット(CPU)コストと、1つまたは複数のロード戦略からなるロード戦略のセットに基づいて前記ターゲットDBMS上で1つまたは複数のワークロードを実行することに対応するワークロード節減コストとを決定すること、
    前記コンピュータによって、前記全CPUコストを、前記ロード戦略のセットの中のそれぞれのロード戦略の前記ワークロード節減コストと比較すること、
    前記コンピュータによって、前記全CPUコストをそれぞれのロード戦略の前記ワークロード節減コストと比較したことに基づいて、前記ロード戦略のセットから最適なロード戦略を選択すること、ならびに
    ワークロード・パフォーマンスを増大させ、CPUコストを低減させる前記1つまたは複数のワークロードの加速された実行のために、前記コンピュータによって、選択した前記最適なロード戦略に従って、前記ソースDBMSから前記ターゲットDBMSに前記データのセットを自動的にロードすること
    を含む、コンピュータ実施方法。
  2. 前記コンピュータによって、前記ソースDBMSをヒットしているワークロードと、前記ソースDBMS上で前記ワークロードをランすることに対応するコストと、前記ワークロードによって参照されているテーブルと、前記ワークロードによって参照されている前記テーブルであって、前記ターゲットDBMSにオフロードされる前記テーブルの資格に関する情報を収集すること、
    前記コンピュータによって、前記ターゲットDBMSにオフロードされる資格を有するそれぞれの前記テーブルの前記サイズを取得すること、および
    前記コンピュータによって、前記ターゲットDBMSにオフロードされる資格を有するそれぞれの前記テーブルの前記変更率を評価すること
    をさらに含む、請求項1に記載のコンピュータ実施方法。
  3. 前記コンピュータによって、前記ターゲットDBMS上でランしているワークロードのセットと、前記ターゲットDBMS上でそれぞれのワークロードをランすることに関連したコストとに関する情報を収集すること、
    前記コンピュータによって、前記ターゲットDBMS内のテーブルのセットのサイズと、前記セットの中のそれぞれのテーブルに関連した参照カウントであり、前記ワークロードのセットによる使用に基づく前記参照カウントとを取得すること、
    前記コンピュータによって、前記ターゲットDBMS内の前記テーブルのセットの中のそれぞれのテーブルについて、前記ワークロードのセットによるテーブル・アクセスの頻度を評価すること、
    前記コンピュータによって、前記ワークロードのセットによって参照されているそれぞれのテーブルに関連したテーブル・アクセスの前記頻度を、アクセスの頻度が最小限またはゼロであるテーブルを前記ターゲットDBMSから削除することに関連したメモリおよびCPU節減コストにマップして、テーブル削除候補を識別すること、ならびに
    メモリ使用を低減させ、前記ターゲットDBMS上でのワークロード・パフォーマンスを増大させるために、前記コンピュータによって、前記マップに基づいて、識別された前記テーブル削除候補を前記ターゲットDBMSから自動的に削除すること
    をさらに含む、請求項1または2に記載のコンピュータ実施方法。
  4. 前記コンピュータによって、ソースDBMSから、前記ソースDBMS上でランしているワークロードと、前記ソースDBMS上で前記ワークロードをランすることに関連したコストとに関する情報を収集すること、
    前記コンピュータによって、収集した前記情報を使用して、前記ワークロードによって参照されているテーブルのセットを識別すること、
    前記コンピュータによって、前記テーブルのセットからテーブルを選択すること、および、
    前記コンピュータによって、選択した前記テーブルが前記ターゲットDBMS内に位置するかどうかを判定すること
    をさらに含む、請求項1に記載のコンピュータ実施方法。
  5. 選択した前記テーブルが前記ターゲットDBMS内に位置しないと前記コンピュータが判定したことに応答して、前記コンピュータによって、前記ソースDBMSのカタログ・テーブルを参照することにより、選択した前記テーブルにロードするデータ量を決定すること、
    前記コンピュータによって、選択した前記テーブルに前記データ量をロードすることのCPUコスト値を計算すること、および
    前記コンピュータによって、計算した前記CPUコスト値の分だけCPUコスト・カウンタを増分すること
    をさらに含む、請求項4に記載のコンピュータ実施方法。
  6. 前記コンピュータによって、前記ターゲットDBMS上の前記テーブルのセットにデータをロードすることの全CPUコストを、前記CPUコスト・カウンタに基づいて決定すること、
    前記コンピュータによって、前記ターゲットDBMS上の前記テーブルのセットに前記データをロードすることの前記全CPUコストを、前記ターゲットDBMS上で前記ワークロードをランすることのワークロード節減コストと比較すること、
    前記コンピュータが前記全CPUコストを前記ワークロード節減コストと比較したことに応答して、前記コンピュータによって、前記全CPUコストが前記ワークロード節減コストよりも大きいかどうかを判定すること、および
    前記全CPUコストが前記ワークロード節減コストよりも小さいと前記コンピュータが判定したことに応答して、前記コンピュータによって、前記ターゲットDBMS内の前記テーブルのセットに前記データをロードするよう推奨する推奨ロード戦略を生成すること
    をさらに含む、請求項5に記載のコンピュータ実施方法。
  7. 選択した前記テーブルが前記ターゲットDBMS内に位置すると前記コンピュータが判定したことに応答して、前記コンピュータによって、選択した前記テーブル上で増分更新が使用可能であるかどうかを判定すること、
    選択した前記テーブル上で増分更新が使用可能でないと前記コンピュータが判定したことに応答して、前記コンピュータによって、選択した前記テーブルがパーティション化されているかどうかを判定すること、
    選択した前記テーブルがパーティション化されていると前記コンピュータが判定したことに応答して、前記コンピュータによって、選択した前記テーブルのパーティション・リロードのCPUコスト値を計算すること、および
    前記コンピュータによって、選択した前記テーブルの前記パーティション・リロードの計算した前記CPUコスト値の分だけCPUコスト・カウンタを増分すること
    をさらに含む、請求項4に記載のコンピュータ実施方法。
  8. 選択した前記テーブルがパーティション化されていないと前記コンピュータが判定したことに応答して、前記コンピュータによって、選択した前記テーブルの全体をリロードすることのCPUコスト値を計算すること、および
    前記コンピュータによって、選択した前記テーブルの全体をリロードすることの計算した前記CPUコスト値の分だけ前記CPUコスト・カウンタを増分すること
    をさらに含む、請求項7に記載のコンピュータ実施方法。
  9. 選択した前記テーブル上で増分更新が使用可能であると前記コンピュータが判定したことに応答して、前記コンピュータによって、選択した前記テーブルに対応するリアルタイム統計データを収集すること、
    前記コンピュータによって、選択した前記テーブルが現在もなお、選択した前記テーブルに対応する収集した前記リアルタイム統計データに基づく増分更新の資格を有しているかどうかを判定すること、
    選択した前記テーブルが現在は、収集した前記リアルタイム統計学データに基づく増分更新の資格を有していないと前記コンピュータが判定したことに応答して、前記コンピュータによって、選択した前記テーブルの前記増分更新を停止すること、
    前記コンピュータによって、選択した前記テーブルの現在までの前記増分更新に対する現在のCPUコスト値を計算すること、および
    前記コンピュータによって、選択した前記テーブルの現在までの前記増分更新に対する計算した前記現在のCPUコスト値の分だけ前記CPUコスト・カウンタを増分すること
    をさらに含む、請求項7または8に記載のコンピュータ実施方法。
  10. 選択した前記テーブルが現在もなお、収集した前記リアルタイム統計学データに基づく増分更新の資格を有していると前記コンピュータが判定したことに応答して、前記コンピュータによって、選択した前記テーブルの前記増分更新を継続すること、
    前記コンピュータによって、選択した前記テーブルの現在までの前記増分更新に対する前記現在のCPUコスト値を計算すること、および
    前記コンピュータによって、選択した前記テーブルの現在までの前記増分更新に対する計算した前記現在のCPUコスト値の分だけ前記CPUコスト・カウンタを増分すること
    をさらに含む、請求項9に記載のコンピュータ実施方法。
  11. 前記コンピュータによって、前記ターゲットDBMSにロードされたテーブルを、それぞれのテーブルに対応するワークロード・ヒット数に関して評価すること、
    前記コンピュータが前記テーブルを評価したことに応答して、前記コンピュータによって、いずれかの前記テーブルが、しきいワークロード・ヒット数よりも小さい対応するワークロード・ヒット数を有するかどうかを判定すること、および
    前記テーブルのうちの1つまたは複数のテーブルが、前記しきいワークロード・ヒット数よりも小さい対応するワークロード・ヒット数を有すると前記コンピュータが判定したことに応答して、前記コンピュータによって、前記しきいワークロード・ヒット数よりも小さい対応するワークロード・ヒット数を有するテーブルのリストを生成すること
    をさらに含む、請求項1に記載のコンピュータ実施方法。
  12. 前記コンピュータによって、テーブル削除リストの中のテーブルを前記ターゲットDBMSから削除することによる全メモリおよびCPU節減コストを計算すること、
    前記コンピュータによって、前記全メモリおよびCPU節減コストを用いて、前記ターゲットDBMSに対するテーブル削除レコメンデーションを生成すること、ならびに
    前記コンピュータによって、前記テーブル削除レコメンデーションを自動的に実行すること
    をさらに含む、請求項11に記載のコンピュータ実施方法。
  13. 特定のテーブルに対する決定されたワークロード節減コストが、前記特定のテーブルの予測される将来の照会を含む、請求項1ないし12のいずれかに記載のコンピュータ実施方法。
  14. ワークロード・パフォーマンスを増大させ、リソース使用を低減させるために、ソース・データベース管理システム(DBMS)からターゲットDBMSにデータのセットをロードするためのコンピュータ・システムであって、前記コンピュータ・システムが、
    バス・システムと、
    前記バス・システムに接続されたストレージ・デバイスであり、プログラム命令を記憶した前記ストレージ・デバイスと、
    前記バス・システムに接続されたプロセッサと
    を備え、前記プロセッサが、前記プログラム命令を実行して、
    前記ターゲットDBMSにオフロードされる資格を有するテーブルのサイズおよび変更率を使用して、前記データのセットを前記ターゲットDBMSにロードすることに対応する全中央プロセッサ・ユニット(CPU)コストと、1つまたは複数のロード戦略からなるロード戦略のセットに基づいて前記ターゲットDBMS上で1つまたは複数のワークロードを実行することに対応するワークロード節減コストとを決定し、
    前記全CPUコストを、前記ロード戦略のセットの中のそれぞれのロード戦略の前記ワークロード節減コストと比較し、
    前記全CPUコストをそれぞれのロード戦略の前記ワークロード節減コストと比較したことに基づいて、前記ロード戦略のセットから最適なロード戦略を選択し、
    ワークロード・パフォーマンスを増大させ、CPUコストを低減させる前記1つまたは複数のワークロードの加速された実行のために、選択した前記最適なロード戦略に従って、前記ソースDBMSから前記ターゲットDBMSに前記データのセットを自動的にロードする、
    コンピュータ・システム。
  15. 前記プロセッサがさらに、前記プログラム命令を実行して、
    前記ソースDBMSをヒットしているワークロードと、前記ソースDBMS上で前記ワークロードをランすることに対応するコストと、前記ワークロードによって参照されているテーブルと、前記ワークロードによって参照されている前記テーブルであって、前記ターゲットDBMSにオフロードされる前記テーブルの資格に関する情報を収集し、
    前記ターゲットDBMSにオフロードされる資格を有するそれぞれの前記テーブルの前記サイズを取得し、
    前記ターゲットDBMSにオフロードされる資格を有するそれぞれの前記テーブルの前記変更率を評価する、
    請求項14に記載のコンピュータ・システム。
  16. 前記プロセッサがさらに、前記プログラム命令を実行して、
    前記ターゲットDBMS上でランしているワークロードのセットと、前記ターゲットDBMS上でそれぞれのワークロードをランすることに関連したコストとに関する情報を収集し、
    前記ターゲットDBMS内のテーブルのセットのサイズと、前記セットの中のそれぞれのテーブルに関連した参照カウントであり、前記ワークロードのセットによる使用に基づく前記参照カウントとを取得し、
    前記ターゲットDBMS内の前記テーブルのセットの中のそれぞれのテーブルについて、前記ワークロードのセットによるテーブル・アクセスの頻度を評価し、
    前記ワークロードのセットによって参照されているそれぞれのテーブルに関連したテーブル・アクセスの前記頻度を、アクセスの頻度が最小限またはゼロであるテーブルを前記ターゲットDBMSから削除することに関連したメモリおよびCPU節減コストにマップして、テーブル削除候補を識別し、
    メモリ使用を低減させ、前記ターゲットDBMS上でのワークロード・パフォーマンスを増大させるために、前記マップに基づいて、識別された前記テーブル削除候補を前記ターゲットDBMSから自動的に削除する、
    請求項14または15に記載のコンピュータ・システム。
  17. 前記プロセッサがさらに、前記プログラム命令を実行して、
    ソースDBMSから、前記ソースDBMS上でランしているワークロードと、前記ソースDBMS上で前記ワークロードをランすることに関連したコストとに関する情報を収集し、
    収集した前記情報を使用して、前記ワークロードによって参照されているテーブルのセットを識別し、
    前記テーブルのセットからテーブルを選択し、
    選択した前記テーブルが前記ターゲットDBMS内に位置するかどうかを判定する、
    請求項14に記載のコンピュータ・システム。
  18. 前記プロセッサがさらに、前記プログラム命令を実行して、
    選択した前記テーブルが前記ターゲットDBMS内に位置しないと前記コンピュータが判定したことに応答して、前記ソースDBMSのカタログ・テーブルを参照することにより、選択した前記テーブルにロードするデータ量を決定し、
    データの前記量を前記選択したテーブルにロードするためのCPUコスト値を計算し、
    選択した前記テーブルに前記データ量をロードすることのCPUコスト値を計算し、
    計算した前記CPUコスト値の分だけCPUコスト・カウンタを増分する、
    請求項17に記載のコンピュータ・システム。
  19. 前記プロセッサがさらに、前記プログラム命令を実行して、
    前記ターゲットDBMS上の前記テーブルのセットにデータをロードすることの全CPUコストを、前記CPUコスト・カウンタに基づいて決定し、
    前記ターゲットDBMS上の前記テーブルのセットに前記データをロードすることの前記全CPUコストを、前記ターゲットDBMS上で前記ワークロードをランすることのワークロード節減コストと比較し、
    前記コンピュータが前記全CPUコストを前記ワークロード節減コストと比較したことに応答して、前記全CPUコストが前記ワークロード節減コストよりも大きいかどうかを判定し、
    前記全CPUコストが前記ワークロード節減コストよりも小さいと前記コンピュータが判定したことに応答して、前記ターゲットDBMS内の前記テーブルのセットに前記データをロードするよう推奨する推奨ロード戦略を生成する、
    請求項18に記載のコンピュータ・システム。
  20. 前記プロセッサがさらに、前記プログラム命令を実行して、
    選択した前記テーブルが前記ターゲットDBMS内に位置すると前記コンピュータが判定したことに応答して、選択した前記テーブル上で増分更新が使用可能であるかどうかを判定し、
    選択した前記テーブル上で増分更新が使用可能でないと前記コンピュータが判定したことに応答して、選択した前記テーブルがパーティション化されているかどうかを判定し、
    選択した前記テーブルがパーティション化されていると前記コンピュータが判定したことに応答して、選択した前記テーブルのパーティション・リロードのCPUコスト値を計算し、
    選択した前記テーブルの前記パーティション・リロードの計算した前記CPUコスト値の分だけCPUコスト・カウンタを増分する、
    請求項17に記載のコンピュータ・システム。
  21. 前記プロセッサがさらに、前記プログラム命令を実行して、
    選択した前記テーブルがパーティション化されていないと前記コンピュータが判定したことに応答して、選択した前記テーブルの全体をリロードすることのCPUコスト値を計算し、
    選択した前記テーブルの全体をリロードすることの計算した前記CPUコスト値の分だけ前記CPUコスト・カウンタを増分する、
    請求項20に記載のコンピュータ・システム。
  22. 前記プロセッサがさらに、前記プログラム命令を実行して、
    選択した前記テーブル上で増分更新が使用可能であると前記コンピュータが判定したことに応答して、選択した前記テーブルに対応するリアルタイム統計データを収集し、
    選択した前記テーブルが現在もなお、選択した前記テーブルに対応する収集した前記リアルタイム統計データに基づく増分更新の資格を有しているかどうかを判定し、
    選択した前記テーブルが現在は、収集した前記リアルタイム統計学データに基づく増分更新の資格を有していないと前記コンピュータが判定したことに応答して、選択した前記テーブルの前記増分更新を停止し、
    選択した前記テーブルの現在までの前記増分更新に対する現在のCPUコスト値を計算し、
    選択した前記テーブルの現在までの前記増分更新に対する計算した前記現在のCPUコスト値の分だけ前記CPUコスト・カウンタを増分する、
    請求項20または21に記載のコンピュータ・システム。
  23. 前記プロセッサがさらに、前記プログラム命令を実行して、
    選択した前記テーブルが現在もなお、収集した前記リアルタイム統計学データに基づく増分更新の資格を有していると前記コンピュータが判定したことに応答して、選択した前記テーブルの前記増分更新を継続し、
    選択した前記テーブルの現在までの前記増分更新に対する前記現在のCPUコスト値を計算し、
    選択した前記テーブルの現在までの前記増分更新に対する計算した前記現在のCPUコスト値の分だけ前記CPUコスト・カウンタを増分する、
    請求項22に記載のコンピュータ・システム。
  24. 前記プロセッサがさらに、前記プログラム命令を実行して、
    前記ターゲットDBMSにロードされたテーブルを、それぞれのテーブルに対応するワークロード・ヒット数に関して評価し、
    前記コンピュータが前記テーブルを評価したことに応答して、いずれかの前記テーブルが、しきいワークロード・ヒット数よりも小さい対応するワークロード・ヒット数を有するかどうかを判定し、
    前記テーブルのうちの1つまたは複数のテーブルが、前記しきいワークロード・ヒット数よりも小さい対応するワークロード・ヒット数を有すると前記コンピュータが判定したことに応答して、前記しきいワークロード・ヒット数よりも小さい対応するワークロード・ヒット数を有するテーブルのリストを生成する、
    請求項14に記載のコンピュータ・システム。
  25. 前記プロセッサがさらに、前記プログラム命令を実行して、
    テーブル削除リストの中のテーブルを前記ターゲットDBMSから削除することによる全メモリおよびCPU節減コストを計算し、
    前記全メモリおよびCPU節減コストを用いて、前記ターゲットDBMSに対するテーブル削除レコメンデーションを生成し、
    前記テーブル削除レコメンデーションを自動的に実行する、
    請求項24に記載のコンピュータ・システム。
  26. 特定のテーブルに対する決定されたワークロード節減コストが、前記特定のテーブルの予測される将来の照会を含む、請求項14ないし24のいずれかに記載のコンピュータ・システム。
  27. ワークロード・パフォーマンスを増大させ、リソース使用を低減させるために、ソース・データベース管理システム(DBMS)からターゲットDBMSにデータのセットをロードするためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、
    処理回路によって読取り可能なコンピュータ可読ストレージ媒体であり、請求項1ないし13のいずれかに記載の方法を実行するために前記処理回路によって実行するための命令を記憶した前記コンピュータ可読ストレージ媒体
    を含む、コンピュータ・プログラム製品。
  28. コンピュータ可読媒体に記憶された、ディジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上でランされたときに、請求項1ないし13のいずれかに記載の方法を実行するためのソフトウェア・コード部分を含むコンピュータ・プログラム。
JP2020551952A 2018-05-09 2019-05-07 ワークロード・パフォーマンスを増大させるためにターゲット・データベース管理システム上のリソース使用を自動的に最適化すること Active JP7291719B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/974,828 2018-05-09
US15/974,828 US10691658B2 (en) 2018-05-09 2018-05-09 Automatically optimizing resource usage on a target database management system to increase workload performance
PCT/IB2019/053720 WO2019215601A1 (en) 2018-05-09 2019-05-07 Automatically optimizing resource usage on a target database management system to increase workload performance

Publications (2)

Publication Number Publication Date
JP2021521507A true JP2021521507A (ja) 2021-08-26
JP7291719B2 JP7291719B2 (ja) 2023-06-15

Family

ID=68463578

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020551952A Active JP7291719B2 (ja) 2018-05-09 2019-05-07 ワークロード・パフォーマンスを増大させるためにターゲット・データベース管理システム上のリソース使用を自動的に最適化すること

Country Status (6)

Country Link
US (1) US10691658B2 (ja)
JP (1) JP7291719B2 (ja)
CN (1) CN112106038A (ja)
DE (1) DE112019001480B4 (ja)
GB (1) GB2586109B (ja)
WO (1) WO2019215601A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10915517B2 (en) * 2018-11-26 2021-02-09 Bank Of America Corporation Database tool
US11271994B2 (en) * 2018-12-28 2022-03-08 Intel Corporation Technologies for providing selective offload of execution to the edge
US11100087B2 (en) * 2019-04-26 2021-08-24 Microsoft Technology Licensing, Llc Data tokenization system maintaining data integrity
US11093477B1 (en) * 2020-03-17 2021-08-17 International Business Machines Corporation Multiple source database system consolidation
US11423025B2 (en) 2020-07-27 2022-08-23 International Business Machines Corporation Direct data loading of middleware-generated records
US11379456B2 (en) * 2020-10-01 2022-07-05 Oracle International Corporation Efficient adjustment of spin-locking parameter values
US11868261B2 (en) 2021-07-20 2024-01-09 Oracle International Corporation Prediction of buffer pool size for transaction processing workloads
US11494397B1 (en) * 2021-09-16 2022-11-08 Accenture Global Solutions Limited Data digital decoupling of legacy systems
US11874751B2 (en) * 2021-12-09 2024-01-16 International Business Machines Corporation Operating a data center

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001168910A (ja) * 1999-12-08 2001-06-22 Nec Corp データ検索システム及びパケット処理装置並びに制御方法
JP2010539594A (ja) * 2007-09-17 2010-12-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 計算集中的なデータベース・ユーザ定義プログラムを付属の高パフォーマンス並列コンピュータ上で実行するシステムおよび方法
US20160292167A1 (en) * 2015-03-30 2016-10-06 Oracle International Corporation Multi-system query execution plan
JP2017211802A (ja) * 2016-05-25 2017-11-30 株式会社日立製作所 高速化装置、計算機システム及びデータ処理方法

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6950848B1 (en) 2000-05-05 2005-09-27 Yousefi Zadeh Homayoun Database load balancing for multi-tier computer systems
US7233998B2 (en) 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US7010521B2 (en) 2002-05-13 2006-03-07 Netezza Corporation Optimized database appliance
KR20040009126A (ko) 2002-07-22 2004-01-31 엘지전자 주식회사 데이터 베이스 시스템의 저부하 통계처리 장치 및 방법
US7246254B2 (en) * 2003-07-16 2007-07-17 International Business Machines Corporation System and method for automatically and dynamically optimizing application data resources to meet business objectives
US7395537B1 (en) 2003-12-08 2008-07-01 Teradata, Us Inc. Administering the workload of a database system using feedback
US8126870B2 (en) 2005-03-28 2012-02-28 Sybase, Inc. System and methodology for parallel query optimization using semantic-based partitioning
US7734615B2 (en) 2005-05-26 2010-06-08 International Business Machines Corporation Performance data for query optimization of database partitions
US8386463B2 (en) 2005-07-14 2013-02-26 International Business Machines Corporation Method and apparatus for dynamically associating different query execution strategies with selective portions of a database table
US8752055B2 (en) 2007-05-10 2014-06-10 International Business Machines Corporation Method of managing resources within a set of processes
US9165032B2 (en) 2007-11-21 2015-10-20 Hewlett-Packard Development Company, L.P. Allocation of resources for concurrent query execution via adaptive segmentation
EP2073118A1 (en) 2007-12-17 2009-06-24 Nokia Siemens Networks Oy Load distribution in distributed database system
US8145652B2 (en) 2008-10-09 2012-03-27 International Business Machines Corporation Automated propagation of non-conflicting queries in distributed databases
US8782443B2 (en) * 2010-05-25 2014-07-15 Microsoft Corporation Resource-based adaptive server loading
US8468151B2 (en) 2010-06-29 2013-06-18 Teradata Us, Inc. Methods and systems for hardware acceleration of database operations and queries based on multiple hardware accelerators
US8356027B2 (en) 2010-10-07 2013-01-15 Sap Ag Hybrid query execution plan generation and cost model evaluation
WO2013016313A1 (en) 2011-07-25 2013-01-31 Servergy, Inc. Method and system for building a low power computer system
US10430391B2 (en) 2012-09-28 2019-10-01 Oracle International Corporation Techniques for activity tracking, data classification, and in database archiving
US9110948B2 (en) * 2012-11-09 2015-08-18 International Business Machines Corporation Relative performance prediction of a replacement database management system (DBMS)
GB2510429A (en) 2013-02-05 2014-08-06 Ibm Assessing response routes in a network
US9495418B2 (en) 2013-08-07 2016-11-15 International Business Machines Corporation Scalable acceleration of database query operations
US9830354B2 (en) 2013-08-07 2017-11-28 International Business Machines Corporation Accelerating multiple query processing operations
CA2867589A1 (en) 2013-10-15 2015-04-15 Coho Data Inc. Systems, methods and devices for implementing data management in a distributed data storage system
US9984081B2 (en) 2015-01-30 2018-05-29 Oracle International Corporation Workload aware data placement for join-based query processing in a cluster
US10552453B2 (en) 2015-11-25 2020-02-04 International Business Machines Corporation Determining data replication cost for cloud based application
US11048701B2 (en) 2016-09-13 2021-06-29 International Business Machines Corporation Query optimization in hybrid DBMS

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001168910A (ja) * 1999-12-08 2001-06-22 Nec Corp データ検索システム及びパケット処理装置並びに制御方法
JP2010539594A (ja) * 2007-09-17 2010-12-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 計算集中的なデータベース・ユーザ定義プログラムを付属の高パフォーマンス並列コンピュータ上で実行するシステムおよび方法
US20160292167A1 (en) * 2015-03-30 2016-10-06 Oracle International Corporation Multi-system query execution plan
JP2017211802A (ja) * 2016-05-25 2017-11-30 株式会社日立製作所 高速化装置、計算機システム及びデータ処理方法

Also Published As

Publication number Publication date
CN112106038A (zh) 2020-12-18
DE112019001480T5 (de) 2021-01-07
DE112019001480B4 (de) 2022-08-04
US20190347342A1 (en) 2019-11-14
WO2019215601A1 (en) 2019-11-14
GB2586109A (en) 2021-02-03
JP7291719B2 (ja) 2023-06-15
US10691658B2 (en) 2020-06-23
GB2586109B (en) 2021-07-14
GB202018112D0 (en) 2020-12-30

Similar Documents

Publication Publication Date Title
JP7291719B2 (ja) ワークロード・パフォーマンスを増大させるためにターゲット・データベース管理システム上のリソース使用を自動的に最適化すること
US10691722B2 (en) Consistent query execution for big data analytics in a hybrid database
US11132341B2 (en) Automated information lifecycle management using low access patterns
US10754874B2 (en) Query dispatching system and method
US10185744B2 (en) Caching views on historical data
US20210011898A1 (en) Automatic determination of table distribution for multinode, distributed database systems
US7536380B2 (en) Dynamic look ahead predicate generation
US10282350B1 (en) Data store optimizer
US9235590B1 (en) Selective data compression in a database system
CN107111647A (zh) 用于针对时限结果提供备用查询建议的方法和查询建议服务器
US20170116222A1 (en) Parallel processing of large data files on distributed file systems with dynamic workload balancing
US20200042522A1 (en) Techniques for maintaining statistics in a database system
US11734258B2 (en) Constraint data statistics
US9378234B2 (en) Management of updates in a database system
US9916341B2 (en) Partition level operation with concurrent activities
US10838933B2 (en) Periodic performance optimization through heatmap based management of an in-memory area
US10803043B2 (en) Managing hash indexing
US11609910B1 (en) Automatically refreshing materialized views according to performance benefit
Abebe et al. Tiresias: enabling predictive autonomous storage and indexing
CN117472873A (zh) 数据迁移方法、装置、计算设备集群及存储介质
US20230376485A1 (en) Distributed query plan generation
US20230094789A1 (en) Data distribution in target database systems

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210714

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210927

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221101

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230126

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230516

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230605

R150 Certificate of patent or registration of utility model

Ref document number: 7291719

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150